版本:Unity 6 (6000.0)
语言:英语
透明凸起漫反射
透明视差漫反射

透明凸起镜面反射

注意。Unity 5 引入了标准着色器,它取代了这个着色器在 GPU 上运行的程序。更多信息
请参阅词汇表

这个着色器的一个考虑因素是,基础纹理的 Alpha 通道定义了透明区域以及镜面贴图。

透明属性

注意。Unity 5 引入了标准着色器,它取代了这个着色器。

这个着色器可以通过读取主纹理的 Alpha 通道,使网格Unity 的主要图形基元。网格构成了 3D 世界的很大一部分。Unity 支持三角形或四边形多边形网格。Nurbs、Nurms、细分曲面必须转换为多边形。更多信息
请参阅词汇表
几何体部分或完全透明。在 Alpha 中,0(黑色)是完全透明的,而 255(白色)是完全不透明的。如果您的主纹理没有 Alpha 通道,则物体将显示为完全不透明。

在您的游戏中使用透明物体可能很棘手,因为存在传统的图形编程问题,这些问题可能会在您的游戏中出现排序问题。例如,如果您在通过两个窗口同时查看时看到奇怪的结果,那么您正在遇到使用透明度的经典问题。一般的规则是要注意,在某些情况下,一个透明物体可能会以不寻常的方式绘制在另一个透明物体前面,尤其是当物体相交、互相包含或大小差异很大时。因此,您应该在需要时使用透明物体,并尽量避免过度使用它们。您还应该让您的设计师了解可能会出现此类排序问题,并让他们准备好更改一些设计以解决这些问题。

法线贴图属性

漫反射着色器一样,它计算一个简单的(朗伯)照明模型。表面上的照明随着它与光线之间的角度减小而减小。照明仅取决于角度,并且不会随着相机创建场景中特定视点的图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
请参阅词汇表
移动或旋转而改变。

法线贴图使用纹理模拟小的表面细节,而不是花费更多多边形来实际雕刻细节。它实际上不会改变物体的形状,而是使用一种称为法线贴图一种类型的凹凸贴图纹理,允许您向模型添加表面细节,例如凹凸、凹槽和划痕,这些细节会捕捉光线,就好像它们是由真实几何体表示的一样。
请参阅词汇表
的特殊纹理来实现这种效果。在法线贴图中,每个像素计算机图像中最小的单位。像素大小取决于屏幕分辨率。像素照明在每个屏幕像素上计算。更多信息
请参阅词汇表
的颜色值表示表面法线角。然后通过使用此值而不是来自几何体的值,计算照明。在计算物体的照明时,法线贴图有效地覆盖了网格的几何体。

创建法线贴图

您可以导入在 Unity 之外创建的法线贴图,也可以导入常规的灰度图像并将其从 Unity 内部转换为法线贴图。(此页面引用一个传统的着色器,它已被标准着色器取代,但您可以了解更多关于如何在标准着色器中使用法线贴图的信息)

技术细节

法线贴图是一种切线空间类型的法线贴图。切线空间是“跟随模型几何体表面”的空间。在这个空间中,Z 始终指向远离表面的方向。切线空间法线贴图比其他“物体空间”类型法线贴图稍微昂贵一些,但有一些优点

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

镜面反射属性

镜面反射计算与漫反射相同的简单(朗伯)照明,加上一个与观察者相关的镜面反射高光。这被称为 Blinn-Phong 照明模型。它有一个镜面反射高光,它取决于表面角、光线角和视角。高光实际上只是一种实时适用的方式来模拟光源的模糊反射。高光的模糊程度由检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑这些值。更多信息
请参阅词汇表
中的光泽度滑块控制。

此外,主纹理的 Alpha 通道充当镜面贴图(有时称为“光泽度贴图”),定义物体哪些区域比其他区域更具反射性。Alpha 的黑色区域将为零镜面反射,而白色区域将为完全镜面反射。当您希望物体的不同区域以不同的镜面反射程度反射时,这非常有用。例如,生锈的金属会使用低镜面反射,而抛光的金属会使用高镜面反射。口红比皮肤具有更高的镜面反射,而皮肤比棉质衣服具有更高的镜面反射。制作精良的镜面贴图可以极大地提升玩家的印象。

性能

通常,这种着色器渲染起来成本中等。有关更多详细信息,请查看着色器性能页面

TransBumpedSpecular

透明凸起漫反射
透明视差漫反射