【PBR理论知识】推荐必看!Allegorithmic的PBR指南-第2部分(完结)
渲染纹理Game艺视界原创 15929 0
实名

通过了实名认证的内容创造者

发布于 2022-3-20 13:05:57

您需要 登录 才可以下载或查看,没有账号?注册

x

                                                 创建 PBR 纹理的实用指南

在第 1 部分中,我们从技术和理论的角度定义了 PBR。在第 2 部分中,我们将讨论创作 PBR 纹理的实际应用,并提供一组基于第 1 部分中建立的基础的指南。

我们将从艺术角度重新定义 PBR。从那里,我们将讨论金属/粗糙度工作流程的原则。然后我们将跟进镜面反射/光泽度工作流程并讨论创作方法的差异。最好通读这两个工作流程,以全面了解创作 PBR 纹理的总体指南。

在本指南中,我们将讨论使用 Substance 工具集的工作流程,但讨论的地图创建原则适用于用于创建基于物理的纹理和材质的任何软件。

基于物理的渲染 (PBR) 是一种方法而不是硬标准。有特定的原则和指导方针,但没有一个真正的规则,这意味着可以有不同的实现。使用的地图类型和工作流程可能会有所不同。GGX BRDF 是常用的,但术语可能会有所不同。此外,一些实现会更改地图名称,即使它们的底层用法保持不变。

在这一部分,我们将讨论两种最常见的工作流程,即金属/粗糙度和镜面反射/光泽度(图 16)。用于创作 PBR 贴图的 Substance 工具集由 Substance Designer、Substance Painter 和 Substance B2M 组成,支持这两种工作流程。用于金属/粗糙度和镜面反射/光泽度的 Substance PBR 着色器使用 GGX BRDF,并且不使用任何用于粗糙度/光泽度的值重新映射。但是,如果需要任何自定义重新映射,这可以在 Substance 中轻松实现。

d9ac30cab4a718c21c6b1fd819710799.png

此外,Substance 工具集中支持自定义着色器,这意味着您可以使 Substance 适应任何自定义管道。

虽然这两种工作流程在实施方面各有利弊,但并不优于另一种。使您创作的 PBR 地图准确的是基础概念和指南,而不是工作流程本身。工作流代表相同的数据,但它们以不同的方式实现它。

01什么是PBR基于物理的渲染 (PBR) 是一种着色和渲染方法,可更准确地表示光如何与表面相互作用。它被称为基于物理的渲染 (PBR) 或基于物理的着色 (PBS)。根据正在讨论的管道的哪个方面,PBS 通常特定于着色概念,而 PBR 特定于渲染和照明。但是,这两个术语都从物理准确的角度描述了表示资产的过程。

有什么好处?

作为艺术家,我们可以从艺术和生产效率的角度来看待 PBR 的好处:
1. PBR 消除了创作表面属性(如镜面反射)的猜测,因为它的方法和算法基于物理上准确的公式。因此,更容易创建逼真的资产。
2.资产在所有光照条件下看起来都很准确。
3. PBR 提供了一个工作流来创建一致的艺术品,即使在不同的艺术家之间也是如此


对艺术家来说意味着什么?
作为艺术家,我们需要以不同的方式思考描述表面属性的贴图,因为计算机硬件和渲染的进步使我们现在可以更密切地模拟光的物理特性。


我们需要从传统渲染工作流程中摒弃漫反射和镜面反射贴图的概念,因为这些贴图仅用作近似光与材料的交互的解决方法。


在 PBR 中,着色器通过能量守恒和 BRDF 处理繁重的物理规则,而作为艺术家,我们创建受物理原理指导的贴图。PBR 的科学方面消除了对材质值的猜测,让我们可以将更多时间花在纹理的创造性方面。虽然正确遵守指南和作者地图很重要,但这并不意味着我们现在必须无视我们的艺术直觉。正是艺术视角真正为材料赋予了个性,通过精心制作的细节和表达方式来揭示其故事。这个过程的物理学永远不应该是艺术家的主要关注点。仅仅因为我们在物理上更精确的环境中工作并不意味着我们不能创造风格化的艺术。例如,迪士尼基于物理的反射模型被设计为一种原则性方法。也就是说,它更倾向于艺术指导,而不是严格的物理模型。重要的是要了解原则并使用指导方针,而不是成为它们的奴隶。

作为艺术家,我们需要以不同的方式思考描述表面属性的贴图。有新的地图类型需要遵循规则和指南。


02金属粗糙度/工作流程金属/粗糙度工作流程是通过一组通道定义的,这些通道作为纹理提供给 PBR 着色器中的采样器。特定于金属/粗糙度工作流程的贴图是基色、金属和粗糙度(图 17)。我们将讨论这些地图类型中的每一种,它们对两种工作流程都是通用的。PBR 着色器还将使用环境光遮挡、法线和可能的高度进行视差或置换贴图(图 18)


