表面着色器(Surface Shaders)
在大多数情况下,表面着色器会是最好的选择。如果着色器需要与灯光、阴影、投影器等进行交互,可以使用表面着色器。表面着色器可以以简洁容易的方式实现更复杂的功能。其可以有效地与多个实时灯光进行互动。
顶点和片元着色器(Vertex and Fragment Shaders)
如果需要一些表面着色器不能处理的奇特效果,着色器不需要与光照互动或者只是图像效果,顶光和片元着色器会是最灵活有效的。但是使用顶点和片元着色器需要编写比表面着色器更多的代码,并且很难与光照互动。
固定功能着色器(Fixed Function Shaders)
这是为不支持可编程着色器的旧硬件编写的,它能够确保游戏在旧硬件或简单移动平台上运行时渲染出来的物体是正常合理的。
提示:
表面着色器与顶点和片元着色器是用Cg或HLSL语言编写的,而固定功能着色器则是完全使用ShaderLab语言编写的。ShaderLab着色语言是Unity提供的一种专用的着色器开发语言,比Cg或HLSL更为简单。