PBR(Physically Based Rendering)基于物理的渲染。为了在游戏或者3D应用中获取更加真实的渲染效果,越来越多的3D游戏或者虚拟应用以及游戏引擎开始使用PBR纹理/材质。在实时渲染的场景中,PBR是在现有算力下可以提供真实感渲染的最常用的选择。本文我们将简要介绍在PBR纹理/材质中使用的贴图以及每一个贴图的作用

PBR纹理/材质通常包含以下贴图:

  1. Albedo
  2. Normal
  3. Roughness
  4. Metalness
  5. Specular
  6. Height
  7. Opacity
  8. Ambient Occlusion
  9. Refraction
  10. Emissive

PBR材质通常由上述贴图组成,了解上述每一种贴图在渲染中的作用以及组合构成PBR的渲染效果是十分有必要的。如果我们可以更加详细的了解每一种贴图的具体作用,我们可以进一步修改贴图或者修改代码以获得更加真实的渲染效果。

1 Albedo Map

Albedo Map,反射率贴图为模型表面基础颜色贴图。比如模型为一个虚拟的人,那么其身体部分的模型的Albedo Map就是衣服一类的贴图。

2 Normal Map

计算机图形学 – PBR纹理中不同贴图的作用和意义-StubbornHuang Blog

Normal Map,法线贴图决定了光照与模型的交互方式。法线贴图通过复杂的计算来模拟光与模型表面的相互作用,显示模型表面的细小的凹凸部分。

3 Roughness Map

计算机图形学 – PBR纹理中不同贴图的作用和意义-StubbornHuang Blog

Roughness Map,粗糙度贴图用于描述模型表面的光滑程度。粗糙度贴图决定了光线在模型表面上的传播方式。如果物体的表面越粗糙,那么当光照射到模型表面,该表面会向更多的方向散射射入光线;反之,如果物体的表面越光滑,其对入射光线的散射越少。粗糙度贴图上的值处于0.0 - 1.0 的区间范围内,当粗糙度的贴图中的值为0.0时,表示模型表面是极其光滑的,其模型表面不会散射光,从而模型表面将会产生更加清晰更加明亮的反射光和亮度;当粗糙度贴图中的值为1.0时,表示模型表面是很粗糙的,入射光线将在模型表面在多个方向进行散射,照明和反射将在模型表面分布的更广,但是模型会看起来更暗。比如橡胶的粗糙度约为1.0,而白色塑料的粗糙度约为0.0。

粗糙度贴图是灰度图,白色的粗糙度贴图表示最粗糙的表面,而黑色的粗糙度贴图表示光滑的表面。

4 Metalness Map

计算机图形学 – PBR纹理中不同贴图的作用和意义-StubbornHuang Blog

Metalness Map,金属度贴图,指曲面反射其周围环境的程度。其贴图的数值处于0.0 - 1.0的范围内,当金属度为0.0时,反射率颜色完全可见,例如塑料和陶瓷;当金属度为0.5时,模型表面看起来像是涂漆的金属;当金属度为1.0时,表面几乎失去了所有的反射率颜色,只反射了环境。比如,当金属度为1.0并且粗糙图为0.0时,模型表面看起来类似于镜子。

5 Specular Map

Specular Map,高光贴图或者叫镜面反射贴图,在PBR中,镜面反射贴图使用RGB颜色,在有些时候使用镜面高光贴图替代金属度贴图。

如果要用金属贴图制作黄铜材质,请在反照率中为贴图的该部分绘制黄铜色调,以便反射使材质具有黄铜外观。相反,如果使用镜面反射贴图,反照率的黄铜区域将完全为黑色,您需要在镜面反射贴图上绘制黄铜细节以实现相同的效果。这样做的好处是,您可以使用镜面贴图来更改非金属材质管理反射的方式,从而获得更大的自由度和控制。缺点是很难精确地管理您想要的结果。

6 Height Map

计算机图形学 – PBR纹理中不同贴图的作用和意义-StubbornHuang Blog

Height Map,高度贴图。

法线贴图和高度贴图的相似之处在于,它们都为基础网格提供了细节。两者之间的关键区别在于,与普通贴图不同,高度贴图实际上向三维网格添加数据并提高多边形数。

在上面的图像中,您可以看到网格从球体外边缘的脊线处伸出。当你看标准地图时,你会注意到边缘仍然是完美的圆形,这打破了深度感。高度贴图是一种灰度贴图,其中黑色表示网格的底部,白色表示网格的最高峰值,灰色阴影表示其间的一切。高度贴图的好处在于提供了大量的细节,无论从哪个角度看,在任何照明条件下都显得完美无瑕。另一方面,细分模型的必要性增加了渲染时间。因此,为了方便起见,首选法线贴图。

7 Opacity Map

计算机图形学 – PBR纹理中不同贴图的作用和意义-StubbornHuang Blog

Opacity Map,透明贴图。

可以使用不透明度贴图使材质区域透明。如果您正在构建玻璃或低多边形树枝或贴花,这一点至关重要。

它可以用于树木或贴花,如上图所示。您可以在单个多边形平面上构造一组完整的树叶,并使用不透明度贴图使多余的多边形消失。然后可以对这些多边形进行分层,以创建只需要很少处理能力的真实树。

不透明度贴图也为灰度图。白色是完全不透明的,而黑色是完全透明的。它们之间半透明程度的变化由灰色表示。0.0是不透明的,而1.0是透明的。

8 Ambient Occlusion

计算机图形学 – PBR纹理中不同贴图的作用和意义-StubbornHuang Blog

Ambient Occlusion,环境光遮蔽贴图,也称AO贴图。

环境光遮挡将阴影添加到具有裂缝的对象的被遮挡部分,使其看起来更逼真。在渲染时,该贴图将和反照率混合,以描述其对光线的反应。这张地图是灰度的,白色占据了大部分的光线,而较暗的部分则更多地处于阴影中,光线反应性较弱。遮挡值的范围从0.0到1.0,0.0表示完全黑暗(遮挡),1.0表示没有遮挡。

9 Refraction Map

Refraction Map,折射贴图。

折射是光通过固体、液体或气体时发生弯曲的过程,通过透明物体观察时会扭曲物体的外观,如名称所定义。正是这种现象使放大镜发挥作用,并使物体在水下观看时看起来有所不同。所有透明材质都会在现实生活中引发折射,因此需要在渲染时表现出来,以尽可能逼真现实效果。在大多数情况下,折射贴图本质上是一组常量值。模型中不想折射光的部分几乎肯定是不透明的,因此它们是否折射光并不重要。

10 Emissive Map

Emissive Map,自发光贴图。

这些贴图会使材质中的某些元素看起来发出自己的光,使它们可以在黑暗的地方看到。自发光有利于照明小型LED或创建独特的条形照明效果。但是,如果应用过多,场景中的细节将完全消失,场景将失去活力。这些是完整的RGB贴图。它们类似于反照率图,但它们用于光。虽然自发光贴图可以用于照亮整个场景,但它比添加传统照明复杂得多。

参考链接