图 17:金属/粗糙度工作流程


图 18:高度图和环境光遮挡作为着色器的可选输入

在金属/粗糙度工作流程中,金属的反射率值与电介质的反射颜色一起放置在基色图中。掠射角的反射由 BRDF 处理。使用了金属贴图,它的作用就像一个遮罩来区分在基色贴图中找到的金属和电介质数据。电介质 F0 值不是手工编写的,因为着色器会处理它们。当着色器在金属贴图中看到黑色时,它会将基色贴图中的相应区域视为电介质,并使用 4% (0.04) 的反射率值(图 19)。
图 19:黑色表示非金属,使用 0.04 (4%) 反射率

正如我们在第 1 部分中所讨论的,4% 的值涵盖了最常见的介电材料。请务必注意,所有值,例如介电 F0、金属反射率和反照率颜色的亮度范围,均来自实际测量数据。在查看每种地图类型时,我们将讨论基于测量数据的指南。
在第 1 部分中,我们讨论了能量守恒的概念,其中从表面反射的光永远不会比它到达表面之前更强烈。在实现方面,着色器通常处理能量守恒的控制。Substance 就是这种情况。对于金属/粗糙度工作流程,不可能打破能量守恒定律。漫反射(反射颜色)和镜面反射平衡是通过金属遮罩控制的,因此不可能造成漫反射和镜面反射可以结合反射/折射比最初接收到的光更多的情况。
金属的反射率值与电介质的反射颜色一起放置在基色图中。

电介质 F0
常见介电材料的 F0 通常设置为 0.04(线性)4% 反射。在金属/粗糙度工作流程中,此值在着色器中硬编码。

一些金属/粗糙度实现,例如在 Substance 工具集和虚幻引擎 4 中找到的实现,具有镜面反射控制,允许美工人员更改电介质的恒定 F0 值。在 Substance 中,此输出标记为“specularLevel”,由金属/粗糙度 PBR 着色器中的纹理采样器提供。它表示 0.0-0.08 的范围,如图 20 所示。此范围在着色器中重新映射到 0.0-1.0,其中 0.5 表示 4% 的反射。


图 20:镜面反射电平输出表示介质 F0 着色器中的 0.0-0.08 范围

如果您需要手动设置电介质的 F0,您可以使用 Substance Designer 中 Substance 图形中的 specularLevel 输出或 Substance Painter 中的 specularLevel 通道来完成,如图 21 所示。我们将在下面深入讨论电介质的 F0镜面反射/光泽度工作流程,因为您可以完全控制镜面反射工作流程中的 F0。
图 21:使用镜面反射电平通道设置自定义电介质 F0

图 22:基色包含金属的反射漫反射颜色和反射率值

基色 (RGB – sRGB)
基本颜色贴图是一个 RGB 贴图,可以包含两种类型的数据:电介质的漫反射颜色和金属的反射率值,如图 22 所示。代表电介质的颜色代表反射波长,如第 1 部分所述。反射率如果区域在金属贴图中表示为金属(白色值),则存在值。

创建指南
可以认为基色图在色调上有些平坦。也就是说,它的对比度低于传统的漫反射贴图。太亮或太暗的值都是不可取的。物体的色调往往比我们记忆中的要轻得多。我们可以用最暗的物质是煤,最亮的物质是新鲜的白雪来形象化这个范围。煤是黑色的,但不是 0.0 黑色。我们选择的颜色值需要保持在一个亮度范围内。

至于亮度范围,我们主要指的是介电反射颜色。在图 23 中,您可以看到一个示例,其中污垢值低于正确的亮度范围。对于暗值,您不应低于 30-50 sRGB。暗值的范围在 30 sRGB 时可能更宽容,在 50 sRGB 时更严格。对于明亮的颜色,不应有任何高于 240 sRGB 的值(图 23)。
图 23:介电材料的基本颜色值范围(反射颜色)

我们指出,基色包含电介质材料方面的反射光数据,因此它应该没有诸如环境遮挡之类的照明信息。在着色器仅使用环境遮挡通道无法表示这种细节级别的情况下,添加微遮挡可能会有例外,如图 24 所示。但是,如果将微遮挡添加到贴图中,仍然需要由亮度范围控制。地图中指示金属反射率值的值应从实际测量值中获得。这些值将约为70-100% 镜面反射,我们可以将其映射到180-255的sRGB范围。
图 24:在基色中包含光照信息的例外是微遮挡


在 Substance PBR 实用工具部分,我们将讨论为常见材料提供预设 F0 值的工具。Sébastien Lagarde 提供的金属/粗糙度图表也是很好的资源(Lagarde 2014)

