PBR指南第二部分:创建PBR纹理实用指南

文章来源:https://academy.allegorithmic.com/courses/f63c1d17-187f-4f08-bd8c-7f4f42e6b7ed

THE PBR GUIDE BY ALLEGORITHMIC – VOL. 2

创建PBR纹理实用指南

阅读Substance 学院PBR指南第一部分

创建PBR纹理实用指南

第一部分从技术和理论角度定义PBR。第二部分讨论创建PBR纹理的实际应用,根据第一部分提出的依据制定一系列指导原则。

我们首先从艺术的角度重新定义PBR。从那里,我们将确定设计金属/粗糙度工作流程的基本原则。其次,我们继续讨论高光反射/光泽度工作流程以及创建方式的差异。建议您通读两种工作流程全面了解创建PBR纹理的总体指导原则。

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

基于物理纹理的渲染(PBR)是一种方法而不是硬标准,有具体的基本准则和使用指南,但没有真正具体的规则。也就是PBR的使用方法多种多样,使用的贴图类型和工作流程也不一样。通常使用GCX BRDF,但是术语也会有变化。此外,一些使用方法改变了贴图名称,尽管其根本用法保持不变。

在这一部分我们将讨论两种最常见的工作流程,即金属纤维/粗糙度和高光反射/光泽度(见图16)。Substance创建PBR贴图的Substance工具包括Substance Designer, Substance Painter and Substance B2M.这些工具适合两种工作流程。Substance PBR着色器用于金属/粗糙度和高光反射/光泽度使用GGX BRDF,不使用粗糙度/光泽度重新制图。但是如果确实需要任何自定义而重新制作贴图,使用Substance 也很容易完成。

图16:金属纤维/粗糙度 和高光反射/光泽度工作流程。

此外,Substance 工具支持自定义着色器,这将意味着你可以将Substance应用于个性化工作流程。

在使用过程中,两种工作流程各有利弊,但不分彼此。PBR贴图之所以精准,要归功于那些基础理念和指导原则,而非工作流程本身。工作流程都是一些相同的数据,但使用数据的方式不同。

什么是PBR?

基于物理的渲染(PBR)是一种着色和渲染的方式,能更精准的体现光线和介质表面的交互方式。因此称作基于物理的渲染(PBR)或者基于物理的着色(PBS)。从正在讨论的工作流程角度而言,PBS通常针对着色概念,PBR针对渲染和光线的概念。但是,PBS和PBR都是从物理上精确的角度描述呈现物体的过程。

PBR的优势

美术会从艺术和创作效率两方面考量PBR的优势

  1. PBR消除了创作表面特性的猜测,例如高光反射,因为其研究方法和计算方法都是精确的物理公式,因此,创作的物体也更具有真实感。
  2. 物体在各种光源下都很逼真。
  3. PBR工作流程具有一致性,即使不同的美术创作同一物体也可以很好的接续工作。

PBR对于美术的意义

美术需要对描述表面特性的贴图进行不同角度的思考,随着电脑软件和渲染技术的进步,现在我们可以更精准地模仿光的物理特点。

以往渲染工作流程创作的贴图只是模仿光与材质交互的变通方案,现在我们需要更新漫反射和高光反射贴图的理念。

PBR的着色器是通过能量守恒和BRDF处理物理规则中棘手的问题,而作为美术我们创作的贴图是按照物理基本原则创作的。正是因为PBR的这一科学特性,我们不需要猜测材质导向性,而是专心创作纹理。固然,按照原则创作贴图很重要,但这并不意味着我们不需要考虑艺术直觉。正是这样的艺术表现形式,精心制作每一个细节,用心表达,才使一个个角色通过各种材质展现出来。但是这一过程的物理特点永远不是美术主要考虑的范围。我们在更加先进的物理环境工作并不意味着我们不能创作具有特色的艺术。例如,迪士尼的基于物理的反射率模型的制作采用原则性方法。即,该模型的创作与其说是严格的物理模型,不如说其更加遵照了艺术方向。了解原则是重要的,但是使用原则应胜于为原则所用。

