返回介绍

透明镂空凹凸高光

发布于 2021-06-20 00:15:06 字数 1829 浏览 1117 评论 0 收藏 0

使用此着色器的一个注意事项是基础 (Base) 纹理的 alpha 通道定义了透明 (Transparent) 区域和高光贴图 (Specular Map)。

透明镂空属性

镂空着色器是显示透明物体的另一种方式。镂空 (Cutout) 与正常透明着色器之间的差别在于:

  • 此着色器不能有部分透明的区域。所有区域都必须是完全不透明或完全透明的。
  • 使用此着色器的物体可投射和接收阴影!
  • 使用此着色器时,不会产生通常与透明 (Transparent) 着色器相关的图形排序问题。

此着色器使用基础 (Base) 纹理中包含的 alpha 通道确定透明区域。如果 alpha 包含透明和不透明区域的混合,则可手动确定显示区域的分界点。调整 Alpha 分界 (Alpha Cutoff) 滑块可更改此分界点。

法线贴图属性

与漫反射 (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) 可以给玩家留下一个截然不同的印象。

性能

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文