指示金属反射率值的值应从实际测量值中获得
  • 颜色代表非金属材料的反照率和金属的反射率值。
  • 除了微遮挡之外,基色应该没有照明信息。
  • 暗值不应低于 30 sRGB(容忍范围)到 50 sRGB(严格范围)。
  • 亮度值不应高于 240 sRGB。
  • 原始金属的反射率会很高,在 70-100% 的镜面反射范围内,我们可以将其映射到 180-255 sRGB。
正如您将在下面的金属部分中读到的,基色也可以包含金属反射率值。如果在基色中添加污垢或氧化,这将导致金属反射率值减小到不能被视为原始金属的范围。

金属贴图还必须考虑添加的污垢或氧化,并且必须在这些区域降低其值,以表明它不再被视为原始金属。在图 25 中,您可以看到生锈的金属被视为电介质并在金属贴图中设置为黑色。污垢层也包含在具有过渡灰度值的金属贴图中。当有一层薄薄的介电材料(如污垢)时,金属贴图可能并不总是二进制的,即 0.0(黑色)或 1.0(白色)


金属贴图以类似于蒙版的方式运行,因为它告诉着色器如何解释在基色中找到的数据。
图 25:在金属贴图中还必须考虑添加污垢和/或氧化

金属(灰度 - 线性)
金属贴图用于定义材料的哪些区域表示原始金属。作为灰度贴图,它以类似于蒙版的方式运行,因为它告诉着色器它应该如何解释在基色中找到的数据。
图 26:基础颜色图包含金属图所指示的原始金属的反射率值

金属贴图中的数据不包含直接用作材质值的真实世界数据。它只是向着色器描述基色中的哪些区域应解释为反射颜色(电介质),哪些区域表示金属反射率值。在金属贴图中,0.0(黑色 – 0 sRGB)代表非金属,1.0(白色 – 255 sRGB)代表原始金属。在定义原始金属和非金属方面,这种金属贴图通常是二元的:黑色或白色,金属或非金属。实际上,当着色器查看金属贴图并看到白色时,它会检查基色贴图中的相应区域以获得金属的反射率值,如图 26 所示。

创建指南金属表面有两个与纹理相关的重要方面:首先,它们的反射率值会在 70-100% 的镜面范围内很高;其次,有些金属会被腐蚀。在讨论创建指南时,我们将分别查看这两个方面。


落在此范围内的金属区域需要具有 70-100% 的反射率范围

原金属金属贴图将被创作为 0 或 1,金属与否,并用于定义原始、抛光的金属状态。作为一般指南,原始金属的灰度范围将在金属贴图中定义为 235-255 sRGB。落在此范围内的金属区域将需要在基色映射中具有 70-100% 的反射率范围,我们可以将其映射到180-255 sRGB,如图 27 所示。同样,这些值基于真实-世界测量数据。
图 27:贱金属将在金属贴图中定义为 >= 235 sRGB

腐蚀或介电层
当您对表面进行风化处理时,您可能需要考虑金属被氧化,或补偿其他环境因素,例如污垢。在这些情况下,金属需要被视为电介质。涂漆金属也是如此。如果您查看部分油漆被划伤或切掉的涂漆金属,则暴露的金属是“未加工的”(金属贴图中的白色),而油漆是介电层(金属贴图中的黑色),如图所示图 28。
图 28:涂漆金属被视为电介质

金属贴图可以表示金属和非金属之间的混合状态,由贴图中的过渡灰度值表示。如果金属贴图的灰度值低于 235 sRGB,您需要降低基色中的“原始”金属反射率值。想象一下如图 29 所示部分遮挡部分金属原材料的污垢层。污垢是介电的。如果您将金属贴图保留为全白,则会将基色中的这些污垢区域视为金属的反射率值。污垢颜色值远低于代表抛光金属 70-100% 反射率所需的值。通过降低由污垢表示的区域中的金属贴图值,您可以在介电和金属反射率值之间创建适当的混合。
图 29:金属的灰度范围将在金属贴图中定义为 >= 235 sRGB
dirt layer present in the base color
污垢层出现在基础颜色
dirtareas are not accounted for in metal map
金属地图中没有考虑到尘土区域
causes metal reflectance in base color to be too low as indicated by areas in red
导致基色的金属反射率过低,如红色区域所示


correct metal map marks dirt areas as a transitional state between the metal and non-metal materials
正确的金属地图将污垢区域标记为金属和非金属材料之间的过渡状态

污垢层的不透明度可以指示将基色中的反射率值降低多少。这里没有硬性规定。您实际上是从高反射率表面(导电)移动到低反射率表面(电介质)。然而,这种转变发生的程度可能会有所不同。


Substance 工具集允许轻松使用风化效果,以及控制这些效果如何通过多通道支持传播到通道。Substance Designer 和 Substance Painter 允许您更改 Substance 效果生成器上的参数,这将自动调整由 Substance 效果控制的通道。

例如,在 Substance Designer 中,您可以使用 Material Color Blend 节点跨多个通道应用效果,例如污垢。在 Material Color Blend 上,您可以通过调整金属值滑块来控制污垢层对金属的影响,如图 30 所示。

