Version: 2022.1
透明视差漫射 (Transparent Parallax Diffuse)
透明镂空着色器系列

透明视差镜面反射 (Transparent Parallax Specular)

注意:Unity 5 引入了标准着色器来取代此着色器。

此着色器的一个注意事项是基础纹理的 Alpha 通道同时定义透明区域以及镜面贴图。

透明 (Transparent) 属性

注意:Unity 5 引入了标准着色器来取代此着色器。

此着色器可以通过读取主纹理的 Alpha 通道使网格几何体部分透明或完全透明。在 Alpha 中,0(黑色)表示完全透明,而 255(白色)表示完全不透明。如果主纹理没有 Alpha 通道,则对象将显示为完全不透明。

在游戏中使用透明对象可能很棘手,因为传统的图形编程问题可能会在游戏中带来排序问题。例如,如果在同时透过两个窗口观察时看到奇怪的结果,则表示遇到了在使用透明度方面的典型问题。一般规则是要注意在某些情况下,一个透明对象可能以不寻常的方式在另一个对象之前绘制,特别是在这些对象相交、相互包围或者大小差异巨大的情况下。因此,应该在需要时才使用透明对象,尽量避免过多使用。还应该让设计人员意识到可能发生这样的排序问题,让他们准备改变一些设计来解决这些问题。

视差法线贴图 (Parallax Normal mapped) 属性

__视差法线贴图__与常规__法线贴图__相同,但可以更好地模拟“深度”。通过使用__高度贴图__实现额外的深度效果。高度贴图包含在法线贴图的 Alpha 通道中。在 Alpha 中,黑色为零深度,白色为全深度。这通常用于砖块/石头,以更好地表现它们之间的裂缝。

视差贴图技术非常简单,因此可能具有瑕疵和异常效果。具体而言,应避免高度贴图中出现非常陡峭的高度过渡。调整 Inspector 中的 Height 值也会导致对象以不符合实际的奇怪方式变形。因此,建议使用逐渐高度贴图过渡或将 Height 滑动条保持在浅端。

镜面反射 (Specular) 属性

镜面反射与漫射一样计算简单 (Lambertian) 光照,此外还有依赖于观察者的镜面高光。这称为 Blinn-Phong 光照模型。此渲染器具有取决于表面角度、光角度和视角的镜面高光。高光实际上只是一种模拟光源模糊反射的实时适用方法。高光的模糊程度由 Inspector 中的 Shininess 滑动条控制。

此外,主纹理的 Alpha 通道充当镜面贴图(有时称为“光泽贴图”),定义对象的哪些区域比其他区域更具反射性。Alpha 的黑色区域表示零镜面反射,而白色区域表示全镜面反射。希望对象的不同区域进行不同程度的镜面反射时,这非常有用。例如,生锈的金属之类的物体会使用低镜面反射率,而抛光的金属会使用高镜面反射率。唇膏比皮肤具有更高的镜面反射率,而皮肤比棉质衣服具有更高的镜面反射率。制作精良的镜面贴图可以给玩家留下深刻的印象。

性能

通常,此着色器的渲染成本较高。有关更多详细信息,请查看着色器性能页面

透明视差漫射 (Transparent Parallax Diffuse)
透明镂空着色器系列