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

Shader山下

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

关注
2 已关注
23篇博文
  • Shader山下(二十四)相机深度纹理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2016-10-10 09:09
    381
  • Shader山下(六)镜面高光

    Shader山下(二)光照模型中介绍了漫反射的光照模型,漫反射是投射在粗糙表面上的光向各个方向反射的现象。与之相对的是镜面反射,也就是当平行入射的光线射到这个反射面时,仍会平行地向一个方向反射出来的现...

    2016-10-09 09:01
    851
  • Shader山下(五)使用表面着色器实现透明材质

    Unity中的表面着色器(Surface Shaders)是一种代码生成的方法,它比底层的顶点(vertex)/像素(pixel)着色程序更容易编写出受光照的着色器。 前几篇中,我们使用的就是表面着色...

    2016-10-08 21:30
    1411
  • Shader山下(四)法线贴图

    法线向量表示某个点上垂直于该点的向量,而法线贴图(Normal Map)就是保存这些法线的贴图。实际应用中,经常使用法线贴图为低模添加细节。

    2016-10-08 09:01
    607
img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部