被氧化的金属需要作为电介质或生锈的金属进行处理。涂漆金属也是如此


图 30:材料颜色混合。较低的金属值表示有一层薄薄的污垢(污垢和金属之间的过渡状态)

黑色 (0.0) 是非金属,白色 (1.0) 是金属。可以有过渡灰度值来解释氧化或污垢。
如果金属贴图的值低于 235 sRGB,则需要降低基色贴图中的反射率值

粗糙度(灰度 - 线性)
粗糙度图描述了导致光漫射的表面不规则性,如图 31 所示。如第 1 部分所述,反射方向将根据表面粗糙度随机变化。这会改变光的方向,但光强度保持不变。较粗糙的表面将具有更大且看起来更暗的高光。更光滑的表面将保持镜面反射的聚焦,即使反射的光总量相同,镜面反射也会看起来更亮或更强烈。
在这张地图中,黑色 (0.0) 代表光滑的表面,白色 (1.0) 代表粗糙的表面。粗糙度贴图是最具创意的贴图,因为它允许艺术家直观地定义表面的特征。它允许您创造性地讲述有关表面状况的故事。它的环境如何?是小心处理还是无视处理?它是否暴露在元素中?表面的状况会告诉我们很多有关其环境的信息,因此与您尝试创建的资产和世界的整体设计有关。

粗糙度是一个非常主观的领域。艺术家,拥有完全的创作控制权。从粗糙度开始的一个好地方是法线贴图。法线贴图通常会包含关键的表面细节,这些细节也应该在粗糙度贴图中表现出来。

创建指南
要有创意并讲述有关表面的视觉故事。

分辨率和纹素密度
使用金属/粗糙度工作流程的一个副产品是它会产生白边伪影,如图 32 所示。这个问题也出现在镜面反射/光泽度工作流程中。然而,在这种情况下,它几乎不那么明显,因为效果相反:有黑色条纹而不是白色,如图 33 所示。
图 32:使用金属/粗糙度工作流程的一个副产品是它会产生白边伪影
图 33:使用镜面反射/光泽度工作流程的一个副产品是它会产生暗边伪影

这种条纹是由于纹理插值造成的,并且在材料之间的过渡区域中很明显,其中介电材料和非常亮的金属之间存在鲜明的对比。这在图 34 中显示。对于金属/粗糙度,基色包含金属反射率的较亮值,该值与非金属漫反射颜色进行插值,从而产生白色边缘。对于镜面反射/光泽度,漫反射贴图包含黑色,因为原始金属没有漫反射颜色。黑色值与非金属漫反射颜色进行插值,从而产生黑色条纹。
图 34:边缘在材料之间的过渡区域很明显

文档分辨率和纹素密度对边缘伪影的可见性有直接影响。例如,如果您使用硬边笔刷在金属和非金属之间创建过渡区域,低文档分辨率仍会柔化边缘,从而加剧伪影。这种低分辨率问题也是由于 UV 没有根据文档分辨率进行缩放以提供足够的纹素密度引起的。为 UV 提供良好的纹素密度是最小化任何边缘伪影的最佳方法(UV给大点贴图给大点)如图 35 所示。
图 35:为 UV 提供良好的纹素密度是最小化任何边缘伪影的最佳方法
在图 35 中,两个纹理集使用相同的 2048 像素分辨率。然而,右侧的图像显示了低纹素密度的劣质 UV 布局。

文档分辨率和纹素密度对边缘伪影的可见性有直接影响。

创建指南
Texel 密度和分辨率会影响金属/粗糙度工作流程中可能出现的白边。为了最大限度地减少伪影,请确保您的 UV 提供足够的密度以匹配文档分辨率。

金属/粗糙度工作流程的优缺点
优点
  • 可以更容易地创作并且更不容易因提供不正确的介电 F0 数据而导致错误。
  • 使用较少的纹理内存,因为金属和粗糙度都是灰度贴图。
  • 似乎是一种更广泛采用的工作流程。
缺点
  • 在地图创建中无法控制电介质的 F0。但是,大多数实现都有一个镜面反射控制来覆盖 4% 的基础值。
  • 边缘伪影更明显,尤其是在较低分辨率下


03镜面反射/光泽度工作流程就像金属/粗糙度一样,镜面反射/光泽度工作流程是通过一组贴图定义的,这些贴图作为纹理提供给 PBR 着色器中的采样器。特定于镜面反射/光泽度工作流程的贴图是漫反射、镜面反射和光泽度(图 36)。

图 36:镜面反射/光泽度工作流程

尽管镜面反射/光泽度工作流程使用更熟悉的名称,例如漫反射和镜面反射,但重要的是要区分这些贴图与其传统对应的贴图不同。Substance 使用术语漫反射,但某些实现可能将漫反射称为反照率。PBR 着色器还将使用环境遮挡、法线和可能的高度进行视差贴图,如前所述,这将在两个工作流程通用的贴图部分中讨论。

