Unity3D中的Shader
简单的说,Shader是为渲染管线中的特定处理阶段提供算法的一段代码。Shader是伴随着可编程渲染管线出现的,从而可以对渲染过程加以控制。 1. Unity提供了很多内建的Shader,这些可以从官网下载,打开looking for older version的链接就能看到Build-in shaders。选择合适的Shader很重要,以下是开销从低到高的排序: (1)Unlit:仅使用纹理颜色,不受光照影响 (2)VertexLit:顶点光照 (3)Diffuse:漫反射 (4)Specular:在漫反射基础上增加高光计算 (5)Normal mapped:法线贴图,增加了一张法线贴图和几个着色器指令 (6)Normal Mapped Specular:带高光法线贴图 (7)Parallax Normal Mapped:视差法线贴图,增加了视差贴图的计算开销 (8)Parallax Normal Mapped Specular:带高光视差法线贴图 对于现在流行的移动平台游戏,Unity提供了几种专门的着色器放在Shader->Mobile下,它们是专门优化过的。 2. 在Unity中,可以编写3种类型的Shader: 表面着色器(Surface Shaders):最常用的Shader,可以与灯光、阴影、投影器交互,以Cg/HLSL语言进行编写,不涉及光照时尽量不要使用。