从艺术角度来讲,我们需要对描述物体表面属性的贴图有不同的看法。这里有新的贴图类型,其中还包括规则和指南。

金属/粗糙度工作流程

金属/粗糙度工作流程定义方式有很多种,将其放入PBR着色器的取样器中作为纹理。金属/粗糙度工作流程的贴图有基础颜色,金属纤维和粗糙度(图17)。我们将具体研究每一种贴图类型,这些贴图类型对于两种工作流程都很常见。PBR着色器也会使用环境光吸收,法线和可能的高度制作视差法或置换式贴图。(图18)

图17:金属纤维/粗糙度工作流程
图18:高度贴图和环境光吸收作为着色器的备用选项

在金属/粗糙度工作流程中,金属的反射率值置于基础色贴图中,同时还有电介质的反射颜色。使用BRDF处理投射角的反射。使用金属纤维贴图,看起来如同基础色贴图中不同金属和电介质数据的掩码。电介质F0值不是手动创建,是由着色器控制的。着色器在金属贴图上看到黑色,它就会把基础色贴图上的相应区域当做电介质,反射率为4%(0.04)(图19)。

图19:黑色代表非金属,反射率为0.04(4%)

第一部分中我们谈到,多数普通电介质材质的反射率为4%。重要的是要注意所有的数值,例如电介质F0,金属折射率和白色的亮度范围,都经实际测量。我们查看每一种贴图类型时,都会谈到其使用指南,这些都是根据实际测量的数据得来的。

在第一部分,我们谈到能量守恒,即物体表面反射的光和到达物体表面之前的光的量是相同的。在操作过程中,通常是由着色器控制能量守恒。Substance也是如此。在金属/粗糙度工作流程中,不可能违反能量守恒定律。漫反射(反射颜色)和高光反射平衡是通过金属纤维掩码控制的,因此不可能出现漫反射和高光反射反射的光多于最初接收到的光。

金属反射值位于基础色贴图上,还有电介质的反射光的颜色。

电介质 F0

普通电介质材质的F0一般设为0.04(线性)反射率4%。而在金属/粗糙度工作流程中,这个数值在着色器中是固定编码的。

Substance工具和Unreal Engine4中的一些金属/粗糙度组件有高光反射控制,美术人员可以改变电介质F0的常量。在Substance中,这一数值的输出值为“高光水平”,是由金属/粗糙度PBR着色器中的纹理采样器提供的数值,范围为0.0-0.08,如图20.这个范围在着色器中重新映射为0.0-1.0,在这个范围中0.5相当于折射率4%。

图20:高光反射输出值在电介质F0着色器的范围是0.0-0.08.

如果需要手动设置电介质的F0,可以使用如同21中Substance Designer中Substance图表高光反射输出值或Substance Painter中高光反射通道。大家已经了解了高光反射工作程序中的F0,我们会在高光反射/粗糙度工作程序中深入探讨电介质F0。

图21:使用高光反射通道设定电介质F0
图22:基础色包括反射的漫反射颜色和金属反射率

基础色(RGB-sRGB)

基础色贴图是包含两种数据类型的RGB贴图:电介质漫反射颜色和金属反射率值,如图22所示.电介质颜色表示反射的波长,第一部分已经谈到。如果金属纤维贴图亮调中的区域为金属,就会有反射率值。

制作指南

基础色贴图可以看做是降调。也就是其对比度低于以往漫反射贴图。不建议使用太亮或太暗的数值。物体的亮度要高于我们所记得的亮度。我们可以观想一下这个范围通过最黑的物质煤的颜色和最白的雪的亮度。煤是黑色的,但不是完全黑的。我们选择的颜色值应处于一定亮度范围内。

就亮度范围而言,我们通常指电介质反射颜色。图23中的例子显示dirt value已经超出了合理的亮度范围。对于暗调而言,暗度不能低于30-50sRGB。暗调范围在30sRGB还可以接受,严格一点应该为50sRGB.对于亮调而言,不能超过240sRGB(图23)