在此工作流程中,金属的反射率值和非金属材料的 F0 值放置在镜面反射贴图中。使用镜面反射/光泽度工作流程,您有两个 RGB 贴图:一个用于漫反射颜色(反照率),另一个用于反射率值(镜面反射)。使用高光贴图,您可以控制贴图本身内介电材料的 F0。

正如我们在金属/粗糙度工作流程中所述,Substance 中的 PBR 着色器处理能量守恒。这在镜面反射/光泽度工作流程中变得更加重要,因为镜面反射贴图提供了对电介质 F0 的完全控制。这意味着地图更容易包含不正确的值。例如,白色 (1.0) 漫反射和白色 (1.0) 镜面反射值可以结合起来反射/折射比最初接收到的更多的光,这反过来又违反了能量守恒定律。因此,在创作纹理时,纹理数据将与实际结果不符。

正如您将看到的,贴图表示的数据与金属/粗糙度工作流程中的数据相同。我们将遵循相同的准则;然而,不同之处在于地图的创作方式。数据将放置在不同的地图中,但我们将遵循相同的原则。如前所述,所有值,例如介电 F0、金属反射率和反照率颜色的亮度范围,均来自实际测量数据。在查看每种地图类型时,我们将讨论基于测量数据的指南。本节不会重复金属/粗糙度部分所涵盖的准确信息;相反,它将侧重于差异以及必须对镜面反射/光泽度工作流程进行区分的地方。

漫反射 (RGB – sRGB)
与金属/粗糙度工作流程中的基色贴图一样,漫反射贴图包含反照率颜色。但是,它不包含任何反射率值。

创建指南
漫反射贴图只是反照率颜色。指示原始金属的区域将为黑色 (0.0),因为金属没有漫反射颜色(图 37)。在发生氧化的情况下,金属区域将带有颜色,因为它不再被视为原始金属。对于在原始金属上形成介电层的污垢或其他效果也是如此。
图 37:指示原始金属的区域将是黑色 (0.0),因为金属没有漫反射颜色

漫反射贴图在色调方面的指导方针与基色贴图的指导方针相同。例外情况是,如果存在原始金属,则允许值为 0.0(黑色),并且不受暗度范围指南的约束


  • 颜色代表非金属材料的反照率,黑色 (0.0) 代表原始金属。
  • 除了微遮挡之外,基色应该没有照明信息。
  • 暗值不应低于 30 sRGB(容忍范围)或50 sRGB(严格范围),除非原始金属为黑色。
  • 亮度值不应高于 240 sRGB

镜面反射 (RGB – sRGB)
镜面反射贴图定义了金属的反射率值和非金属的 F0(图 38)。此 RGB 贴图允许在贴图中创作不同的介电材料值。这与金属/粗糙度工作流程不同,在金属/粗糙度工作流程中,电介质以 4% 的反射率进行硬编码,并且只能通过“specularLevel”通道进行修改。正如我们在金属/粗糙度工作流程中介绍的那样,F0 数据应该来自真实世界的测量值。电介质的 F0 将是一个较暗的值。由于某些金属吸收不同波长的光,因此金属反射率可以着色。电介质和金属的 F0 均在 RGB 高光贴图中编写。

高光贴图允许在贴图中创作不同的介电 F0 值
图 38:镜面反射图定义了金属的反射率值和非金属的 F0

创建指南
由于高光贴图包含金属和非金属的 F0 值,我们将把贴图分解为每种材料类型的单独类别。

原金属
F0 值应该基于真实世界的数据。正如我们在金属贴图中所介绍的那样,如果存在氧化或某些表明非金属的层,则需要降低原始金属的反射率。在镜面反射/光泽度工作流程的情况下,污垢或氧化会提高漫反射贴图中原始金属的漫反射颜色并降低镜面反射贴图中的反射率值,如图 39 所示。图 39 中还显示了一个示例生金属上的污垢层。镜面反射贴图中的污垢包含适当的电介质 F0 值。在这种情况下,我们使用 0.04 或 4%。
图 39:氧化/污垢会提高原始金属的漫反射颜色并降低镜面反射贴图中的反射率值

电介质
电介质材料的 F0 也是在高光贴图中创作的。在这里您可以完全控制 F0 值,但使用正确的数据很重要。正如我们在第 1 部分中所讨论的,非金属(绝缘体/电介质)是电的不良导体。折射光被散射和/或吸收(通常从表面重新出现),因此这些材料反射的光量比金属少得多。我们指出,基于通过折射率 (IOR) 计算的 F0,普通电介质的值约为 2-5%。除宝石外,普通介电材料的 F0 可以在0.02-0.05(线性)范围内(图 40)



