PBR 贴图

PBR 中的两大工作流程(Metal/Roughness and Specular/Glossiness)

两大工作流有其独特的两种贴图,而法线贴图、AO 贴图、高度贴图在两种工作流中是通用的。

(一)Metallic/Roughness 工作流

首先介绍一下现在使用更加广泛的金属度和粗糙度配合使用的工作流程,其主要原因是贴图占用内存更小,且比较符合物理世界中形成的直觉,调参更加方便,但没办法调节非导体的 F0 值,导致可控性减小但绝对能量守恒。(F0 的解释:Fresnel Reflectance at 0 Degrees,指在 0 度的菲尼尔反射率,通俗来说指当光线笔直或垂直(以 0 度角)撞击表面时,该光线的一部分会被反射为镜面反射。使用表面的折射率(IOR),可以推导出反射量。这被称为 F0。)缺点是在低分辨率贴图中边缘瑕疵问题会比较明显。

金属/粗糙度工作流程的贴图有基础颜色,金属纤维和粗糙度。详细介绍可以看 Substance 的 PBR 指南,这里我简单总结一下金属/粗糙度流程中贴图中的信息与注意事项。

下面介绍此流程中 BaseColor/Metallic/Roughness 三个贴图

1.Base color(RGB 贴图):

Base Color 是把颜色贴图剔除光影变化后,我们看到的最基础的颜色。

储存数据:非导体(电解质)的漫反射色/反照率颜色(Diffuse Reflected Color/Albedo,为sRGB)和金属导体的镜面反射的F0值。需要配合Metallic贴图使用

非导体使用 4% 的 F0 反射值 混合材质(即非导体和金属导体的混合材质)则可以认为是同时储存了这两种数据

因为金属完全吸收了折射进材料内部的光线 所以漫反射消失了,金属呈现出的是反射率颜色,可以理解为 BaseColor 储存了金属和非金属的两种颜色,且不应该带有光影信息(除非有一些微小 AO(Micro-occulusion)的信息需要储存)

非导体的暗部尽量不要低于 30-50sRGB,严格情况下不低于 50 不高于 240

导体(金属)的反射值:一般有 70-100% 的镜面反射,映射到 sRGB 大概 180-255,在 SD 中可通过 PBR BaseColor Metallic Validate 节点来验证是否在正确范围

2.Metallic(灰度贴图):

Metallic(金属贴图)起到类似于蒙版的作用,区分固有色贴图中的金属和绝缘体数据。

是一张灰度贴图-Linear,对应区域的金属度。储存的信心会告诉着色器应该如何去解读 BaseColor 贴图中的 RGB 信息,0 为非金属 1 为金属,0-1 之间的值可以用来表现如生锈程度(氧化和污垢)等信息。

注意点:贴图颜色代表非金属材质反射率和金属材质反射率值。

  • 除微观遮蔽外,基础色没有布光信息。
  • 暗调最低值不低于 30 sRGB,严格讲应该为 50 sRGB。
  • 亮调值应该不高于 240 sRGB.
  • 原材质反射率会高一些,范围是高光反射 70-100%,我们可以将其映射到 180-255 sRGB.

3.Roughness(灰度贴图)

粗糙度是指造成光漫射的表面不规则状况,反射方向根据表面粗糙度自由变化。这改变了光的方向,但是光强度保持恒定不变。表面越粗糙,高光越散越暗。表面越光滑,高光反射集中,尽管反射的光的总量是一点的,表面也会更亮,光会更强。

1 为平滑,0 为粗糙。粗糙度贴图用于描述一个表面的不规则度,这种不规则度会造成光的漫射,光会局域表面的粗糙度,进行方向随机的反射,虽然在这个现象中光的方向被改变,但是光的强度是恒定的,越粗糙的表面拥有越大越暗的高光,而越光滑的表面就越能将镜面反射聚拢让高光看上去更亮更强。最有创造力的贴图,允许工作者从视觉上定义一个表面的特性。

粗糙贴图是最有创意的贴图,美术可以从视觉上确定表面特征。

4.M-R 工作流的流程缺陷

使用金属/粗糙度工作流程的产物就是出现白框:

解决方法:文件分辨率和 Texel 密度直接影响边界伪影的可见度。例如,如果使用硬边刷子创建金属和非金属过渡区域,文件低分辨率仍将会软化边缘扩大伪影。之所以分辨率低是因为 UV 不能根据文件分辨率提供足够的 Texel 密度。边界伪影最小化的最佳方式是合理设置 UVs 的 Texel 密度。

总结一下金属/粗糙度流程的优缺点

优点

  • 比较容易创建,不易因提供的电介质 F0 数据出错,产生的错误率低。
  • 金属纤维和粗糙度都是灰度贴图,使用纹理内存较小。
  • 适用性比较广泛。

