注意:Unity 5 引入了标准着色器来取代此着色器。
注意:Unity 5 引入了标准着色器来取代此着色器。
此着色器可以通过读取主纹理的 Alpha 通道使网格几何体部分透明或完全透明。在 Alpha 中,0(黑色)表示完全透明,而 255(白色)表示完全不透明。如果主纹理没有 Alpha 通道,则对象将显示为完全不透明。
在游戏中使用透明对象可能很棘手,因为传统的图形编程问题可能会在游戏中带来排序问题。例如,如果在同时透过两个窗口观察时看到奇怪的结果,则表示遇到了在使用透明度方面的典型问题。一般规则是要注意在某些情况下,一个透明对象可能以不寻常的方式在另一个对象之前绘制,特别是在这些对象相交、相互包围或者大小差异巨大的情况下。因此,应该在需要时才使用透明对象,尽量避免过多使用。还应该让设计人员意识到可能发生这样的排序问题,让他们准备改变一些设计来解决这些问题。
像__漫射 (Diffuse)__ 着色器一样,法线贴图会计算一个简单的 (Lambertian) 光照模型。表面上的光照随着表面与光源之间的角度减小而减弱。光照仅取决于角度,在摄像机移动或旋转时不会改变。
法线贴图__使用纹理模拟小的表面细节,而不是用更多的多边形来实际雕刻细节。实际上并没有改变对象的形状,而是使用一种称为__法线贴图 (Normal Map) 的特殊纹理来实现这种效果。在法线贴图中,每个像素的颜色值表示表面法线的角度。然后通过使用该值而不是几何中的值来计算光照。在计算对象的光照时,法线贴图可以有效地覆盖网格的几何体。
可以导入在 Unity 外部创建的法线贴图,也可以导入常规灰度图像并在 Unity 中将其转换为法线贴图。(本页面引用的是已被标准着色器取代的旧版着色器,但您可以了解有关如何使用标准着色器中的法线贴图的更多信息)
法线贴图是一种切线空间类型的法线贴图。切线空间是“贴合模型几何体表面”的空间。在此空间中,Z 总是背离表面。切线空间法线贴图比其他“对象空间”类型的法线贴图的成本稍高,但有一些优点:
漫射会计算一个简单的 (Lambertian) 光照模型。表面上的光照随着表面与光源之间的角度减小而减弱。光照仅取决于此角度,在摄像机移动或旋转时不会改变。
通常,此着色器的渲染成本低。有关更多详细信息,请查看着色器性能页面。