图 40:常见介电值在 2-5% 范围内
就 sRGB 而言,我们正在查看 40-75 sRGB 之间的值范围,它与线性 0.02-0.05 (2-5%) 范围重叠。

如果您找不到特定材料的 IOR 值,您可以假设为 4%(0.04 - 塑料)。宝石是一个例外,其范围为 0.05-0.17(线性),如图 40 所示。在金属工作流程中,当使用 specularLevel 通道时,着色器映射到 0.0-0.08(线性)范围,因为需要零代表空气,如图 39 所示。

  • 镜面反射贴图包含电介质的 F0 和原始金属的反射值。
  • 电介质比金属反射更少的光。普通电介质的值约为 2-5%。就 sRGB 而言,值应介于 sRGB 40-75 之间,与 0.02-0.05(线性)范围重叠。
  • 常见的宝石在 0.05-0.17(线性)范围内。
  • 常见液体在 0.02-0.04(线性)范围内。
  • 原始金属的反射率值会在70-100% 镜面反射范围内很高,我们可以将其映射到180-255 sRGB。
  • 如果您找不到特定材料的 IOR 值,您可以使用 4%(0.04 - 塑料)。

光泽度(灰度 - 线性)
光泽度贴图描述了导致光漫射的表面不规则性(图 41)。在此地图中,黑色 (0.0) 代表粗糙表面,白色 (1.0) 代表光滑表面。它与金属/粗糙度工作流程中的粗糙度贴图相反。该贴图具有与上述粗糙度部分相同的艺术指导。

创建指南
再一次,要有创意,讲述一个关于表面的视觉故事。



图 41:光泽度图描述了导致光漫射的表面不规则性

分辨率和纹素密度
我们之前讨论了边缘伪影如何出现在两个工作流程中。这在金属/粗糙度部分进行了深入讨论,因为在该工作流程中边缘伪影更加明显。我们还提到,对于镜面反射/光泽度,漫反射贴图包含黑色,因为原始金属没有漫反射颜色。黑色值与非金属漫反射颜色进行插值,产生黑色条纹,如图 42 所示。
图 42:使用镜面反射/光泽度工作流程的一个副产品是它会产生暗边伪影

同样,文档分辨率和纹素密度对边缘伪影的可见性有直接影响。如果您使用硬边刷在金属和非金属之间创建过渡区域,低文档分辨率仍会软化边缘,从而加剧伪影。与文档分辨率相比,UV 未进行缩放以提供足够的纹素密度,也会导致此低分辨率问题。为 UV 提供良好的纹素密度是控制此问题的最佳方法(图 43)。文档分辨率和纹素密度对边缘伪影的可见性有直接影响。
图 43:为 UV 提供良好的纹素密度是最小化任何边缘伪影的最佳方法

创建指南
Texel 密度和分辨率会影响可能出现在镜面反射/光泽度工作流程中的黑色条纹。确保您的 UV 提供足够的密度以匹配文档分辨率,以最大限度地减少伪影。

镜面反射/光泽度工作流程的优缺点
优点
  • 边缘伪影不太明显。
  • 控制镜面反射贴图中的电介质 F0。
缺点
  • 由于镜面反射贴图提供对电介质 F0 的控制,因此更容易使用不正确的值。如果在着色器中处理不当,就有可能违反守恒定律。
  • 使用更多的纹理内存和额外的 RGB 贴图。
  • 可能会更令人困惑,因为它使用与传统工作流程相似的术语,但需要不同的数据。它还需要更多基于物理的指南的知识,例如正确的电介质 F0、黑色用于原始金属漫反射颜色以及如果不在着色器中处理可能的节能。


04两个工作流共有的映射环境光遮蔽 (AO)

环境遮挡贴图定义了一个表面点可以访问多少环境照明。它只影响漫反射贡献,不应遮挡镜面反射贡献。一些引擎,例如虚幻引擎 4,有一个屏幕空间反射选项来模拟局部反射。最好的组合是将 AO 与屏幕空间反射一起使用。

在 Substance PBR 着色器中,环境光照(由环境贴图生成)乘以 AO。AO 贴图由 PBR 着色器中的纹理采样器提供,是一个可选通道(图 44)。AO 不应烘焙到纹理贴图中,而应仅作为其自己的通道提供给着色器。

AO 仅影响漫反射贡献,不应遮挡镜面反射贡献
图 44:AO 不应烘焙到纹理贴图中,而应仅作为其自己的通道提供给着色器