缺点

  • 贴图创建中无需控制电介质 F0。但是,多数操作的实现需要高光反射控件,控制 4% 的基础值。
  • 边界伪影可见度较高,特别是分辨率低时尤其如此。

(二)Specular/Glossiness 工作流

针对高光反射、光泽度工作流程的贴图是漫反射,高光反射和光泽度。在这个工作流程中,金属反射率值和非金属材质 F0 都设置在高光反射贴图中。对于高光反射/光泽度工作流程我们有两种 RGB 贴图:一个是漫反射颜色(反射率),另一个是反射率贴图(高光反射)。有了高光反射贴图,可以在贴图本身内部控制电介质材质 F0.F0 的控制意味着能量守恒有可能被打破。

1. Diffuse(sRGB 贴图)

这个流程中的漫反射贴图没有储存导体情况下的 F0 值,而是储存了漫反射颜色(Albedo)。

改贴图的注意事项如下:粗金属没有漫反射颜色,就色调而言,漫反射贴图的指导原则与基础色贴图的指导原则相同。但不适用下面这种情况:如果有粗金属,其色调值可以是 0.0(暗调),不遵循暗调范围的指导原则。如果有氧化现象,金属区域就会有颜色,因为这个区域不再是粗金属。

  • 非金属材质的色调为白色,粗金属为暗调(0.0)。
  • 除微堵塞外,基础色没有布光信息。
  • 粗金属为暗调情况除外,暗调值最低不能低于 30 sRGB,严格而言,应该为 50 sRGB.
  • 亮调值不应超过 240 sRGB

2. Specular(sRGb 值)

高光贴图记录了金属的反射率值和非金属的 F0(0 度菲尼尔反射值),都是基于真实空间测量的,尽量不要使用反常规的数值,因为可能会破坏能量守恒,严谨一些可以查表,要注意线性空间与 sRGB 的转换。

总结一下 Specular 贴图的几个要点:

  • 镜面反射(Specular)贴图包含 F0 值。
  • 普通的非导体的反射值在 2-5% 之间,转换成 sRGB 值大约为 40-75。
  • 普通宝石的反射值范围在 0.05-0.17 之间(线性空间)。
  • 普通液体的反射值范围在 0.02-0.04 之间(线性空间)。
  • 原始金属的镜面反射值在 70-100% 之间,转换成 sRGB 大概为 180-255.
  • 如果无法确认某个材质的反射率(IOR),可以先将 F0 假设为塑料的 F0 值:4%。

3. Glossiness(灰度贴图)

光泽度贴图指的是造成光漫反射的表面不规则现象。在贴图中暗调(0.0)表示表面粗糙,亮调(1.0)表示表面光滑。这是金属/粗糙度工作流程中粗糙度贴图的反面。该贴图与上面的粗糙度贴图部分中的美术指导原则相似。

4. S-G 工作流的流程缺陷

就高光反射/光泽度流程而言,粗金属没有漫反射颜色,漫反射贴图有暗调。暗调值插入非金属漫反射颜色,就会出现暗调边框。

解决方法:如果使用硬边笔刷创建位于金属和非金属之间的过渡区域,分辨率低的文件会软化边界进而扩大伪影。分辨率低的原因是,与文件分辨率相比,不能提供充足 Texel 密度的 UVs 造成的。解决这个问题的最佳方式是为 UVs 提供合理的 Texel 密度并提高贴图分辨率。

总结一下 Specular/Glossiness 流程的优缺点

优点

  • 边界伪影清晰度下降。
  • 在高光反射贴图中控制电介质 F0.

缺点

  • 因为高光反射贴图可以控制电介质 F0,所以更容易用错数值。如果在着色器中处理不当,可能违反能量守恒定律。
  • 对于增加的 RGB 贴图,要使用更多的纹理内存。
  • 传统的工作流程使用类似的术语但数据不同,因此更易混淆。同时也需要运用更多基于物理的指导原则,例如电介质 F0,粗金属漫反射颜色的暗调,如果不在着色器中操作可能会遵守能量守恒定律。

相关参考

图片出处均来自此文档:[The PBR Guide] Book https://learndownload.adobe.com/pub/learn/substance-3d-designer/the-pbr-guide.pdf

PBR 基础(两大流程中的贴图标准) - 知乎 https://zhuanlan.zhihu.com/p/495561084

ISUX 译文 | The PBR Guide 基于物理的渲染指引 (上) - Tencent ISUX Design https://isux.tencent.com/articles/THE-PBR-GUIDE-1

ISUX 译文 | The PBR Guide 基于物理的渲染指引 (下) - Tencent ISUX Design https://isux.tencent.com/articles/THE-PBR-GUIDE-2

Adobe Learn - Learn Substance 3D Designer The PBR Guide - Part 1 https://www.adobe.com/learn/substance-3d-designer/web/the-pbr-guide-part-1