图23:电介质材质基础色值范围(反射光颜色)

我们认为基础色包括电介质材质反射光数据,因此缺少布光信息,例如环境光遮蔽。但也有例外情况,例如增加微观吸留除外。在微观吸留现象中,仅有环境光遮蔽,着色器无法体现出这样的细节,如图24所示。但是,如果在贴图中增加微观吸留,还要受到亮度范围的影响。贴图中体现金属反射率值的数值应从实际测量中得到。这些数值应为高光值70-100%, 通过映射 RGB可以达到180-255.

图24:微观吸留是基础色中含有布光信息的一个特例。

在Substance PBR 工具部分我们将探讨为普通材质预设F0的工具。Sébastien Lagarde 提供的金属/粗糙度图表也是很好的资源(Lagarde 2014)。

金属反射率值的数值应在真实世界中实际测量获得。

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

在金属纤维这一章中,你会了解到基础色也有金属反射率值。如果基础色中加入灰土或氧化物,金属反射率值就会逐渐变小,最后金属不再是粗金属。

正因为是金属贴图才需要添加灰土或氧化物,因此其反射率值在在这种情况下就必须下降,以表明其不再是粗金属。图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%,如图27所示,反射率值可以设定为180-255sRGB,再次,这些值基于实际测量数据。

图28:涂层金属被用作电介质。

金属纤维贴图体现了金属和非金属的混合状态,贴图上的灰度过渡值就能体现出来。如果金属纤维贴图的灰度值低于235 sRGB,就应降低基础色中的粗金属反射率值。如图29所示,灰土层阻碍了部分粗金属.灰土为电介质。如果金属纤维贴图为全亮色,基础色中的灰土区域 按照金属反射率值计算。灰土颜色反射率值要很低,占磨光金属反射率值的70-100%。通过降低灰土代表的区域金属纤维贴图反射率值,就会产生介于电介质和金属反射率值之间的贴图。

图30:材质颜色混合。金属纤维值较低表示灰土层薄。(灰土和金属的过渡状态。)
  • 暗调(0.0)是非金属,亮调(1.0)是金属。过渡灰度值就会出现氧化效果和灰土效果。
  • 如果金属贴图值低于235 sRGB,在基础色贴图中反射率值应降低。

粗糙度(灰度-线性)

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

图31:粗糙度贴图描述了介质表面的不规则性导致了光线漫反射

在这个贴图中,暗调(0.0)表示表面光滑,亮调表示表面粗糙。粗糙贴图是最有创意的贴图,美术可以从视觉上确定表面特征。也可以创新讲述表面状况的方式。粗糙贴图的环境是什么样的?是认真处理还是随意处理。接触到这些要素了玛?表面的状况非常能说明其环境,对你努力创造的世界和物体意义重大。

粗糙度是一个非常主观的领域。美术可以全面创意性地控制。开始粗糙度的适宜之处是法线贴图。法线贴图通常包含体现在粗糙贴图中的关键表面细节。

创建指导原则

富有创意,从视觉角度描述表面。

分辨率和Texel密度

使用金属/粗糙度工作流程的产物就是出现白框,如同32所示。同样高光反射/光泽度工作流程中也会出现。但是,并不是不可见的因为这一效果逆转了:因为有暗色边缘而不是白色边界伪影,如同33所示。

图32:使用金属/粗糙度工作流程的产物就是出现白色边界伪影。
图33:使用高光反射/光泽度反射工作流程的产物就是暗框边界伪影。

这个边缘因为是纹理插补,电介质材质和明亮的金属之间呈现鲜明的对比的材质的过渡区域之间很明显。如同34所示。金属/粗糙度,基础颜色插补非金属漫反射颜色的金属反射率值要高,出现白色边框。而对于高光反射/光泽度而言,因为粗金属没有漫反射颜色,其漫反射贴图为暗色。暗色值与非金属漫反射插补,又会出现暗色边框。