创建环境光遮蔽
在 Substance Designer 和 Substance Painter 中,AO 可以从网格烘焙或使用集成烘焙工具集从法线贴图转换。此外,在 Substance Designer 和 Substance Painter 中,您都可以使用 HBAO 节点/过滤器从高度输入生成基于水平的环境光遮挡,这提供了与光线跟踪烘焙类似的结果,如图 45 所示。
图 45:使用 Designer 中的 HBAO 节点或 Painter 中的过滤器产生与光线跟踪烘焙相似的结果
高度
高度图通常用于渲染中的位移。它可用于视差贴图,有助于为法线贴图和凹凸贴图添加更多明显的深度,从而提高真实感。Substance 使用浮雕贴图视差算法。高度由 PBR 着色器中的纹理采样器提供,也是 PBR 着色器的选项通道输入。在 Substance Designer 中,您可以使用视差遮挡或曲面细分着色器(图 46)。使用 Substance Painter,您可以使用置换通道来驱动视差遮挡。
图 46:高度由 PBR 着色器中的纹理采样器提供,也是一个选项通道

创建高度
与 AO 一样,高度可以在 Substance Designer 或 Substance Painter 中使用集成的烘焙工具集从网格中烘焙。在 Substance Designer 中,您可以使用节点从法线贴图转换高度(图 47)。在 Substance Painter 中,您可以直接绘制高度细节,如图 48 所示。

关于在实时着色器中使用高度,最好减少贴图中包含的高频细节量。高度图应设计为代表用于置换几何体的形状的整体轮廓。一个好的做法是使用高度的模糊版本来突出形式并减少任何高频细节。这将导致法线贴图提供高频细节,而高度将取代形状的轮廓(图 49)。如果您在光线跟踪渲染器中使用高度作为位移,则需要此高频细节。
图 47:使用法线到高度节点从法线数据创建高度图
图 48:直接在网格上绘制高度细节

图 49:法线提供高频细节,高度提供形状的轮廓

普通的
法线贴图用于模拟表面细节。它是一个 RGB 贴图,其中每个组件对应于表面法线的 X、Y 和 Z 坐标。它可用于将高分辨率模型的投影细节存储到低分辨率模型。在 Substance 工具集中,您可以烘焙法线或将高度贴图转换为法线贴图。

创建法线
可以使用集成的烘焙工具集在 Substance Designer 和 Substance Painter 中从网格烘焙法线贴图。在 Substance Designer 中,您可以使用法线节点将高度转换为法线贴图,如图 50 所示。在 Substance Painter 中,您可以直接在 3D 视口中绘制法线数据(图 51)。
图 50:法线节点可以从高度输入创建法线数据
图 51:普通通道可用于绘制普通数据

物质 PBR 实用程序
在本节中,我们将讨论几个可以帮助创作 PBR 纹理和设置正确反射率值的 Substance 实用程序。这些工具是基于本指南中涵盖的原则和概念构建的。

物质设计师
PBR基材
该节点是用于创建完整基础材质的实用程序,可以在Material Filters > PBR Utilities下找到,如图 52 所示。它支持金属/粗糙度和镜面反射/光泽度工作流程,并为原始金属材料提供通用预设。如果创建非金属,它还允许您设置反照率。根据工作流程,可以控制粗糙度和光泽度,也有垃圾量选项。您可以启用地图输入以输入基色、法线或高度等通道。
图 52:使用预设值或自定义贴图输入创建基础材质的 PBR 实用程序

电介质 F0
该节点输出常见介电材料的 F0 值(图 53),也可以在Material Filters > PBR Utilities下找到。您可以从预设值中进行选择,并且该节点有一个 IOR 输入字段,该字段采用 IOR 并计算 F0 值。它专为介电材料设计,可用于镜面反射/光泽度工作流程。
图 53:使用预设或自定义 IOR 计算介电 F0 值的 PBR 实用程序

金属反射
此节点输出常见金属原材料的反射率值。在 Substance Designer 库中的 Material Filters > PBR Utilities 下找到它。您可以从多个预设金属值中进行选择,如图 54 所示。
图 54:包含金属反射率值预设的 PBR 实用程序

PBR 金属/粗糙度验证
该节点旨在与金属/粗糙度工作流程配合使用,是一个实用程序,用于检查基色和金属贴图的错误值(图 55)。它可以在Material Filters > PBR Utilities下找到。节点输出从红色 > 黄色 > 绿色移动的热图,其中红色不正确,绿色/黄色正确。对于金属,它会检查金属贴图中指示为金属的区域(大于 235 sRGB)的基色中相应的 F0 值。热图显示 F0 范围可能过低的范围。对于反照率,它会检查电介质亮度范围是否正确。

PBR 安全颜色
该节点校正基色或漫反射贴图中的值,如图 56 所示。它确保值落在电介质的校正亮度范围内。它可以在Material Filters > PBR Utilities下找到。
图 55:检查反照率/金属反射率值范围并输出热图以显示正确/不正确值的 PBR 实用程序
图 56:检查基色和漫反射范围的 PBR 实用程序
转换
BaseColor_metal_roughness_converter
该节点将贴图从金属/粗糙度工作流转换为各种渲染,可以在Material Filters > PBR Utilities下找到。

  • 维雷 (GGX)
  • 电晕
  • 电晕 1.6
  • 红移 1.x °
  • 阿诺德 4 (aiSurface) °
  • 阿诺德4(aiStandard)°
  • 渲染人(pxrSurface)
