法线贴图是一种凹凸贴图。它们是一种特殊的纹理,允许你为模型添加表面细节,例如凸起、凹槽和划痕,这些细节会像由真实几何体表示一样捕捉光线。
Unity 使用 Y+ 法线贴图一种凹凸贴图纹理,允许你为模型添加表面细节,例如凸起、凹槽和划痕,这些细节会像由真实几何体表示一样捕捉光线。
参见 术语表,有时称为 OpenGL 格式。
例如,你可能想要显示一个表面,该表面上有凹槽和螺丝或铆钉,例如飞机机身。一种方法是将这些细节建模为几何体,如下所示。
根据情况,通常不建议将如此微小的细节建模为“真实”几何体。在右侧,你可以看到构成单个螺丝帽细节所需的多个多边形。对于具有大量精细表面细节的大型模型,这将需要绘制大量多边形。为了避免这种情况,我们应该使用法线贴图来表示精细的表面细节,并使用分辨率较低的多边形表面来表示模型的较大形状。
如果我们用凹凸贴图来表示这种细节,那么表面几何体可以变得简单得多,而细节则表示为纹理,该纹理会调节光线如何从表面反射。这是现代图形硬件可以极其快速完成的事情。你的金属表面现在可以是一个低多边形平面,螺丝、铆钉、凹槽和划痕会捕捉光线并呈现出深度,因为纹理的原因。
在现代游戏开发艺术管道中,艺术家会使用他们的 3D 建模应用程序根据非常高分辨率的源模型生成法线贴图。然后将法线贴图映射到模型的低分辨率游戏就绪版本上,以便使用法线贴图渲染原始的高分辨率细节。
法线贴图通过使用纹理来存储有关如何在模型中修改表面法线的信息,从而将 表面法线 的这种修改更进一步。法线贴图是映射到模型表面的图像纹理,类似于普通的颜色纹理,但是法线贴图纹理中的每个 像素计算机图像中最小的单位。像素大小取决于你的屏幕分辨率。每个屏幕像素都会计算像素灯光。 更多信息
参见 术语表(称为纹素)表示表面法线方向偏离平面(或平滑插值)多边形的“真实”表面法线。
在此图中,这也是 3D 模型表面上三个多边形的 2D 表示,每个橙色箭头对应法线贴图纹理中的一个像素。下面是一个法线贴图纹理的单像素切片。在中心,你可以看到法线已修改,从而在多边形表面上产生了一些凸起的外观。这些凸起只会因为光线在表面上的显示方式而显而易见,因为这些修改后的法线用于灯光计算中。
原始法线贴图文件中的可见颜色通常带蓝色调,并且不包含任何实际的明暗阴影 - 这是因为这些颜色本身并非旨在按其原样显示。相反,每个纹素的 RGB 值表示方向向量的 X、Y 和 Z 值,并被应用为对多边形表面的基本插值平滑法线的修改。
这是一个简单的法线贴图,其中包含一些凸起矩形和文字的凸起信息。此法线贴图可以导入到 Unity 中,并放置在标准 着色器在 GPU 上运行的程序。 更多信息
参见 术语表 的“法线贴图”插槽中。当与颜色贴图(漫反射贴图)结合并在上面的圆柱体 网格Unity 的主要图形基元。网格构成了 3D 世界的很大一部分。Unity 支持三角形或四边形多边形网格。NURBS、NURMS、细分曲面必须转换为多边形。 更多信息
参见 术语表 的表面上应用时,结果如下所示
同样,这不会影响网格的实际多边形性质,只会影响光线如何在表面上计算。表面上这些明显的凸起字母和形状并不真正存在,并且从掠角观看表面将揭示平面的真实性质,但是从大多数观看角度来看,圆柱体现在看起来像是从表面上凸起的浮雕细节。
法线贴图和高度贴图都是类型的凹凸贴图。它们都包含用于表示更简单多边形网格表面上明显细节的数据,但它们分别以不同的方式存储这些数据。
上面左侧是用于凹凸贴图石墙的高度贴图。高度贴图是一种简单的黑白纹理,其中每个像素代表表面上该点应该出现的凸起量。像素颜色越白,该区域看起来就越凸起。
法线贴图是 RGB 纹理,其中每个像素代表表面看起来应该面向的方向差,相对于其未修改的表面法线。这些纹理往往具有蓝色紫色色调,因为向量是以 RGB 值存储的。
现代实时 3D 图形硬件依赖法线贴图,因为它们包含用于修改光线看起来如何从表面弹射的向量。Unity 也可以接受高度贴图进行凹凸贴图,但它们必须在导入时转换为法线贴图才能使用。
了解这一点对于使用法线贴图并不重要!可以跳过本段。但是,如果你真的想知道:RGB 颜色值用于存储向量的 X、Y、Z 方向,其中 Z 为“向上”(与 Unity 通常使用 Y 作为“向上”的约定相反)。此外,纹理中的值被视为已减半,并添加了 0.5。这允许存储所有方向的向量。因此,要将 RGB 颜色转换为向量方向,你必须乘以二,然后减去 1。例如,RGB 值 (0.5, 0.5, 1) 或十六进制 #8080FF 会产生向量 (0,0,1),它对于法线贴图来说是“向上”的 - 并且表示对模型表面的没有任何更改。这是你在本页前面“示例”法线贴图的平坦区域中看到的颜色。
值 (0.43, 0.91, 0.80) 会产生向量 (–0.14, 0.82, 0.6),这是一个对表面的相当陡峭的修改。类似的颜色可以在一些石头边缘顶部的石墙法线贴图的亮青色区域中看到。结果是这些边缘捕捉光线的方式与石头的较平坦表面截然不同。
法线贴图