图34:各种材质过渡区域是明显的。

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

图35:UVs的Texel密度良好是边界伪影最小化的最佳方式。

在图35中,两种纹理的设定使用的是相同的2048像素分辨率。但是,右边的图像UV布局差,Texel密度低。

文件分辨率和Texel密度直接影响边缘伪影的可视性。

创建指导原则

Texel密度和分辨率影响金属/粗糙度工作程序中的白色边界。为使伪影最小化,确保UVs提供足够的密度与文件分辨率相匹配。

金属/粗糙度工作程序的优点和缺点

优点

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

缺点

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

高光反射/光泽度工作流程

与金属/粗糙度一样,高光反射/光泽度工作流程就是将一系列贴图作为纹理输入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%的反射率,只能通过高光反射方式修改。我们在金属/粗糙度工作程序中说过,F0的数据应该来自实际测量的值。电解质F0为暗调。金属反射率可以被着色像一些其他的金属吸收不同的波长的光。电解质和金属的F0是在RGB高光纤维贴图中创建的。

高光纤维贴图允许在贴图中制作不同反射率值的电介质F0

图38:高光纤维贴图确定金属的反射率值,非金属的F0.

创建指导原则

高光纤维贴图包括金属和非金属的F0值,我们把贴图按照每种材质类型分成单独的类别。

粗金属

F0值应该来源于现实世界数据。正如在金属纤维贴图所示,如果有氧化现象或有些层面为非金属,粗金属的反射率值必须降低。就高光反射/光泽度工作流程而言,灰土或氧化现象会提高漫反射贴图中粗金属的漫反射颜色,降低高光纤维贴图中的反射率值,如图39所示。图39就是举例说明粗金属上的灰土层。高光纤维贴图中的灰土包含电介质F0值。这种情况下我们使用0.04或者4%这个值。

图39:氧化现象/灰土会提高粗金属的漫反射颜色,降低高光纤维贴图中反射率值。

电介质

电介质材质的F0也在高光纤维贴图中确定。这样我们就可以完全控制F0值,但是使用正确的数据还是很重要的。我们在第一部分探讨过,非金属(绝缘体/电介质)的导电性能差。折射光分散,被吸收(通常从表面再次出现)。这些材质反射的光比金属反射的少。我们认为普通电介质的值按照折射率(IOR)计算得出的F0为2-5%左右。宝石除外,宝石的F0在普通电解质材质的0.02-0.05(线性)之间(图40)。

图40:普通电介质的值在2-5%之间

就sRGB而言,我们关注的是40-75sRBG范围的值,这值与0.02-0.05(2-5%)线性范围重合。

如果找不到某一具体材质的IOR值,可以假设为4%(0.04-塑料)。宝石是个特例,其IOR值为0.05-0.17(线性)如图40中所示。在金属工作流程中,如果使用高光反射通道为0代表着空气,着色器的范围设定为0.0-0.08(线性),如图39所示。

  • 高光纤维贴图包含电介质F0和粗金属的反射率值。
  • 电介质反射的光比金属反射的光少。普通电介质的值为2-5%。就sRGB而言,应为sRGB40-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:光泽度贴图是指造成光漫反射的表面不规则状况。

分辨率和Texel密度

我们之前探讨了边界伪影怎样出现在两种工作流程中。这在金属/粗糙度部分已经详细讨论过,边界伪影该工作流程中更为明显。我们也提到就高光反射/光泽度而言,粗金属没有漫反射颜色,漫反射贴图有暗调。暗调值插入非金属漫反射颜色,就会出现图42所示的暗调边框。

图42:使用高光反射/光泽度工作流程的副产物就是暗调边界伪影。

