创建时间
Mar 28, 2023 08:06 PM
标签
Tags
技术详解
流程规范
Origin
substance3d.adobe.com
The PBR Guide by Allegorithmic - Part 2 ### Practical Guidelines For Creating PBR Textures To re……
PBR 指南 - 第 2 部分 01:05:00
Allegorithmic 的 PBR 指南 - 第 2 部分
创建 PBR 纹理的实用指南
要离线阅读,您可以下载附件,该附件是整本书的 PDF(第 1 部分 + 第 2 部分)
目录
- 什么是 PBR? 有什么好处? 这对艺术家意味着什么?
- 金属 / 粗糙度工作流程 电介质 F0 / 基色 / 金属 / 粗糙度 / 分辨率和纹素密度 优缺点
- 镜面反射 / 光泽度工作流程 漫反射 / 镜面反射 / 光泽度 / 分辨率和纹素密度 优点和缺点
- 两个工作流的通用地图 环境光遮蔽 / 高度 / 诺玛
- 物质 PBR 实用程序 物质设计师 / 物质画家 / 物质输出和渲染
- 附录 - 图表 表面是金属吗?/ 反射率值 / 正确 / 不正确的比较
创建 PBR 纹理的实用指南
在第 1 部分中,我们从技术和理论角度定义了 PBR。在第 2 部分中,我们将讨论创作 PBR 纹理的实际应用,并提供一组基于 Part 1 中建立的基础的准则。
我们将首先从艺术角度重新定义 PBR。从那里,我们将讨论金属 / 粗糙度工作流程的原理。然后,我们将跟进镜面反射 / 光泽度工作流程,并讨论创作方法的差异。最好通读这两个工作流,以全面了解创作 PBR 纹理的总体准则。
在本指南中,我们将讨论使用 Substance 工具集的工作流程,但讨论的地图创建原则适用于用于创建基于物理的纹理和材质的任何软件。
基于物理的渲染 (PBR) 是一种方法论,而不是硬性标准。有具体的原则和指导方针,但没有一个真正的规则,这意味着可以有不同的实现。使用的地图类型和工作流可能会有所不同。GGX BRDF 是常用的,但术语可能会有所不同。此外,某些实现会更改映射名称,即使它们的基础用法保持不变。
在这一部分中,我们将讨论两种最常见的工作流程,即金属 / 粗糙度和镜面反射 / 光泽度(图 16)。用于创作 PBR 地图的物质工具集由物质设计器、物质绘制器和物质 B2M 组成,支持这两种工作流。金属 / 粗糙度和镜面反射 / 光泽度的物质 PBR 着色器使用 GGX BRDF,并且不使用粗糙度 / 光泽度的任何值重新映射。但是,如果需要任何自定义重新映射,这可以在 Substance 中轻松实现。
图 16:金属 / 粗糙度和镜面反射 / 光泽度工作流程
此外,Substance 工具集支持自定义着色器,这意味着您可以将 Substance 调整到任何自定义管线。
虽然这两种工作流程在实施时都有优点和缺点,但一个并不优于另一个。正是基本概念和指南将使您创作的 PBR 地图准确无误,而不是工作流本身。工作流表示相同的数据,但它们以不同的方式实现数据。
什么是 PBR?
基于物理的渲染 (PBR) 是一种着色和渲染方法,可更准确地表示光线与表面的交互方式。它被称为基于物理的渲染 (PBR) 或基于物理的着色 (PBS)。根据正在讨论的管道的哪个方面,PBS 通常特定于着色概念,PBR 特定于渲染和照明。但是,这两个术语都从物理上准确的角度描述了表示资产的过程。
有什么好处?
作为艺术家,我们可以从艺术和生产效率的思维方式来看待 PBR 的好处:
1. PBR 消除了创作表面属性(如镜面反射)的猜测,因为它的方法和算法基于物理上精确的公式。因此,创建逼真的资产更容易。
2. 资产在所有照明条件下看起来都很准确。
3. PBR 提供了一个工作流程,用于创建一致的图稿,即使在不同的艺术家之间也是如此。
这对艺术家意味着什么?
作为艺术家,我们需要以不同的方式思考描述表面属性的地图,因为计算机硬件和渲染的进步使我们能够更紧密地模拟光的物理特性。
我们需要从传统的渲染工作流程中抛弃漫反射和高光贴图的概念,因为这些贴图仅用作近似光与材质相互作用的解决方法。
在 PBR 中,着色器通过能量守恒和 BRDF 来处理物理规则的繁重工作,而作为美术师,我们创建以物理原理为指导的地图。PBR 的科学方面消除了对材料价值的猜测,使我们能够将更多时间花在纹理的创造性方面。虽然正确遵守指南和创作地图很重要,但这并不意味着我们现在必须忽视我们的艺术直觉。正是艺术视角真正赋予了材料个性,通过精心制作的细节和表达来揭示其故事。这个过程的物理特性永远不应该是艺术家的主要关注点。仅仅因为我们在物理上更准确的环境中工作并不意味着我们不能创造风格化的艺术。例如,迪士尼基于物理的反射率模型被设计为一种原则性的方法。也就是说,它更倾向于艺术指导,而不是严格的物理模型。重要的是要了解原则并使用准则,而不是成为它们的奴隶。
- * 作为艺术家,我们需要以不同的方式思考描述表面属性的地图。有新的地图类型,其中包含要遵循的规则和准则。 **
金属 / 粗糙度工作流程
金属 / 粗糙度工作流程通过一组通道定义,这些通道作为纹理馈送到 PBR 着色器中的采样器。特定于金属 / 粗糙度工作流程的映射是基色、金属和粗糙度(图 17)。我们将讨论这两种地图类型中的每一种,这两种地图类型在两种工作流中都是通用的。PBR 着色器还将使用环境光遮蔽、法线和可能的高度进行视差或置换贴图(图 18)
图 17:金属 / 粗糙度工作流程
图 18:高度贴图和环境光遮蔽作为着色器的可选输入
在金属 / 粗糙度工作流程中,金属的反射率值与电介质的反射颜色一起放置在基础颜色图中。掠角的反射由 BRDF 处理。使用金属贴图,其工作原理类似于掩码,以区分基本色图中的金属和介电数据。介电 F0 值不是在着色器处理它们时手动创作的。当着色器在金属贴图中看到黑色时,它会将基本色图中的相应区域视为电介质,并使用 4% (0.04) 的反射率值(图 19)。
图 19:黑色表示非金属,使用 0.04 (4%) 反射率
正如我们在第 1 部分中讨论的,4% 的值涵盖了最常见的介电材料。需要注意的是,所有值,如介电 F0、金属反射率和反照率颜色的亮度范围,均来自实际测量数据。当我们查看每种地图类型时,我们将讨论基于测量数据的指南。
在第 1 部分中,我们讨论了能量守恒的概念,即从表面反射的光永远不会比撞击表面之前更强烈。在实现方面,着色器通常处理节能控制。实质就是这种情况。使用金属 / 粗糙度工作流程,不可能打破能量守恒定律。漫反射(反射颜色)和镜面平衡通过金属掩模控制,因此不可能产生漫反射和镜面反射可以结合以反射 / 折射比最初接收的更多的光的情况。
金属的反射率值与电介质的反射颜色一起放置在基础颜色图中。
电介质 F0
普通介电材料的 F0 通常设置为 0.04(线性)4% 反射率。在金属 / 粗糙度工作流程中,此值在着色器中硬编码。
某些金属 / 粗糙度实现(例如在 Substance 工具集和虚幻引擎 4 中的实现)具有镜面反射控制,允许美术师更改电介质的恒定 F0 值。在 Substance 中,此输出标记为 “镜面反射级别”,由金属 / 粗糙度 PBR 着色器中的纹理采样器提供。它表示 0.0-0.08 的范围,如图 20 所示。此范围在着色器中重新映射到 0.0-1.0,其中 0.5 表示 4% 的反射率。
图 20:镜面反射电平输出表示介电介质 F0 着色器中的 0.0-08.0 范围
如果需要手动设置电介质的 F0,可以使用 Substance Designer 中 Substance 图中的 SpecularLevel 输出或 Substance Painter 中的 SpecularLevel 通道,如图 21 所示。我们将在镜面反射 / 光泽度工作流程中深入讨论电介质的 F0,因为您可以在镜面反射工作流程中完全控制 F0。
图 21:使用镜面电平通道设置自定义电介质 F0
图 22:基色包含金属的反射漫反射颜色和反射率值
基色 (RGB – sRGB)
基本颜色图是 RGB 贴图,可以包含 2 种类型的数据:电介质的漫反射色和金属的反射率值,如图 22 所示。代表电介质的颜色代表反射波长,如第 1 部分所述。如果在金属贴图中将某个区域表示为金属(白色值),则存在反射率值。
创作指南
可以认为基本颜色图的色调有些平坦。也就是说,它的对比度低于传统的漫反射贴图。不建议使用太亮或太暗的值。物体的色调往往比我们记忆中的要轻得多。我们可以根据最暗的物质是煤,最亮的是新鲜的白雪来可视化这个范围。煤是深色的,但它不是 0.0 黑色。我们选择的颜色值需要保持在亮度范围内。
关于亮度范围,我们主要指的是介电反射颜色。在图 23 中,您可以看到污垢值低于正确亮度范围的示例。对于暗值,不应低于 30-50 sRGB。暗值的范围在 30 sRGB 时可能更宽容,在 50 sRGB 时更严格。对于明亮的颜色,不应有任何高于 240 sRGB 的值(图 23)。
图 23:介电材料的基本颜色值范围(反射颜色)
我们声明基色包含介电材料方面的反射光数据,因此它应该没有环境光遮蔽等照明信息。在着色器仅使用环境光遮蔽通道无法表示此细节级别的情况下,添加微遮挡可能会有例外,如图 24 所示。但是,如果将微遮挡添加到地图中,它仍然需要由亮度范围控制。图中指示金属反射率值的值应从实际测量值中获得。这些值将是大约 70-100% 的镜面反射,我们可以将其映射到 180-255 的 sRGB 范围。
图 24:在基色中包含照明信息的例外情况是微遮挡
在物质 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
污垢层的不透明度可以指示基色中反射率值的降低程度。这里没有硬性规定。您基本上是从高反射率表面(导电)转向低反射率表面(电介质)。但是,这种转变发生的程度可能会有所不同。
Substance 工具集允许轻松使用风化效果,以及通过多通道支持控制这些效果如何传播到通道。物质设计器和物质绘制器允许您更改物质效果发生器上的参数,该发生器将自动调整由物质效果控制的通道。
例如,在 “物质设计器” 中,可以使用 “材质颜色混合” 节点跨多个通道应用污垢等效果。在材质颜色混合上,您可以通过调整金属值滑块来控制污垢层对金属的影响,如图 30 所示。
被氧化的金属需要被视为电介质或生锈的金属。涂漆金属也是如此
图 30:材质颜色混合。较低的金属值表示薄薄的污垢层(污垢和金属之间的过渡状态)
- 黑色(0.0)是非金属,白色(1.0)是金属。可以有过渡灰度值来解释氧化或污垢。
- 如果金属贴图的值低于 235 sRGB,则需要降低基本色图中的反射率值
粗糙度(灰度 - 线性)
粗糙度图描述了导致光扩散的表面不规则性,如图 31 所示。如第 1 部分所述,反射方向将根据表面粗糙度随机变化。这会改变光的方向,但光强度保持不变。较粗糙的表面将具有更大且更暗淡的高光。更光滑的表面将使镜面反射保持聚焦,即使反射的光总量相同,镜面反射看起来也会更亮或更强烈。
图 31:粗糙度图描述了导致光扩散的表面不规则性
在此地图中,黑色 (0.0) 表示光滑表面,白色 (1.0) 表示粗糙表面。粗糙度贴图是最有创意的贴图,因为它允许艺术家直观地定义表面的特征。它使您可以创造性地讲述有关表面状况的故事。它的环境是什么?是小心处理还是无视?它暴露在元素中了吗?表面的状况可以说明很多关于其环境的信息,因此与您尝试创建的资产和世界的整体设计有关。
粗糙度是一个高度主观的领域。您,艺术家,完全控制创意。从粗糙度开始的一个好地方是法线贴图。法线贴图通常包含关键表面细节,这些细节也应在粗糙度贴图中表示。
创作指南
要有创意,讲述一个关于表面的视觉故事。
分辨率和纹素密度
使用金属 / 粗糙度工作流程的副产品是它可以产生白边伪影,如图 32 所示。在镜面反射 / 光泽度工作流中也会出现此问题。然而,在这种情况下,它几乎不那么明显,因为效果是相反的:有一个黑色条纹而不是白色,如图 33 所示。
图 32:使用金属 / 粗糙度工作流程的副产品是它可以产生白边伪影
图 33:使用镜面反射 / 光泽度工作流程的副产品是它可以产生暗边伪影
这种条纹是由于纹理插值造成的,并且在材料之间的过渡区域中很明显,其中介电材料和非常明亮的金属之间存在鲜明的对比。如图 34 所示。对于金属 / 粗糙度,基色包含更亮的金属反射率值,该值与非金属漫反射色插值,从而产生白色边缘。对于镜面反射 / 光泽度,漫反射贴图包含黑色,因为原始金属没有漫反射颜色。黑色值与非金属漫反射颜色插值,从而产生黑色条纹。
图 34:条纹在材料之间的过渡区域很明显
文档分辨率和纹素密度直接影响边缘伪影的可见性。例如,如果使用硬边画笔在金属和非金属之间创建过渡区域,则较低的文档分辨率仍将软化边缘,从而加剧伪影。此低分辨率问题也是由未缩放以根据文档分辨率提供足够的纹素密度的 UV 引起的。为 UV 提供良好的纹素密度是最小化任何边缘伪影的最佳方法,如图 35 所示。
图 35:为 UV 提供良好的纹素密度是最大限度地减少任何边缘伪影的最佳方法
在图 35 中,两个纹理集使用相同的 2048 像素分辨率。但是,右侧的图像显示了纹素密度低的不良 UV 布局。
文档分辨率和纹素密度直接影响边缘伪影的可见性。
创作指南
纹素密度和分辨率会影响金属 / 粗糙度工作流程中可能出现的白边。若要最大程度地减少伪影,请确保 UV 提供足够的密度以匹配文档分辨率。
金属 / 粗糙度工作流程的优缺点
优点
- 可以更易于创作,并且不易因提供不正确的介电 F0 数据而导致错误。
- 使用较少的纹理内存,因为金属和粗糙度都是灰度贴图。
- 似乎是一个更广泛采用的工作流程。
缺点
- 在映射创建中无法控制电介质的 F0。但是,大多数实现都有一个镜面控制来覆盖 4% 的基本值。
- 边缘伪像更明显,尤其是在较低分辨率下
镜面反射 / 光泽度工作流程
与金属 / 粗糙度一样,镜面反射 / 光泽度工作流程是通过一组贴图定义的,这些贴图作为纹理提供给 PBR 着色器中的采样器。特定于镜面反射 / 光泽度工作流程的贴图包括漫反射、镜面反射和光泽度(图 36)。
图 36:镜面反射 / 光泽度工作流程
尽管镜面反射 / 光泽度工作流使用更熟悉的名称,例如漫反射和高光,但重要的是要区分这些贴图与传统贴图不同。物质使用术语漫反射,但某些实现可能将漫反射称为反照率。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% 的反射率硬编码,并且只能通过 “镜面水平” 通道进行修改。正如我们在金属 / 粗糙度工作流程中介绍的那样,F0 数据应来自实际测量值。电介质的 F0 将是一个较暗的值。金属反射率可以着色,因为某些金属吸收不同波长的光。电介质和金属的 F0 在 RGB 镜面贴图中创作。
镜面反射贴图允许在贴图中创作电介质 F0 的不同值
图 38:镜面反射贴图定义了金属的反射率值和非金属的 F0
创作指南
由于镜面反射贴图包含金属和非金属的 F0 值,因此我们将每种材质类型将贴图分解为单独的类别。
原金属
F0 值应基于实际数据。正如我们在金属图中介绍的那样,如果存在氧化或某些指示非金属的层,则需要降低原始金属的反射率。在镜面反射 / 光泽度工作流程中,污垢或氧化会提高漫反射贴图中原材料的漫反射颜色,并降低镜面贴图中的反射率值,如图 39 所示。图 39 中还显示了原始金属上的污垢层示例。镜面贴图中的污垢包含适当的电介质 F0 值。在这种情况下,我们使用 0.04 或 4%。
图 39:氧化 / 污垢会增加原始金属的漫反射颜色,并降低镜面贴图中的反射率值
电介质
介电材料的 F0 也在镜面贴图中创作。在这里,您可以完全控制 F0 值,但使用正确的数据很重要。正如我们在第 1 部分中讨论的,非金属(绝缘体 / 电介质)是电的不良导体。折射光被散射和 / 或吸收(通常从表面重新出现),因此这些材料反射的光量比金属少得多。我们指出,根据折射率(IOR)计算的 F2,普通电介质的值约为 5-0%。除宝石外,对于普通介电材料,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 所示。在金属工作流程中,当使用 MirrorularLevel 通道时,着色器映射到 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 提供良好的纹素密度是最大限度地减少任何边缘伪影的最佳方法
创作指南
纹素密度和分辨率会影响镜面反射 / 光泽度工作流程中可能出现的黑色条纹。确保 UV 提供足够的密度以匹配文档分辨率,以最大程度地减少伪影。
镜面反射 / 光泽度工作流程的优缺点
优点
- 边缘伪像不太明显。
- 控制镜面贴图中的电介质 F0。
缺点
- 由于镜面反射贴图提供对电介质 F0 的控制,因此更容易使用不正确的值。如果在着色器中处理不当,可能会违反守恒定律。
- 通过额外的 RGB 贴图使用更多的纹理内存。
- 可能更令人困惑,因为它使用与传统工作流类似的术语,但需要不同的数据。它还需要更多基于物理的准则知识,例如电介质的正确 F0、原始金属漫反射颜色的黑色以及如果未在着色器中处理,可能的能量守恒。
两个工作流的通用地图
环境光遮蔽 (AO)
环境光遮蔽贴图定义表面点可以访问的环境照明量。它仅影响漫反射贡献,不应遮挡镜面反射贡献。某些引擎(例如虚幻引擎 4)具有屏幕空间反射选项,以模拟局部反射。最佳组合是将 AO 与屏幕空间反射一起使用。
在物质 PBR 着色器中,环境光照(由环境贴图生成)乘以 AO。AO 贴图由 PBR 着色器中的纹理采样器提供,是一个可选通道(图 44)。AO 不应烘焙到纹理贴图中,而应仅作为其自己的通道提供给着色器。
AO 仅影响漫反射贡献,不应遮挡镜面反射贡献
图 44:AO 不应烘焙到纹理贴图中,而应仅作为其自己的通道提供给着色器
创建环境光遮蔽
在物质设计器和物质绘制器中,AO 可以从网格中烘焙,也可以使用集成的烘焙工具集从法线贴图转换。此外,在 Substance Designer 和 Substance Painter 中,您可以使用 HBAO 节点 / 滤镜从高度输入生成基于地平线的环境光遮蔽,这提供与光线跟踪烘焙类似的结果,如图 45 所示。
图 45:在设计器中使用 HBAO 节点或在 Painter 中使用滤镜会产生与光线跟踪烘焙类似的结果
高度
高度贴图通常用于渲染中的置换。它可用于视差贴图,有助于增加更多的表观深度,从而为法线和凹凸贴图增加更逼真的效果。物质使用浮雕映射视差算法。高度由 PBR 着色器中的纹理采样器提供,也是 PBR 着色器的选项通道输入。在物质设计器中,可以使用视差遮挡或曲面细分着色器(图 46)。使用 “物质绘制器”,您可以使用置换通道来驱动视差遮挡。
图 46:高度由 PBR 着色器中的纹理采样器提供,也是一个选项通道
创建高度
与 AO 一样,可以使用集成的烘焙工具集在 Substance Designer 或 Substance Painter 中从网格中烘焙高度。在 Substance Designer 中,您可以使用节点从法线贴图转换高度(图 47)。在 Substance Painter 中,您可以直接绘制高度细节,如图 48 所示。
关于将高度与实时着色器配合使用,最好减少地图中包含的高频细节量。高度贴图应设计为表示用于替换几何形状的形式的整体轮廓。一个好的做法是使用模糊版本的高度来突出形式并减少任何高频细节。这将导致法线贴图提供高频细节,并且高度将取代表单的轮廓(图 49)。如果在光线跟踪渲染器中使用高度作为位移,则需要此高频细节。
图 47:使用 “垂直到高度” 节点从正常数据创建高度图
图 48:将高度细节直接绘制到网格上
图 49:法线提供了高频细节和形状轮廓的高度
正常
法线贴图用于模拟表面细节。它是一个 RGB 贴图,其中每个分量对应于表面法线的 X、Y 和 Z 坐标。它可用于将高分辨率模型的投影细节存储到低分辨率模型。在 “物质” 工具集中,您可以烘焙法线图或将高度贴图转换为法线贴图。
创建法线
可以使用集成的烘焙工具集在物质设计器和物质绘制器中从网格中烘焙法线贴图。在 Substance Designer 中,您可以使用法线节点将高度转换为法线贴图,如图 50 所示。在 Substance Painter 中,您可以直接在 3D 视口中绘制普通数据(图 51)。
图 50:法线节点可以从高度输入创建法线数据
图 51:正常通道可用于绘制正常数据
物质 PBR 实用程序
在本节中,我们将讨论几个有助于创作 PBR 纹理和设置正确反射率值的 Substance 实用程序。这些工具是根据本指南中介绍的原则和概念构建的。
物质设计师
PBR 基材
此节点是用于创建完整基础材料的实用程序,可以在材料过滤器 > PBR 实用程序下找到,如图 52 所示。它支持金属 / 粗糙度和镜面反射 / 光泽度工作流程,并为原材料材质提供通用预设。它还允许您在创建非金属时设置反照率。根据工作流程,有粗糙度和光泽度的控制,其中还有一个垃圾量选项。您可以启用地图输入以馈入基色、法线或高度等通道。
图 52:PBR 实用程序,用于使用预设值或自定义贴图输入创建基础材质
电介质 F0
该节点输出常见介电材料的 F0 值(图 53),也可以在材料过滤器 > PBR 实用程序下找到。您可以从预设值中进行选择,节点具有一个 IOR 输入字段,该字段采用 IOR 并计算 F0 值。它专为介电材料而设计,可与镜面反射 / 光泽度工作流程一起使用。
图 53:PBR 实用程序,用于使用预设或自定义 IOR 计算电介质 F0 值
金属反射率
此节点输出常见金属原材料的反射率值。在 “材料过滤器”>“PBR 实用程序” 下的 “物质设计器库” 中找到它。您可以从多个预设金属值中进行选择,如图 54 所示。
图 54:包含金属反射率值预设的 PBR 实用程序
PBR 金属 / 粗糙度验证
此节点设计用于处理金属 / 粗糙度工作流程,是一个实用程序,用于检查基础颜色和金属贴图的值是否不正确(图 55)。它可以在 “材质过滤器”>“PBR 实用程序” 下找到。节点输出从红色 > 黄色 > 绿色移动的热图,其中红色不正确,绿色 / 黄色正确。对于金属,它会检查基色中金属贴图中指示为金属的区域(大于 0 sRGB)的相应 F235 值。热图显示 F0 范围可能过低的范围。对于反照率,它会检查介电亮度范围是否正确。
PBR 安全颜色
此节点校正基色或漫反射贴图中的值,如图 56 所示。它确保值落在电介质的校正亮度范围内。它可以在 “材料过滤器”>“PBR 实用程序” 下找到。
图 55:PBR 实用程序,用于检查反照率 / 金属反射率值的范围并输出热图以显示正确 / 不正确的值
图 56:PBR 实用程序,用于检查基色和漫反射的范围
转换
BaseColor_metallic_roughness_converter
此节点将贴图从金属 / 粗糙度工作流程转换为各种渲染,可在材质过滤器 > PBR 实用程序下找到。
- 弗雷 (GGX)
- 日冕
- 电晕 1.6
- 红移 1.x °
- 阿诺德 4 (ai 表面) °
- 阿诺德 4 (ai 标准) °
- Renderman (pxrSurface)
° Arnold 5 支持基色 / 金属 / 粗糙度工作流程。° 红移 2.x 支持基色 / 金属 / 粗糙度工作流程
物质画家
PBR 金属 / 粗糙度验证(过滤器)
此过滤器设计用于处理金属 / 粗糙度工作流程,是一个实用程序,用于检查基色和金属贴图的值是否不正确(图 57)。这是一个免费的过滤器,可以从物质共享下载。
过滤器输出从红色 > 黄色 > 绿色移动的热图,其中红色不正确,绿色 / 黄色正确。对于金属,它会检查基色中金属贴图中指示为金属的区域(大于 0 sRGB)的相应 F235 值。
热图显示 F0 范围可能过低的范围。对于反照率,它会检查介电亮度范围是否正确。
要在 Painter 中使用它,请将过滤器导入您的 Substance Painter 项目并将其标记为过滤器,或将过滤器复制到功能区中的过滤器文件夹中。
图 57:PBR 实用程序,用于检查反照率 / 金属反射率值的范围并输出热图以显示正确 / 不正确的值
物质输出和渲染
来自物质来源的物质材质同时支持金属 / 粗糙度和镜面反射 / 光泽度工作流程。这些输出可以与基于物理的实时着色器一起使用,例如虚幻引擎 4 和 Unity 中的着色器。基色 / 金属 / 粗糙度输出可与支持金属工作流程(如 Arnold)的光线追踪渲染器一起使用。镜面反射 / 光泽度贴图仅用于实时着色器。根据渲染器的不同,您可能能够直接使用基色 / 金属 / 粗糙度输出,或者您可能需要转换它们。
您从 Substance Share 下载的自定义材质或资源可能没有给定渲染器的适当输出,因为它们主要仅包含基色 / 金属 / 粗糙度输出,因此了解材质将接受的材质输入类型非常重要,以便您可以在需要转换时正确利用 Substance 材质的输出。
例如,在 Arnold 5 中,您可以直接使用金属 / 粗糙度输出。但是,对于 Vray 材质,您需要转换金属 / 粗糙度输出以生成反射和 1/IOR 贴图。Substance Painter 支持多种第三方渲染器配置,如图 58 所示。
图 58:Painter 附带了流行渲染器的导出配置,例如 Arnold、Vray、Keyshot、Corona 和 Redshif。
物质集成插件的目标是自动转换物质输出以使用特定的渲染器。例如,3ds Max Substance 插件具有用于处理 Arnold、Vray 和 Corona 的预设。选择预设将自动转换 Substance 输出以用于这些渲染器(图 59)。
图 59:使用电晕预设将创建电晕材质并自动转换物质输出
有关使用第三方渲染器与 Substance Painter 和 Substance Designer(Substance Materials)配合使用的更多信息,请参阅我们的 Substance 集成渲染文档。
图 60:表面是金属吗?金属 / 粗糙度工作流程
图 61:表面是金属吗?镜面反射 / 光泽度工作流程
附录 - 图表
表面是金属吗?
将表面分解为金属或非金属类别可能会有所帮助。通过首先检查材料并询问它是否是金属来开始纹理过程通常是有用的。通过这个问题,您可以得出纹理过程的一些准则,如本卷所述,如图 60 和 61 所示。图 60 使用金属 / 粗糙度工作流程,图 61 是镜面反射 / 光泽度。
反射率值
图 62 显示了电介质的 F0 范围,因为它们与金属 / 粗糙度工作流程中的物质 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:正确和错误贴图的比较 – 金属 / 粗糙度
引用
伯利,B.(2012). 迪士尼基于物理的着色. [PDF] 可从:https:/disney-animation.s3.amazonaws.com/library/s2012_ pbs_disney_brdf_notes_v2.pdf [5 年 2016 月 <> 日访问]。
夸斯特 · BRDF 模型简介。[PDF] 可用:http://hmi.ewi.utwente.nl/verslagen/capita-selecta/CS-Jimenez-Kwast-Daniel.pdf [5 年 2016 月 <> 日访问]。
拉加德,S.(2014). “虚幻引擎的 Dontnod 基于物理的渲染图”,Sebastien Lagarde,博客文章,14 年 2014 月 2014 日。 可用:https://seblagarde.wordpress.com/04/14/4/dontnod-physically-based-rendering-chart-for-unreal-engine-5/ [2016 年 <> 月<>日访问]。
拉加德,S.(2011). “喂养基于物理的着色模型”, 塞巴斯蒂安 · 拉加德, 博客文章, 八月 17, 2011. 可用从:https://seblagarde.wordpress.com/2011/08/17/feeding-a-physical-based-lighting-mode/.[5 年 2016 月 <> 日访问]。
Walter, B., Marschner, S., Li., H. 和 Torrance, K.(2007). 用于折射粗糙表面的微面模型。[PDF] 欧洲图像渲染研讨会,2007 年。 可从: https://www.cs.cornell.edu/~srm/publications/EGSR07-btdf.pdf [5 年 2016 月 <> 日访问]。
史诗游戏。(2004-2017). “使用折射”, Epic Games, UE4 文档, 2017. 可用地点:https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/HowTo/Refraction/.[5 年 2016 月 <> 日访问] > 本文由简悦 SimpRead 转码