Version: 2020.2
透明镂空凹凸漫射 (Transparent Cutout Bumped Diffuse)
自发光着色器系列

透明镂空凹凸镜面反射 (Transparent Cutout Bumped Specular)

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

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

透明镂空 (Transparent Cutout) 属性

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

镂空着色器是显示透明对象的另一种方法。镂空和常规透明 (Transparent) 着色器之间的区别为:

  • 此着色器不能有部分透明区域。全部都将是完全不透明或完全透明。
  • 使用此着色器的对象可以投射和接受阴影!
  • 使用此着色器时,通常与透明着色器相关的图形排序问题不会发生。

此着色器使用__基础__纹理中包含的 Alpha 通道来确定透明区域。如果 Alpha 包含透明区域和不透明区域之间的混合,则可以手动确定所显示区域的分界点。通过调整 Alpha Cutoff 滑动条即可更改此分界点。

法线贴图 (Normal Mapped) 属性

像__漫射 (Diffuse)__ 着色器一样,法线贴图会计算一个简单的 (Lambertian) 光照模型。表面上的光照随着表面与光源之间的角度减小而减弱。光照仅取决于角度,在摄像机移动或旋转时不会改变。

法线贴图__使用纹理模拟小的表面细节,而不是用更多的多边形来实际雕刻细节。实际上并没有改变对象的形状,而是使用一种称为__法线贴图 (Normal Map) 的特殊纹理来实现这种效果。在法线贴图中,每个像素的颜色值表示表面法线的角度。然后通过使用该值而不是几何中的值来计算光照。在计算对象的光照时,法线贴图可以有效地覆盖网格的几何体。

创建法线贴图

可以导入在 Unity 外部创建的法线贴图,也可以导入常规灰度图像并在 Unity 中将其转换为法线贴图。(本页面引用的是已被标准着色器取代的旧版着色器,但您可以了解有关如何使用标准着色器中的法线贴图的更多信息)

技术细节

法线贴图是一种切线空间类型的法线贴图。切线空间是“贴合模型几何体表面”的空间。在此空间中,Z 总是背离表面。切线空间法线贴图比其他“对象空间”类型的法线贴图的成本稍高,但有一些优点:

  1. 可以在变形模型上使用它们 - 凸起将保留在变形表面上并可以正常工作。
  2. 可以在模型的不同区域重复使用法线贴图的某些部分;或在不同模型上使用它们。

镜面反射 (Specular) 属性

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

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

性能

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

透明镂空凹凸漫射 (Transparent Cutout Bumped Diffuse)
自发光着色器系列