再次在这里,文件分辨率和Texel密度直接影响边界伪影的可视度。如果使用硬边笔刷创建位于金属和非金属之间的过渡区域,分辨率低的文件会软化边界进而扩大伪影。分辨率低的原因是, 与文件分辨率相比,不能提供充足Texel密度的UVs造成的。为UVs提供合理的Texel密度是解决这个问题的最佳方式(图43).文件分辨率和Texel密度直接影响边界伪影的可视性。

图43:为UVs提供良好的Texel密度是任何边界伪影最小化的最佳方式。

创建指导原则

Texel密度和分辨率影响出现在高光反射/光泽度工作流程中的暗调边框。一定保证您的UVs提供足够的密度与文件分辨率相匹配,使伪影最小化。

高光反射/光泽度工作流程优点与缺点。

优点

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

缺点

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

两种工作流程共用的贴图

环境光遮蔽(AO)

环境光遮蔽贴图是指表面某点能获得多少环境中的光。该贴图只影响漫反射分配,不影响高光反射分配。一些引擎,例如UE4,选择SSR(屏幕空间反射)模仿局部反射。最佳组合就是使用AO和SSR。

在Substance PBR着色器中, (环境贴图生成的)环境照明要乘以AO。 PBR着色器中的纹理采样器提供AO贴图,AO贴图是一个备选项。AO不应用于纹理贴图,仅是着色器的一个渠道。

A0仅影响漫反射分布,不阻碍高光反射分布。

图44:AO不应烘焙用于纹理贴图,仅是着色器的一个渠道。

创建Ambient Occlusion环境光遮蔽

在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着色器中的纹理采样器提供,也是PBR着色器的备选通道。

创建高度

与AO类似,高度可以使用集成烘培工具在Substance Designer 和 Substance Painter中的模型烘培获得。在Substance Designer中,可以使用节点从法线贴图转换高度(如图47)。在Substance Designer中可以直接绘制高度细节,如图48所示。

就实时着色器使用高度而言,最好减少贴图中高频细节的数量。高度贴图应设计为代表用于替换几何图形的整体轮廓。一种较好的做法就是使用模糊的高度贴图来显示图形,减少任何高频细节。因此,法线贴图会提供高频细节,高度会取代图形的轮廓(图49)。如果在光跟踪渲染器中使用高度贴图作为位移,就需要高频细节。

图47:使用法线到高度节点,根据法线数据创建高度贴图。
图48:绘制高度细节直接体现在模型上。
图49:法线贴图显示高频细节,高度贴图显示图形轮廓。

Normal 法线贴图

法线贴图用于模仿表面细节。RGB贴图中,每一部分都对应着表面法线的X,Y,Z坐标。RGB贴图用于存储高分率辨至低分辨率模型的投射细节。在Substance工具中,可以烘培法线贴图或将高度贴图转换为法线贴图。

创建Normal法线贴图

法线贴图是使用在Substance Designer 和Substance Painter 中集成烘培工具从模型烘培而成。 在Substance Designer中,可以使用法线节点将高度贴图转换为法线贴图,如图50所示。 在Substance Painter 中可以在3D视图中直接绘制法线数据。(如图51)

图50:法线节点可以使用高度数据输入创建法线数据

Substance PBR工具

在这一部分,我们将探讨有助于创建PBR纹理和设定正确的反射率值的Substance 工具。这些工具是根据本向导中的基本原则和理念制定的。

Substance Designer

PBR基础材质

这个节点是创建全面基础材质的工具,可以在Material Filters > PBR Utilities下找到,如图52.所示。这个节点适用于金属/粗糙度和高光反射/光泽度工作流程,同时还有粗金属材质普通预设。如果创建非金属贴图可以设置为白色。根据工作流程,还有粗糙度和光泽度操作工具,也有很多选择。使用贴图输入数据插入到基础颜色贴图,法线贴图和高度贴图等通道中。

图52:使用预设值或定制贴图输入数据,PBR工具可以创建基础材质。

电介质F0

这个节点输出普通电介质材质的F0值(图53),这一选项也是位于Material Filters > PBR Utilities中。可以从预设值中进行选择,该节点具有IOR输入字段可以计算出F0值。它专为电解质材质而设计,可用于高光反射/光泽度工作流程中。

