自发光法线贴图高光

自发光属性

此着色器使您能够定义物体的发光部分和黑暗部分。辅纹理的 alpha 通道将定义在即使没有光线照耀时,物体自身的“发光”区域。在 alpha 通道中,黑色表示零光照,而白色表示物体发出的最大光照。任何场景光都会增加着色器光照顶部的亮度。因此,即使您的物体自身不发光,其仍将被场景中的光照亮。

法线贴图属性

漫反射 (Diffuse) 着色器 (shader) 类似,其计算简单的 (Lambertian) 光照模型。表面光照强度随表面与光之间夹角的减小而减小。光照强度仅取决于此角,且不随相机的移动或旋转而变化。

法线贴图 (Normal Mapping) 使用纹理来模拟较小表面的细节,而不是使用更多的多边形来实际雕刻细节。它实际上不改变对象的形状,而是使用一种称为法线贴图 (Normal Map) 的特殊纹理来达到此效果。在法线贴图中,每个像素的色值代表表面法线的角度。然后通过使用这个值(而不是某个几何结构值)来计算光照。计算对象的光照时,法线贴图会有效覆盖网格的几何结构。

创建法线贴图

您可以在 Unity 中导入正常的灰度图并将其转换为法线贴图 (Normal Map)。要了解如何操作,请阅读法线贴图常见问题解答页面

技术细节

法线贴图 (Normal Map) 是法线贴图的一种切线空间类型。切线空间是“跟随”模型几何结构表面的空间。在这个空间里,Z 轴始终远离表面。相对于另一种“对象空间”类型的法线贴图 (Normal Map),切线空间法线贴图 (Normal Map) 稍微昂贵一些,但也有一些优势:

  1. 可用于奇形怪状的模型 - 恰好表现表面凹凸不平的效果。
  2. 可将部分法线贴图重复用于模型的不同区域或者不同的模型。

高光属性

与漫反射 (Diffuse) 一样,高光也计算简单的 (Lambertian) 光照,并附加一个依赖于观察者的高光亮点。这个称为 Blinn-Phong 光照模型。其具有取决于面角、光角和观察角的高光亮点。该亮点实际上只是对光源模糊反射的实时适宜模拟。亮点的模糊层次由检视器 (Inspector) 中的反光 (Shininess) 滑块控制。

此外,主纹理的 alpha 通道用作高光贴图 (Specular Map)(有时称为“光泽贴图”),用于定义对象哪些区域的反射性更强。Alpha 的黑色区域是零高光反射区域,而白色区域是全高光反射区域。这在您希望对象的不同区域反射不同级别的高光时非常有用。例如,生锈的金属使用弱高光,而抛光金属使用强高光。唇膏的高光强于皮肤,而皮肤的高光又强于棉质衣物。精致的高光贴图 (Specular Map) 可以给玩家留下一个截然不同的印象。

性能

一般而言,此着色器消耗的渲染资源较多。有关更多详细信息,请查看着色器性能页面

Page last updated: 2013-06-27