Version: Unity 6.0 (6000.0)
语言 : 中文
法线贴图(凹凸贴图)简介
导入法线贴图

表面法线简介

为了真正解释法线贴图的工作原理,我们将首先介绍什么是“法线”以及如何在实时光照中使用法线。最基础的例子就是一个模型的每个表面多边形仅会根据相对于光线的表面角度获得光照。表面角度可表示为表面垂直方向突出的一条线,而相对于表面的该方向(矢量)即称为“表面法线”,或简称为法线

两个 12 面圆柱体,左侧带有平面着色,右侧带有平滑着色
两个 12 面圆柱体,左侧带有平面着色,右侧带有平滑着色

在上图中,左圆柱体具有基本的平面着色,并且每个多边形根据其与光源的相对角度进行着色。每个多边形上的光照在多边形区域内保持恒定,因为该表面是平坦的。以下是显示了线框网格的同样两个圆柱体:

两个 12 面圆柱体,左侧带有平面着色,右侧带有平滑着色
两个 12 面圆柱体,左侧带有平面着色,右侧带有平滑着色

右侧的模型与左侧的模型具有相同数量的多边形,但是显示为平滑着色;多边形上的光照产生了曲面外观。为什么会这样?原因是用于反射光线的每个点处的表面法线沿着多边形的宽度逐渐变化,所以对于表面上的任何给定点,光反射表现为好像该表面是弯曲的而不是实际的平坦恒定多边形。

以 2D 图的形式查看时,平面着色圆柱体外侧的三个表面多边形将如下所示:

2D 图视角下的三个多边形上的平面着色
2D 图视角下的三个多边形上的平面着色

表面法线用橙色箭头表示。这些值用于计算光线如何从表面反射,所以您可以看到光线沿着每个多边形的长度具有相同响应,因为表面法线指向相同的方向。因此就会产生“平面着色”,这也是左圆柱体的多边形看起来有硬边的原因。

然而,对于平滑着色的圆柱体,表面法线在平面多边形上发生变化,如下所示:

2D 图视角下的三个多边形上的平滑着色
2D 图视角下的三个多边形上的平滑着色

法线方向在平面多边形表面上逐渐变化,因此表面上的着色产生了平滑曲线的观感(如绿线所示)。这不会影响网格的实际多边形性质,只会影响在平面表面上计算光照的方式。这种明显的曲面并不存在,以掠射角观察这些面时将揭示出平面多边形的真实性质,但从大多数视角看,圆柱体看起来具有平滑的曲面。

使用这种基本平滑着色时,实际上只根据每个顶点来存储确定法线方向的数据,因此该表面上的变化值是从一个顶点到下一个顶点之间进行插值的。在上图中,红色箭头表示每个顶点存储的法线方向,橙色箭头表示多边形区域上的内插法线方向的示例。

法线贴图(凹凸贴图)简介
导入法线贴图