图53:PBR工具使用预设或者设定IOR计算电介质F0值。

金属反射率值

这一节点输出普通粗金属材质反射率值。可以在Substance Designer Library 中的Material Filters > PBR Utilities中找到。

图54:PBR工具含有金属反射率值预设。

PBR金属/粗糙度验证

这一节点用于金属/粗糙度工作流程,也是检测基础色和金属贴图错误值的工具(图55),位于Material Filters > PBR Utilities 下。这一节点输出热度图,顺序为红色>黄色>绿色,其中红色是错误的,绿色/黄色是正确的。就金属而言,这一节点检测金属纤维贴图中基础色为金属的区域的相应的F0值(大于235sRGB)。热度贴图中显示的F0的值范围可能太低。对于白色而言,这一节点检测电介质亮度范围是否正确。

PBR安全颜色

这一节点纠正基础色或漫反射贴图中的值,如同56所示。该节点确保这些值处于电介质纠正的亮度范围。这一节点位于Material Filters > PBR Utilities下。

图55:PBR工具检测白色/金属反射率值的范围,输出热度图,显示正确/错误数值。
图56:PBR工具检测基础色和漫反射范围

转换

BaseColor_metallic_roughness_converter ( 基础色-金属纤维-粗糙度-转换器)

这一节点将金属/粗糙度工作流程贴图转换为各种渲染,节点位于Material Filters > PBR Utilities。

⦁ Vray (GGX) ⦁ 渲染器/灯光(GGX着色器) ⦁ Corona(渲染器) ⦁ Corona 1.6 ⦁ Redshift 1.x ° ⦁ Arnold 4 (aiSurface) °(渲染器) ⦁ Arnold 4 (aiStandard) ° ⦁ Renderman (pxrSurface)(渲染器)

⦁ Arnold 5支持基础色/金属纤维/粗糙度工作流程。 Redshift 2.x支持基础色/金属纤维/粗糙度工作流程。

Substance Painter

PBR金属/粗糙度检测(过滤器)

这个过滤器是用于金属/粗糙度工作流程,通常是检测基础色和金属贴图错误数值的工具(图57)这是一款免费的过滤器可以从Substance Share中下载。

这款过滤器输出热度贴图,从红色,黄色变为绿色,在这张图中红色是错误的,绿色/黄色是正确的。就金属而言,这款过滤器检测金属纤维贴图(大于235sRGB)中基础色中金属区域相应的F0值。

热度贴图显示的范围中F0的数值太低。对于白色而言,热度贴图检测电介质亮调范围是否正确。

要在Painter中使用这款过滤器,将过滤器导入Substance Painter项目中,并将其标记为过滤器或者在展架中将过滤器复制到过滤器文件夹中.

图57:PBR工具检测白色/金属反射率值,输出热度贴图,显示正确/错误值

Substance 输出和渲染

Substance Source获得的Substance材质适用于金属纤维/粗糙度和高光反射/光泽度工作流程。这些输出结果可以和基于物理的实时着色器配合使用,例如在UE4和Unity中的着色器。基础色/金属纤维/粗糙度输出值可以和光追踪渲染器配合使用,适用于Arnold等金属纤维工作流程。高光反射/光泽度贴图仅用于实时着色器。根据着色器,可以直接使用基础色/金属纤维/粗糙度输出,或者可以转换这些输出。

Substance Share 下载的定制材质或资源对于某一特定的渲染器可能没有相应的输出数据,因为这些材质或资源仅有基础色/金属纤维/粗糙度输出值,因此了解材质可以接受的材质输出类型很重要,这样如果需要转换,就可以正确使用Substance材质输出值。

例如,就Arnold 5而言,可以直接使用金属纤维/粗糙度输出数据。但是对于渲染器材质而言,需要转换金属纤维/粗糙度输出数据,获得反射和1/IOR贴图,Substance Painter支持多种第三方渲染器配置,如图58所示。