Arnold 5 支持基色/金属/粗糙度工作流程。° Redshift 2.x 支持基色/金属/粗糙度工作流程

物质画家
PBR 金属/粗糙度验证(过滤器)
此过滤器旨在与金属/粗糙度工作流程配合使用,是一种实用程序,可检查基色和金属贴图的错误值(图 57)。它是一个免费的过滤器,可以从 Substance Share 下载。

过滤器输出从红色 > 黄色 > 绿色移动的热图,其中红色不正确,绿色/黄色正确。对于金属,它会检查金属贴图中指示为金属的区域(大于 235 sRGB)的基色中相应的 F0 值。

热图显示 F0 范围可能过低的范围。对于反照率,它会检查电介质亮度范围是否正确。

要在 Painter 中使用它,请将过滤器导入您的 Substance Painter 项目并将其标记为过滤器或将过滤器复制到您的架子中的过滤器文件夹。
图 57:检查反照率/金属反射率值范围并输出热图以显示正确/不正确值的 PBR 实用程序

物质输出和渲染
Substance Source 的Substance 材质支持金属/粗糙度和镜面反射/光泽度工作流程。这些输出可用于基于物理的实时着色器,例如虚幻引擎 4 和 Unity 中的着色器。基色/金属/粗糙度输出可用于支持金属工作流程的光线追踪渲染器,例如 Arnold。镜面反射/光泽度贴图仅用于实时着色器。根据渲染器的不同,您可以直接使用基色/金属/粗糙度输出,或者您可能需要转换它们。

您从Substance Share下载的自定义材料或资源可能没有适合给定渲染器的输出,因为它们主要仅包含基色/金属/粗糙度输出,因此了解您的材料将接受的材料输入类型非常重要,以便您可以如果需要转换,请正确利用 Substance 材质的输出。

例如,使用 Arnold 5,您可以直接使用金属/粗糙度输出。但是,对于 Vray 材质,您需要转换金属/粗糙度输出以生成反射和 1/IOR 贴图。Substance Painter 支持多种第三方渲染器配置,如图 58 所示。
图 58:Painter 附带了 Arnold、Vray、Keyshot、Corona 和 Redshif 等流行渲染器的导出配置

Substance 集成插件的目标是自动转换 Substance 输出以与特定渲染器一起使用。例如,3ds Max Substance 插件具有用于处理 Arnold、Vray 和 Corona 的预设。选择预设将自动转换 Substance 输出以用于这些渲染器(图 59)。
图 59:使用 Corona 预设将创建 Corona 材质并自动转换 Substance 输出
有关使用 Substance Painter 和 Substance Designer(物质材质)使用第三方渲染器的更多信息,请参阅我们的 Substance 集成渲染文档。
图 60:表面是否为金属?金属/粗糙度工作流程
图 61:表面是金属吗?镜面反射/光泽度工作流程
附录 - 图表
表面是金属吗?
将表面分解为金属或非金属类别会很有帮助。通过首先检查材料并询问它是否是金属来开始纹理处理过程通常很有用。通过这个问题,您可以得出我们在本卷中以及图 60 和 61 中介绍的纹理处理过程的一些指南。图 60 使用金属/粗糙度工作流程,图 61 是镜面反射/光泽度。

反射值
图 62 显示了电介质的 F0 范围,因为它们与金属/粗糙度工作流程中的 Substance PBR 着色器相关。电介质比金属反射更少的光。普通电介质的值约为 2-5%。对于 sRGB,值应介于 sRGB 40-75 之间,这与 0.02-0.05(线性)范围重叠。



图 62:普通电介质 F0 值和金属反射率值

在图 63 中,您可以看到电介质 F0 和金属反射率值。对于金属,镜面反射范围在 70-100% 内,并映射到 180-255 的 sRGB 值。
图 63:介电 F0 值和金属反射率值
从 sRGB 到线性的转换是使用 gamma 2.2 近似完成的。有关更多详细信息,请参阅第 1 部分中关于线性空间渲染的部分。

正确/不正确的比较
在图 64 中,您可以看到使用金属/粗糙度工作流程正确和错误地创建的贴图示例。污垢在金属贴图中标记为原始金属。此外,金属反射率值在基色中设置得太低,因为它不反映 70-100% 的镜面反射范围。
图 64:正确和错误贴图的比较 - 金属/粗糙度



本文为转载文章:Allegorithmic的文档《THE PBR GUIDE - PART 2》转载地址:https://substance3d.adobe.com/tu ... he-pbr-guide-part-2






bfc9be063eaa0aa87751133fb8b328ff.png

本帖被以下画板推荐:

微信公众号:Game艺视界
使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表