在第1部分中,我们从技术和理论角度定义了PBR。在第2部分中,我们将讨论创作PBR纹理的实际应用,并提供基于第1部分中建立的基础的一组准则。
我们将从艺术角度重新定义PBR。在此,我们将讨论金属/粗糙度工作流程的原理。然后,我们将跟进高光/光泽度工作流程,并讨论创作方法的差异。最好通读两个工作流程,以全面了解创作PBR纹理的总体准则。
在本指南中,我们将讨论使用Substance工具集的工作流程,但是讨论的地图创建原理适用于用于创建基于物理的纹理和材质的任何软件。
这意味着可以有不同的实现。使用的地图类型和工作流程可能会有所不同。通常使用GGX BRDF,但术语可能会有所不同。此外,即使某些实现的基础用法保持不变,某些实现也会更改它们的名称。
在这一部分中,我们将讨论两个最常见的工作流程,即金属/粗糙度和高光/光泽度(图16)。由Substance Designer,Substance Painter和Substance B2M组成的用于编写PBR映射的Substance工具集支持两种工作流程。用于金属/粗糙度和高光/光泽度的Substance PBR着色器使用GGX BRDF,并且对于粗糙度/光泽度不使用任何值重新映射。
此外,Substance工具集中支持自定义着色器,这意味着您可以使Substance适应任何自定义管道。
虽然这两种工作流程在实现上都有利弊,但其中一种并不比另一种优越。正是这些基本的概念和准则将使您编写的PBR映射准确,而不是工作流程本身。工作流表示相同的数据,但是它们以不同的方式实现。
Physically based Rendering(PBR)是一种着色和渲染方法,可以更准确地表示光与表面的交互方式。它称为Physically based Rendering(PBR)或 Physically based Shading(PBS)。根据正在讨论管线的哪个方面,PBS通常特定于着色概念,而PBR通常特定于渲染和照明。
作为艺术家,我们可以从艺术和生产效率的观念中了解PBR的优势:
1. PBR消除了创作表面属性的猜测,例如镜面反射()。因为其方法和算法基于物理上精确的公式。因此,创建外观逼真的资产也更加容易。
2.资产在所有照明条件下看起来都是准确的。
3. PBR提供了用于创建一致作品的工作流,即使在不同艺术家之间也是如此。
作为艺术家,随着计算机硬件和渲染技术的发展,我们需要对描述表面属性的地图进行不同的思考,现在我们可以更精准地模拟光的物理性质。
我们需要更新传统的渲染工作流程中漫反射()贴图和高光()贴图的概念,因为这些贴图仅用作解决与材质进行光交互的近似方法。
PBR的着色器是通过能量守恒和BRDF处理物理规则中棘手的问题,而作为美术我们创作的贴图是按照物理基本原则创作的。正是因为PBR的这一科学特性,我们不需要猜测材质导向性,而是专心创作纹理。固然,按照原则创作贴图很重要,但这并不意味着我们不需要考虑艺术直觉。正是这样的艺术表现形式,精心制作每一个细节,用心表达,才使一个个角色通过各种材质展现出来。但是这一过程的物理特点永远不是美术主要考虑的范围。我们在更加先进的物理环境工作并不意味着我们不能创作具有特色的艺术。例如,迪士尼的基于物理的反射率模型的制作采用原则性方法。即,该模型的创作与其说是严格的物理模型,不如说其更加遵照了艺术方向。了解原则是重要的,但是使用原则应胜于为原则所用。
金属/粗糙度工作流程的贴图有 基色(r),金属()和粗糙度()(图17)。我们将讨论这两种工作流程共有的每种地图类型。PBR着色器还将使用环境光遮挡(),法线以及可能的高度()进行视差( )或位移( )映射(图18)。
。BRDF处理掠射角的反射。着色器处理它们时,不会手工创作介电质F0值。且当着色器在金属图中看到黑色时,它将基础颜色图中的相应区域视为电介质,并使用4%(0.04)的反射率值(图19)。
正如我们在第1部分中讨论的那样,4%的值涵盖了最常见的介电材料。重要的是要注意,所有值(例如介电常数F0,金属反射率和反照率颜色的亮度范围)均来自实际测量数据。在查看每种地图类型时,我们将讨论基于实测数据的准则。
在第1部分中,我们讨论了能量守恒的概念,即从表面反射的光永远不会比入射到表面之前更强烈。在实现方面,着色器通常处理节能控制。Substance就是这种情况。使用金属/粗糙度工作流程无法打破节能规律。漫反射(反射的颜色)和镜面反射平衡是通过金属蒙版控制的,因此不可能创建这样一种情况,即漫反射和镜面反射可以结合起来以反射/折射比最初接收的更多的光。
普通介电材料的F0通常设置为0.04(线性)4%反射率。在金属/粗糙度工作流程中,此值在着色器中进行硬编码。
某些金属/粗糙度实现(例如在Substance工具集和Unreal Engine 4中找到的实现)具有镜面反射控件,允许美术师更改介电常数F0值。,并由金属/粗糙度PBR着色器中的纹理采样器提供。如图20所示,它表示0.0-0.08的范围。此范围在着色器中重新映射为0.0-1.0,其中0.5表示4%的反射率。
如果您需要手动设置电介质的F0,则可以使用Substance Designer内Substance图形中的specularLevel输出或Substance Painter中的specularLevel通道进行设置,如图21所示。高光/光泽度工作流程,因为您可以完全控制高光工作流程中的F0。
如图22所示。代表电介质的颜色代表反射波长,如第1部分所述。反射率如果在金属图中将某个区域表示为金属(白色值),则存在这些值。
物体的色调往往比我们记忆中的物体轻。我们可以用最暗的物质是煤,而最亮的物质是新鲜的白雪来可视化此范围。
关于亮度范围,我们主要是指介电反射色。在图23中,您可以看到一个示例,其中污垢值已降至正确的亮度范围以下。对于较暗的值,您不应低于30-50 sRGB。()暗值的范围在30 sRGB时可能更宽容,在50 sRGB时更严格。对于明亮的颜色,您的任何值都不应高于240 sRGB()(图23)。
我们说过,。在着色器无法仅使用环境光遮挡通道来表示此细节级别的情况下,添加微遮挡可能会有例外,如图24所示。但是,如果将微遮挡添加到贴图,它会仍然需要通过亮度范围来控制。图中的值表示金属的反射率值应从实际测量值中获取。它的specular值在specular左右,我们可以将其映射到180-255()的sRGB范围。
在“Substance PBR实用程序”部分中, 我们将讨论为常用材质提供预设F0值的工具。SébastienLagarde提供的金属/粗糙度图表也是很好的资源(Lagarde 2014)。
正如您将在下面的“金属”部分中阅读的那样,基色也可以包含金属反射率值。如果在基色上添加了污垢或氧化,则将导致金属反射率值减小到无法视为原金属的范围。
金属图还必须考虑到污垢或氧化的增加,并且在这些区域中其值必须降低以表明不再被视为原金属。在图25中,您可以看到生锈的金属被视为电介质,并且在金属图中被设置为黑色。污垢层也用过渡的灰度值在金属贴图中说明。当存在一层薄薄的电介质材料(例如污垢)时,金属图可能并不总是二进制的,即0.0(黑色)或1.0(白色)。
金属地图中的数据不包含直接用作材质值的实际数据。它仅向着色器描述应将基色中的哪些区域解释为反射色(介电质),哪些区域表示金属反射率值。在金属图中,0.0(黑色– 0 sRGB)代表非金属,而1.0(白色– 255 sRGB)代表金属。实际上,当着色器查看金属贴图并看到白色时,它会检查baseColor贴图中的相应区域,以获取金属的反射率值,如图26所示。
金属表面有两个与纹理化有关的重要方面:第二,一些金属会被腐蚀。在讨论创建准则时,我们将分别研究这两个方面。
处于这一范围的金属区域反射率值为70-100%。
金属贴图应被创作为0或1,是否为金属,并用于定义原始的抛光金属状态。作为一般指导,金属图中的金属的灰度范围将定义为235-255 sRGB()。落入该范围的金属区域在基色图中必须具有70-100%反射率的反射率范围,我们可以将其映射为180-255 sRGB(
),如图27所示。同样,这些值基于真实世界测量数据。
当您在表面上风化时,您可能需要考虑金属被氧化,或补偿其他环境因素,例如灰尘和污垢。在这些情况下,需要将金属视为电介质。涂漆金属也是如此。如果您查看的是涂有油漆的金属,其中部分油漆已被刮擦或削掉,则暴露的金属是“原始”(金属图中的白色),而油漆是介电层(金属图中的黑色),如图所示。图28。
金属图可以表示金属和非金属之间的混合状态,该过渡状态由图中的过渡灰度值表示。如果金属贴图的灰度值低于235 sRGB,则需要降低基色中的“原始”金属反射率值。考虑一下一个尘土层,该尘土层部分地遮盖了部分金属原料,如图29所示。该尘土是电介质。如果将金属贴图保留为全白,则会将基色中的这些污垢区域视为金属的反射率值。污垢色值远低于代表抛金属反射率70-100%所需的值。通过降低金属贴图中代表污垢的区域中的金属值,可以在介电和金属反射率值之间创建适当的混合。
污垢层的不透明度可以指示降低基色的反射率值的程度。这里没有严格的规则。本质上,您正在从高反射率的表面(导电)移动到较低反射率的表面(电介质)。但是,此过渡发生的程度可能会有所不同。
物质工具集允许轻松使用风化效果,并控制这些效果如何通过多通道支持传播到通道。Substance Designer和Substance Painter允许您更改Substance效果生成器上的参数,该生成器将自动调整由Substance effect控制的通道。
例如,在Substance Designer中,您可以使用“材质颜色混合”节点在多个通道上应用诸如污垢之类的效果。在“材质颜色混合”上,可以通过调整“金属值”滑块来控制污垢层对金属的影响,如图30所示。
被氧化的金属需要作为电介质或生锈的金属处理。涂漆金属也是如此
粗糙度图描述了导致光扩散的物体表面凹凸,如图31所示。如第1部分所述,反射方向将根据表面粗糙度随机变化。这会改变光的方向,但是光强度保持不变。较粗糙的表面将具有较大且暗淡的高光。较光滑的表面将使镜面反射聚焦,即使反射了相同的总光量,镜面反射也看起来更亮或更强烈。
在此贴图中,黑色(0.0)表示平滑表面,白色(1.0)表示粗糙表面。粗糙度贴图是最有创意的贴图,因为它允许艺术家在视觉上定义表面特征。它使您可以创造性地讲述有关表面状况的故事。它的环境是什么?是否小心处理或无视?它有没有暴露在元素中?表面的状况可以充分说明其环境,因此与您要创建的资产和世界的整体设计有关。
粗糙度是一个高度主观的区域。艺术家,拥有完全的创作控制权。从粗糙度开始的一个好地方是法线贴图。法线贴图通常会包含关键表面细节,这些细节也应在粗糙度图中表示。
有创造力,并讲一个关于表面的视觉故事。
使用金属/粗糙度工作流程的坏处是,它会产生白色边缘瑕疵,如图32所示。在镜面反射/光泽度工作流程中也会发生此问题。但是,在这种情况下,由于效果相反,它几乎不可见:存在一个黑色条纹而不是白色条纹,如图33所示。
此条纹是由于纹理插值引起的,并且在介电材料和非常明亮的金属之间存在鲜明对比的材质之间的过渡区域中显而易见。如图34所示。对于金属/粗糙度,基色包含金属反射率的较亮值,该值与非金属漫反射颜色进行插值,从而产生白色边缘。具有高光/光泽度时,由于原始金属没有漫反射颜色,因此漫反射贴图包含黑色。黑色值插入非金属漫反射颜色,从而产生黑色条纹。
贴图分辨率和纹理像素密度直接影响边缘伪像的可见性。例如,如果使用硬边缘笔刷在金属和非金属之间创建过渡区域,那么低分辨率仍将使边缘变软,从而加剧伪影。此低分辨率问题也是由未按贴图分辨率缩放以提供足够纹理像素密度的UV引起的。为UV提供良好的texel密度是最小化任何边缘伪影的最佳方法,如图35所示。
在图35中,两个纹理集使用相同的2048像素分辨率。但是,右图显示的UV布局较差,纹素密度较低。
Texel的密度和分辨率会影响金属/粗糙度工作流程中可能出现的白色边缘。为了最大程度地减少伪影,请确保您的UV提供足够的密度以匹配贴图分辨率。
就像金属/粗糙度一样,高光/光泽度工作流程是通过一组贴图定义的,这些贴图作为纹理被馈送到PBR着色器中的采样器。特定于镜面/光泽度工作流程的贴图是漫反射(diffuse),高光(specular)和光泽度(glossiness)(图36)。
尽管高光/光泽度工作流程使用更熟悉的名称,例如漫反射和高光,但重要的是要区分这些贴图与传统贴图不同。Substance使用术语“diffuse”,但是某些实现方式可能将“diffuse”称为反照率(albedo)。PBR着色器还将使用环境光遮挡,正常和可能的高度进行视差贴图,如前所述,这将在“ 两个工作流程共有的贴图”部分中进行讨论。
如我们在金属/粗糙度工作流程中所述,Substance中的PBR着色器可实现节能。这在镜面/光泽度工作流程中变得更加重要,例如,白色(1.0)的漫反射和白色(1.0)的镜面反射值可以组合以反射/折射比最初接收的更多的光,这又又违反了能量守恒定律。因此,在创作纹理时,纹理数据将不符合实际结果。
正如您将看到的,但我们将遵循相同的原则。如前所述,所有值(例如电介质F0,金属反射率和反照率颜色的亮度范围)均来自实际测量数据。在查看每种地图类型时,我们将讨论基于实测数据的指南。本节将不重复“金属/粗糙度”部分中所述的确切信息;而是将重点放在高光/光泽度工作流程的差异和必须区分的地方。
(图37)。在发生氧化的情况下,金属区域将包含颜色,因为它不再被视为原始金属。对于在原始金属上形成介电层的污垢或其他影响,也是如此。
关于色阶的漫反射贴图的指导原则与基础颜色贴图的指导原则相同。唯一的例外是,如果存在原始金属,则允许值为0.0(黑色),并且不受黑暗范围准则的约束
(图38)。此RGB贴图允许在贴图中创建电介质材质的不同值。这与金属/粗糙度工作流程不同,在金属/粗糙度工作流程中,电介质以4%的反射率硬编码,并且只能通过“ specularLevel”通道进行修改。就像我们在金属/粗糙度工作流程中所涵盖的一样,F0数据应该从真实的测量值中得出。。
由于specular贴图包含金属和非金属的F0值,因此我们将针对每种材料类型将贴图分为一个单独的类别。
F0值应基于实际数据。正如我们在金属地图中所涵盖的那样,如果存在氧化或表明非金属的某层,则需要降低原始金属的反射率。在高光/光泽度工作流程的情况下,如图39所示,污垢或氧化会增加原金属在漫反射图中的漫反射颜色,并降低在镜面反射图中的反射率值。图39还显示了原金属上的污垢层。镜面贴图中的污垢包含适当的电介质F0值。在这种情况下,我们使用的是0.04或4%。
电介质材料的F0也在镜面贴图中绘制。在这里,您可以完全控制F0值,但是使用正确的数据很重要。正如我们在第1部分中讨论的那样,非金属(绝缘体/电介质)是不良的导体。折射的光被散射和/或吸收(通常从表面重新出现),因此这些材料反射的光量比金属少得多。我们指出,基于折射率(IOR)计算出的F0,普通电介质的值约为2-5%。除宝石外,普通介电材料的F0可以在0.02-0.05(线性)()范围内(图40)。
在sRGB方面,我们正在寻找40-75 sRGB之间的值范围,该范围与线性0.02-0.05(2-5%)范围重叠。
如果找不到特定材料的IOR值,则可以假设为4%(0.04-塑料)。,如图40所示,范围为0.05-0.17(线性)。在金属工作流程中,当使用specularLevel通道时,将着色器映射到0.0-0.08(线性)的范围,因为需要零代表空气,如图39所示。
该地图具有与上述“粗糙度”部分所述的相同艺术指导。
再一次发挥创造力,讲一个关于表面的视觉故事。
前面我们讨论了边缘伪像如何在两个工作流程中出现。由于在该工作流程中边缘伪像更加明显,因此在金属/粗糙度部分对此进行了深入讨论。我们还提到在镜面反射/光泽度下,漫反射贴图包含黑色,因为原始金属没有漫反射色。黑色值用非金属漫反射颜色进行插值,从而产生黑色条纹,如图42所示。
同样,贴图分辨率和纹素密度直接影响边缘伪像的可见性。如果使用硬边缘笔刷在金属和非金属之间创建过渡区域,那么低分辨率仍将使边缘变软,从而加剧伪影。此低分辨率问题也是由与文档分辨率相比无法缩放以提供足够纹理像素密度的UV引起的。为UV提供良好的纹理像素密度是控制此问题的最佳方法(图43)。贴图分辨率和纹理像素密度直接影响边缘伪像的可见性。
Texel的密度和分辨率会影响镜面/光泽度工作流程中可能出现的黑色条纹。确保UV提供足够的密度以匹配文件分辨率,以最大程度地减少伪影。
优点
缺点
环境光遮挡图定义了曲面点可访问的环境光的数量。它仅影响漫反射贡献,不应遮盖高光贡献。某些引擎(例如Unreal Engine 4)具有用于屏幕空间反射的选项以模拟局部反射。最佳组合是将AO与屏幕空间反射一起使用。
在Substance PBR着色器中,环境照明(由环境贴图生成)乘以AO。AO贴图由PBR着色器中的纹理采样器提供,并且是可选通道(图44)。
在Substance Designer和Substance Painter中,可以使用集成的烘焙工具集从网格烘焙AO或从法线贴图转换AO。从而提供与光线跟踪烘焙类似的结果,如图45所示。
高度图通常用于渲染中的位移。它可以用于视差贴图,从而有助于增加更多的表观深度,从而为法线贴图和凹凸贴图提供更大的真实感。物质使用浮雕贴图视差算法。高度由PBR着色器中的纹理采样器提供,也是输入到PBR着色器的可选通道。在Substance Designer中,可以使用视差遮挡或曲面细分着色器(图46)。使用Substance Painter,您可以使用位移通道来驱动视差遮挡。
像AO一样,可以使用集成的烘焙工具集在Substance Designer或Substance Painter中从网格烘焙高度。在Substance Designer中,您可以使用节点来转换法线贴图的高度(图47)。在Substance Painter中,您可以直接绘制高度细节,如图48所示。
关于在实时着色器中使用高度,最好减少贴图中包含的高频细节的数量。高度图应设计为代表用于置换几何图形的形状的整体轮廓。好的做法是使用高度的模糊版本来显示表格并减少任何高频细节。这将导致法线贴图提供高频细节,并且高度将替换表单的轮廓(图49)。如果在射线跟踪渲染器中将高度用作位移,则需要此高频细节。
法线贴图用于模仿表面细节。RGB贴图中,每一部分都对应着表面法线的X,Y,Z坐标。RGB贴图用于存储高分率辨至低分辨率模型的投射细节。在Substance工具中,可以烘培法线贴图或将高度贴图转换为法线贴图。
法线贴图是使用在Substance Designer 和Substance Painter 中集成烘培工具从模型烘培而成。 在Substance Designer中,可以使用法线节点将高度贴图转换为法线贴图,如图50所示。 在Substance Painter 中可以在3D视图中直接绘制法线数据。(如图51)
在本节中,我们将讨论一些Substance实用程序,这些实用程序可帮助创作PBR纹理和设置正确的反射率值。这些工具是根据本指南中涵盖的原理和概念构建的。
该节点是用于创建完整基础材料的实用程序,可以在 Material Filters > PBR Utilities下找到,如图52所示。它支持金属/粗糙度和镜面/光泽度工作流程,并提供金属原料的常用预设。如果创建非金属,还可以设置反照率。根据工作流程,有用于粗糙度和光泽度的控件,还具有垃圾量选项。您可以启用地图输入以输入诸如基础颜色,法线或高度的通道。
该节点输出常见电介质材料的F0值(图53),也可以在Material Filters>PBR Utilities下找到。您可以从预设值中进行选择,并且该节点具有IOR输入字段,该字段接受IOR并计算F0值。它是为电介质材质设计的,可以与高光/光泽度工作流程一起使用。
该节点输出常见金属的反射率值。在Substance Designer库中的 Material Filters>PBR Utilities下找到它。您可以从多个预设金属值中进行选择,如图54所示。
该节点旨在与“金属/粗糙度”工作流程配合使用,并且是一个用于检查基础颜色和金属贴图的值是否正确的实用程序(图55)。可以在“ 材料过滤器”>“ PBR实用程序”下找到。节点输出从红色>黄色>绿色移动的热图,其中红色不正确,绿色/黄色正确。对于金属,它将检查基色中对应的F0值,以用于在金属图(大于235 sRGB)中指示为金属的区域。热图显示F0范围可能太低的范围。对于反照率,它将检查介电亮度范围是否正确。
该节点校正基色或漫反射图中的值,如图56所示。它确保该值落入电介质的校正亮度范围内。可以在Material Filters > PBR Utilities下找到。节点输出从红色>黄色>绿色移动的热图,对于金属,它将检查基色中对应的F0值,以用于在金属图(大于235 sRGB)中指示为金属的区域。热图显示F0范围可能太低的范围。对于反照率,它将检查电介质亮度范围是否正确。
baseColor_metallic_roughness_converter
该节点可将贴图从金属/粗糙度工作流程转换为各种渲染,并可在Material Filters>PBR Utilities.下找到。
° Arnold 5支持基础颜色/金属/粗糙度工作流程。 ° Redshift 2.x支持基础颜色/金属/粗糙度工作流程()
该过滤器旨在与金属/粗糙度工作流程一起使用,并且是一种用于检查基础颜色和金属贴图的值是否不正确的实用程序(图57)。对于金属,它将检查基色中对应的F0值,以在金属贴图(大于235 sRGB)中指示为金属的区域。
热图显示F0范围可能太低的范围。对于反照率,它将检查电介质亮度范围是否正确。
要在Painter中使用此功能,在图层添加滤镜并在滤镜中搜索pbr Validate
来自Substance Source的 Substance材质支持金属/粗糙度和高光/光泽度工作流程。这些输出可以与基于物理的实时着色器一起使用,例如在虚幻引擎4和Unity中找到的那些着色器。基本颜色/金属/粗糙度输出可与支持金属工作流程(例如Arnold)的光线跟踪渲染器一起使用。高光/光泽度贴图仅用于实时着色器。根据渲染器的不同,您可能可以直接使用基础颜色/金属/粗糙度输出,或者可能需要对其进行转换。
从Substance Share下载的自定义材料或资源对于给定的渲染器可能没有适当的输出,因为它们主要仅包含基础颜色/金属/粗糙度输出,因此了解您的材料将接受的材料输入类型非常重要,这样您就可以如果需要转换,请正确利用Substance材质的输出。
例如,对于Arnold 5,Vray5您可以直接使用金属/粗糙度输出。Substance Painter支持多种第三方渲染器配置,如图58所示。
Substance 插件的目标是自动转换Substance输出以与特定渲染器一起使用。例如,3ds Max Substance插件具有可与Arnold,Vray和Corona配合使用的预设。选择预设将自动转换用于这些渲染器的Substance输出(图59)。
有关通过Substance Painter和Substance Designer(Substance Materials)使用第三方渲染器的更多信息,请参阅Substance Integrations的渲染文档:
表面是金属吗?
将表面分解为金属或非金属类别可能会有所帮助。通过首先检查材料并询问其是否为金属来开始纹理化过程通常很有用。有了这个问题,您就可以得出纹理加工的一些准则,如本卷中所述,如图60和61所示。图60使用金属/粗糙度工作流,图61使用高光/光泽度。
反射率值
图62显示了与金属/粗糙度工作流程中的Substance PBR着色器相关的电介质的F0范围。电介质反射的光量比金属少。普通电介质的值约为2-5%。对于sRGB,该值应在sRGB 40-75之间,该值与0.02-0.05(线性)范围重叠。
在图63中,您可以看到电介质F0和金属反射率值。对于金属,镜面反射范围在70-100%之内,并且映射到sRGB值180-255。
使用ggamma2.2近似值完成了从sRGB到线性的转换。有关更多详细信息,请参见第1部分中的“线性空间渲染”部分。
在图64中,您可以看到使用金属/粗糙度工作流程正确和错误创建的地图的示例。污垢在金属图中被标记为原始金属。同样,金属反射率值在基色中设置得太低,因为它不能反映70-100%的镜面反射范围。
ps:如果你看完了,应该对每张贴图的原理和创建都有了理解,但是还是要提醒大家,此文章仅供参考,最后还是要以最终效果为准,只能说
以及要注意sp中