图58:Painter的输出配置适用于比较受欢迎的渲染器 例如,Arnold, Vray, Keyshot, Corona 和 Redshift。

Substance 集成插件的目标就是自动转换Substance 输出数据,配合相应的渲染器使用。例如,3ds Max Substance插件就有配合Arnold, Vray和Corona使用的预设。选择预设就会自动转换Substance输出数据配合这些渲染器使用(图59)。

图59:使用Corona预设创建Corona材质,自动转换Substance输出数据。

如需要进一步了解如何配合Substance Painter 和 Substance Designer(Substance Materials)使用第三方渲染器,请参阅渲染器documentation for Substance Integrations。

图60:表面是金属吗?金属/粗糙度工作流程
图61:表面是金属吗?高光反射/光泽度工作流程。

附录—图表

表面是金属的吗?

如果将表面分解成金属或非金属类别是很有益处的,开始创建纹理的时候,首先要检测材质,并且询问材质是否为金属。带着这个问题,你可以了解我们本册所讲到的创建纹理过程的一些指导原则,如图60,61所示。图60使用金属/粗糙度工作流程,图61使用高光反射/光泽度流程。

反射率值

图62显示电介质F0值范围,因为电介质与金属纤维/粗糙度工作流程的Substance PBR着色器关系密切。电介质反射的光比金属反射的光少。普通电介质的反射率值在2-5%左右。就sSRB而言,反射率值在40-75sRGB之间,与0.02-0.05(线性)范围重合。

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

图63中,我们可以看到电介质F0和金属反射率值。就金属而言,高光反射率值的范围在70-100%,贴图的sRGB值为180-225。

图63:电介质F0值和金属反射率值

从sRGB到线性的转换使用了近似Gamma2.2完成。请参阅第一部分中的线性空间渲染部分获得更多细节。

正确/错误对比

图64的例子是使用金属/粗糙度工作流程创建正确和错误的的贴图。灰土在金属纤维贴图中标记为粗金属。而且,基础色中金属反射率值设置过低,因为这个数值不能够反映70-100%的高光反射值范围。

图64:比较正确和错误贴图-金属/粗糙度

参考文献

⦁ Burley, B. (2012). Physically-Based Shading at Disney. [PDF] Available from:https:/disney-animation.s3.amazonaws.com/library/s2012_ pbs_disney_brdf_notes_v2.pdf [Accessed 5 July 2016].

⦁ Kwast, D. An Introduction to BRDF Models. [PDF] Available from:http://hmi.ewi.utwente.nl/verslagen/capita-selecta/CS-Jimenez-Kwast-Daniel.pdf[Accessed 5 July 2016].

⦁ Lagarde, S. (2014). ‘Dontnod Physically Based Rendering Chart for Unreal Engine,’ Sebastien Lagarde, blog post, April 14, 2014. Available from:https://seblagarde.wordpress.com/2014/04/14/dontnod-physically-based-rendering-chart-for-unreal-engine-4/ [Accessed 5 July 2016].

⦁ Lagarde, S. (2011). ‘Feeding a Physically-Based Shading Model’, Sebastien Lagarde, blog post, August 17, 2011. Available from:https://seblagarde.wordpress.com/2011/08/17/feeding-a-physical-based-lighting-mode/. [Accessed 5 July 2016].

⦁ Walter, B., Marschner, S., Li., H. and Torrance, K. (2007).Microfacet Models for Refraction through Rough Surfaces. [PDF] Eurographics Symposium on Rendering, 2007. Available from: https://www.cs.cornell.edu/~srm/publications/EGSR07-btdf.pdf [Accessed 5 July 2016].

⦁ Epic Games. (2004-2017). ‘Using Refraction’, Epic Games, UE4 Documentation, 2017. Available from:https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/HowTo/Refraction/. [Accessed 5 July 2016]

发表评论

电子邮件地址不会被公开。 必填项已用*标注