Unity有三种形式的Shader:
(1)Surface Shaders:对光照管线的高层抽象,受光照和影子效果影响的shader,使用Cg/HLSL语言编写;不进行light相关操作的shader别使用Surface Shader,因为它会进行一堆光照计算;Surface Shader会自动转换为Vertex and Fragment Shaders。
(2)Vertex and Fragment Shaders:最灵活的方式,不处理light相关操作的shader推荐使用该方式,使用Cg/HLSL语言编写。
(3)Fixed Function Shaders:使用ShaderLab编写,用来给不支持可编程shader的旧设备写渲染。
无论选择哪种Shader,都需要使用ShaderLab框架来对Shader代码进行组织。