博客专栏  >  移动开发   >  Shader山下

Shader山下

想要学习Shader却不知从何入手?想要入门总得先找对门。本系列着重于介绍Shader的基础知识,希望可以给您入门Shader带来帮助。

关注
23 已关注
26篇博文
  • Shader山下(二十七)平面阴影

    以下摘录自《Unity 3D ShaderLab开发实战详解》,第10章。 转注:这是一个非常简单且廉价的实时假阴影,比较常用到,据我所知,王者荣耀中就使用了类似的手法。缺点就是比较假,只能投射到...

    2017-12-09 11:56
    332
  • Shader山下(二十六)Forward渲染路径中的灯光信息

    以下摘录自《Unity 3D ShaderLab开发实战详解》,7.7.1-7.7.2。

    2017-12-07 20:59
    368
  • Shader山下(二十五)顶点照明中的灯光信息

    以下摘录自《Unity 3D ShaderLab开发实战详解》,6.4.7-6.4.8。 顺便吐槽自己:时隔一年多之后的更新。

    2017-12-07 20:01
    158
  • Shader山下(二十四)相机深度纹理

    相机可以生成深度和深度法线纹理,以及运动向量纹理(需要Unity5.4以上)。我们可以使用这些纹理来实现屏幕后处理效果。 当你需要某种纹理的时候,可以为Camera的depthTextureMode添...

    2016-11-09 21:48
    2009
  • Shader山下(二十三)GrabPass与UsePass

    通道(Pass)是子着色器(SubShader)的组成部分,每个Pass代表对象被渲染一次。 本文要介绍的是两种特殊的Pass:GrabPass和UsePass。 GrabPass用于获取当前屏幕的纹...

    2016-11-08 21:45
    2359
  • Shader山下(二十一)多重变体(Multiple Variants)

    Shader山下(二十)编译指令(Compilation Directives)介绍了如何使用编译指令,本文就专文介绍一下多重编译(multi_compile)指令。 我们可以使用multi_com...

    2016-10-21 23:34
    2929
  • Shader山下(二十)编译指令(Compilation Directives)

    Shader中,编译指令分为两种,一种是常规的编译指令,也就是顶点片元着色器(Vetex & Fragment Shader)使用的编译指令,另一种就是表面着色器(Surface Shader)使用的...

    2016-10-21 11:01
    1787
  • Shader山下(十九)标记Tag

    Unity Shader里的Tag分为两种,一种是子着色器(SubShader)Tags,一种是通道(Pass)Tags。 我们使用Tag告诉渲染引擎我们期望什么时候渲染这些子着色器或者通道,以及怎...

    2016-10-20 10:58
    1250
  • Shader山下(十八)混合(Blend)命令

    混合(Blend)被用于创建透明的对象。渲染图像时,当所有的着色器执行完并且所有的纹理都被应用之后,像素点会被写入屏幕。如何将这些像素与已有图像进行组合?我们就需要使用混合命令来告诉GPU混合的方式。

    2016-10-19 23:14
    4354
  • Shader山下(十七)语义Semantic

    当在编写Cg或者HLSL着色器程序的时候,我们需要使用语义(Semantic)来指明输入输出变量的“意图”。

    2016-10-18 14:34
    2163
  • Shader山下(十六)坐标空间与转换矩阵

    模型空间(model space)也称为对象空间(object space)或局部空间(local space)是指以模型原点为原点的坐标系。 世界空间(world space)也称全局空间(glob...

    2016-10-17 13:47
    3980
  • Shader山下(十五)标准库函数

    Cg提供了一组内置函数来简化Shader编程,这些内置函数会映射到一个专门的GPU指令,因此使用标准库一般会比自己编写的函数更快并更准确。

    2016-10-15 19:37
    1197
  • Shader山下(十四)顶点片段着色器处理光照

    Shader山下(二)光照模型——漫反射里介绍了如何为表面着色器添加光照模型,但是在顶点片段(vertex-fragment)着色器里如何处理光照呢? 本文就实现一个与内置Lambert光照模型相同...

    2016-10-14 09:06
    1917
  • Shader山下(十三)边缘发光

    在很多游戏中,都会让出现模型边缘发光的效果,本文就用表面着色器实现一个简单的边缘发光的效果。

    2016-10-13 21:36
    1126
  • Shader山下(十二)材质属性绘制器

    Unity5增加了一个叫MaterialPropertyDrawer的东西,可以使用它们标记在shader的Properties里面,扩充shader的一些参数在编辑器上的样式。 本文以Shader...

    2016-10-12 22:11
    1286
  • Shader山下(十一)纹理混合

    Shader山下(八)片段着色器介绍了如何编写片段着色器,本文就使用它实现纹理混合效果。

    2016-10-12 13:57
    1327
  • Shader山下(十)表面着色器的顶点函数

    对于每个顶点,GPU都会执行一次顶点函数,顶点函数的任务就是从3D局部空间或者transform得到的顶点转换到2D屏幕。我们可以使用顶点函数修改顶点的一些参数,例如顶点位置、顶点颜色和UV坐标。修改...

    2016-10-12 08:59
    1631
  • Shader山下(九)立方体反射【后编】

    Shader山下(七)立方体反射【前编】里介绍了如何使用Cubemap来模拟环境反射,本文就再介绍一下其他两个应用。 首先介绍立方体反射与法线贴图(Shader山下(四)法线贴图)的结合。 我们还可...

    2016-10-11 21:58
    939
  • Shader山下(八)片段着色器

    Shader可以分为两类: 表面着色器(Surface Shader) - 为你做了大部分的工作,只需要简单的技巧即可实现很多不错的效果,但也显示了部分功能。 片段着色器(Fragment Shad...

    2016-10-11 13:29
    838
  • Shader山下(七)立方体反射【前编】

    反射着色器可以获取外界的场景信息,并将它们反映到材质表面来模拟周围环境。 本文就要实现一个模拟反射的着色器,这里我们需要使用Cubemap来完成这个功能。

    2016-10-10 09:09
    551
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部