Substance PBR材质制作指南

您所在的位置:网站首页 sp着色器合并 Substance PBR材质制作指南

Substance PBR材质制作指南

2023-11-22 09:11| 来源: 网络整理| 查看: 265

最近深入了解了一下PBR的原理,感觉对制作材质有很大的帮助,所以整理了一下,来帮助大家科学的制作材质。

注意:本文完全根据Substance PBR纹理制作指南修改 ,并且重要语句标红(其实真的每一句都很重要)。以及第一次出现的名词使用蓝色英文标注。 

原文链接:https://academy.substance3d.com/courses/the-pbr-guide-part-2

目录

什么是PBR? PBR有哪些优点? PBR对美术有什么意义?

金属(Metal)/粗糙度(Roughness)工作流程  与 此流程中

{电介质 F0(Dielectric F0)     基础颜色(Base Color)      金属度(Metallic)

粗糙度(Roughness)     分辨率和Texel密度 优点与缺点} 的介绍

高光(Specular)/光泽度(Glossiness )工作流程 与 此流程中

{漫反射(Diffuse)      高光反射  ( Specular)      光泽度( Glossiness) 

分辨率和Texel密度 优点与缺点} 的介绍

适用于两种工作流程的环境光遮蔽贴图(Ambient Occlusion)   高度(Height)    法线(Normal)

Substance PBR实用程序    Substance Designer/Substance Painter/Substance 输出数据和渲染

附录-图表    这个物体是金属吗?   /   反射率值      /正确/错误的对比

创建PBR纹理的实用准则

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

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

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

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

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

(图16):Metallic/Roughness 和 Specular/Glossiness 工作流

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

虽然这两种工作流程在实现上都有利弊,但其中一种并不比另一种优越。正是这些基本的概念和准则将使您编写的PBR映射准确,而不是工作流程本身。工作流表示相同的数据,但是它们以不同的方式实现。

什么是PBR?

Physically Based Rendering(PBR)是一种着色和渲染方法,可以更准确地表示光与表面的交互方式。它称为Physically Based Rendering(PBR)或 Physically Based Shading(PBS)。根据正在讨论管线的哪个方面,PBS通常特定于着色概念,而PBR通常特定于渲染和照明。但是,这两个术语都从物理上准确的角度描述了表示资产的过程。

有什么好处?

作为艺术家,我们可以从艺术和生产效率的观念中了解PBR的优势:

1. PBR消除了创作表面属性的猜测,例如镜面反射(specular)。因为其方法和算法基于物理上精确的公式。因此,创建外观逼真的资产也更加容易。

2.资产在所有照明条件下看起来都是准确的。

3. PBR提供了用于创建一致作品的工作流,即使在不同艺术家之间也是如此。

对艺术家来说意味着什么?

作为艺术家,随着计算机硬件和渲染技术的发展,我们需要对描述表面属性的地图进行不同的思考,现在我们可以更精准地模拟光的物理性质。

我们需要更新传统的渲染工作流程中漫反射(diffuse)贴图和高光(specular)贴图的概念,因为这些贴图仅用作解决与材质进行光交互的近似方法。

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

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

金属/粗糙度工作流程

金属/粗糙度工作流程是通过一组通道定义的,这些通道作为纹理被馈送到PBR着色器中的采样器。金属/粗糙度工作流程的贴图有 基色(base color),金属(metallic)和粗糙度(roughness)(图17)。我们将讨论这两种工作流程共有的每种地图类型。PBR着色器还将使用环境光遮挡(ao),法线以及可能的高度(height)进行视差( parallax )或位移(displacement )映射(图18)。

图17: Metallic/Roughness 工作流图 18: Height map and ambient occlusion 作为着色器(shader)的可选输入

在金属/粗糙度工作流程中,金属的反射率值(reflectance)与电介质(dielectrics)的反射颜色一起置于基本颜色图中。BRDF处理掠射角的反射。金属度贴图的使用,其作用类似于黑白遮罩,以区分在基础颜色图中是金属还是电介质。着色器处理它们时,不会手工创作介电质F0值。且当着色器在金属图中看到黑色时,它将基础颜色图中的相应区域视为电介质,并使用4%(0.04)的反射率值(图19)。

图19:黑色表示非金属,使用0.04(4%)的反射率

正如我们在第1部分中讨论的那样,4%的值涵盖了最常见的介电材料。重要的是要注意,所有值(例如介电常数F0,金属反射率和反照率颜色的亮度范围)均来自实际测量数据。在查看每种地图类型时,我们将讨论基于实测数据的准则。

在第1部分中,我们讨论了能量守恒的概念,即从表面反射的光永远不会比入射到表面之前更强烈。在实现方面,着色器通常处理节能控制。Substance就是这种情况。使用金属/粗糙度工作流程无法打破节能规律。漫反射(反射的颜色)和镜面反射平衡是通过金属蒙版控制的,因此不可能创建这样一种情况,即漫反射和镜面反射可以结合起来以反射/折射比最初接收的更多的光。

金属的反射率值与电介质的反射颜色一起放在基本颜色图中。

介电质F0

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

某些金属/粗糙度实现(例如在Substance工具集和Unreal Engine 4中找到的实现)具有镜面反射控件,允许美术师更改介电常数F0值。在Substance中,此输出被标记为“ specularLevel”,并由金属/粗糙度PBR着色器中的纹理采样器提供。如图20所示,它表示0.0-0.08的范围。此范围在着色器中重新映射为0.0-1.0,其中0.5表示4%的反射率。

图20:Specular level输出表示电介质F0的着色器中的0.0-0.08范围

如果您需要手动设置电介质的F0,则可以使用Substance Designer内Substance图形中的specularLevel输出或Substance Painter中的specularLevel通道进行设置,如图21所示。高光/光泽度工作流程,因为您可以完全控制高光工作流程中的F0。

图21:使用specularLevel通道设置自定义电介质F0图22:Base Color包含电介质漫反射颜色和金属的反射率值基色(RGB – sRGB)

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

建立准则

可以认为Base Color贴图的色调有些平坦。也就是说,其对比度低于传统的漫反射贴图。不建议将值设置得太亮或太暗。物体的色调往往比我们记忆中的物体轻。我们可以用最暗的物质是煤,而最亮的物质是新鲜的白雪来可视化此范围。煤是深色的,但不是0.0黑色。我们选择的颜色值必须保持在亮度范围内。

关于亮度范围,我们主要是指介电反射色。在图23中,您可以看到一个示例,其中污垢值已降至正确的亮度范围以下。对于较暗的值,您不应低于30-50 sRGB。(sp对应数值0.117~0.196)暗值的范围在30 sRGB时可能更宽容,在50 sRGB时更严格。对于明亮的颜色,您的任何值都不应高于240 sRGB(sp对应数值约0.941)(图23)。

图23:电介质材质的Base Color范围(反射色)

我们说过,Base color包含有关电介质材质的反射光的数据,因此,它应该没有照明信息(例如环境光遮挡)。在着色器无法仅使用环境光遮挡通道来表示此细节级别的情况下,添加微遮挡可能会有例外,如图24所示。但是,如果将微遮挡添加到贴图,它会仍然需要通过亮度范围来控制。图中的值表示金属的反射率值应从实际测量值中获取。它的specular值在70-100%specular左右,我们可以将其映射到180-255(sp对应数值0.7~1)的sRGB范围。

图24:在Basecoor中包含照明信息的例外是微遮挡

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

金属反射率值的值应从实际测量值获得。

颜色代表非金属材料的反照率,代表金属的反射率值。

除微遮挡外,基色应没有照明信息。

暗值不应低于30 sRGB(容许范围)至50 sRGB(严格范围)。(sp对应数值0.117~0.196)

明亮值不应高于240 sRGB。(sp对应数值约0.941)

原始金属的反射率将很高,在70-100%镜面反射范围内,我们可以将其映射为180-255 sRGB。(sp对应数值0.7~1)

正如您将在下面的“金属”部分中阅读的那样,基色也可以包含金属反射率值。如果在基色上添加了污垢或氧化,则将导致金属反射率值减小到无法视为原金属的范围。

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

金属贴图以类似于遮罩的方式运行,因为它告诉着色器如何解释以基色显示的数据。

图25:在金属图中也必须考虑增加的污垢/氧化Metallic (Grayscale(灰度) – Linear(线性))

Metallic贴图用于定义材料的哪些区域表示金属。作为灰度图,它以与遮罩类似的方式运行,因为它在告诉着色器应如何解释Base Color表示什么数据。

图26:Base Color贴图包含金属贴图确定的金属的反射率值。

金属地图中的数据不包含直接用作材质值的实际数据。它仅向着色器描述应将基色中的哪些区域解释为反射色(介电质),哪些区域表示金属反射率值。在金属图中,0.0(黑色– 0 sRGB)代表非金属,而1.0(白色– 255 sRGB)代表金属。就定义金属和非金属而言,该金属图通常是二进制的:黑色或白色,金属或非金属。实际上,当着色器查看金属贴图并看到白色时,它会检查BaseColor贴图中的相应区域,以获取金属的反射率值,如图26所示。

建立准则

金属表面有两个与纹理化有关的重要方面:首先,它们的反射率值在70-100%的镜面反射范围内较高;第二,一些金属会被腐蚀。在讨论创建准则时,我们将分别研究这两个方面。

处于这一范围的金属区域反射率值为70-100%。

金属

金属贴图应被创作为0或1,是否为金属,并用于定义原始的抛光金属状态。作为一般指导,金属图中的金属的灰度范围将定义为235-255 sRGB(sp对应数值0.92~1)。落入该范围的金属区域在基色图中必须具有70-100%反射率的反射率范围,我们可以将其映射为180-255 sRGB(sp对应数值0.7~

1),如图27所示。同样,这些值基于真实世界测量数据。

图27:在金属图中将基础金属定义为> = 235 sRGB(对应sp数值0.92~1)

腐蚀或介电层

当您在表面上风化时,您可能需要考虑金属被氧化,或补偿其他环境因素,例如灰尘和污垢。在这些情况下,需要将金属视为电介质。涂漆金属也是如此。如果您查看的是涂有油漆的金属,其中部分油漆已被刮擦或削掉,则暴露的金属是“原始”(金属图中的白色),而油漆是介电层(金属图中的黑色),如图所示。图28。

图28:涂漆的金属被视为电介质

金属图可以表示金属和非金属之间的混合状态,该过渡状态由图中的过渡灰度值表示。如果金属贴图的灰度值低于235 sRGB(sp对应数值0.92),则需要降低基色中的“原始”金属反射率值。考虑一下一个尘土层,该尘土层部分地遮盖了部分金属原料,如图29所示。该尘土是电介质。如果将金属贴图保留为全白,则会将基色中的这些污垢区域视为金属的反射率值。污垢色值远低于代表抛金属反射率70-100%所需的值。通过降低金属贴图中代表污垢的区域中的金属值,可以在介电和金属反射率值之间创建适当的混合。

图29:金属图中的金属灰度范围将定义为> = 235 sRGB(sp对应数值0.92)

污垢层的不透明度可以指示降低基色的反射率值的程度。这里没有严格的规则。本质上,您正在从高反射率的表面(导电)移动到较低反射率的表面(电介质)。但是,此过渡发生的程度可能会有所不同。

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

例如,在Substance Designer中,您可以使用“材质颜色混合”节点在多个通道上应用诸如污垢之类的效果。在“材质颜色混合”上,可以通过调整“金属值”滑块来控制污垢层对金属的影响,如图30所示。

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

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

黑色(0.0)是非金属,白色(1.0)是金属。可能会有过渡的灰度值来说明氧化或污垢。

如果金属贴图的值低于235 sRGB,则需要在基础色图中降低反射率值

Roughness (Grayscale - Linear)

粗糙度图描述了导致光扩散的物体表面凹凸,如图31所示。如第1部分所述,反射方向将根据表面粗糙度随机变化。这会改变光的方向,但是光强度保持不变。较粗糙的表面将具有较大且暗淡的高光。较光滑的表面将使镜面反射聚焦,即使反射了相同的总光量,镜面反射也看起来更亮或更强烈。

图31:粗糙度图描述了导致光扩散的表面凹凸

在此贴图中,黑色(0.0)表示平滑表面,白色(1.0)表示粗糙表面。粗糙度贴图是最有创意的贴图,因为它允许艺术家在视觉上定义表面特征。它使您可以创造性地讲述有关表面状况的故事。它的环境是什么?是否小心处理或无视?它有没有暴露在元素中?表面的状况可以充分说明其环境,因此与您要创建的资产和世界的整体设计有关。

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

建立准则

有创造力,并讲一个关于表面的视觉故事。

分辨率和像素密度

使用金属/粗糙度工作流程的坏处是,它会产生白色边缘瑕疵,如图32所示。在镜面反射/光泽度工作流程中也会发生此问题。但是,在这种情况下,由于效果相反,它几乎不可见:存在一个黑色条纹而不是白色条纹,如图33所示。

图32:使用金属/粗糙度工作流程的坏处是它会产生白色边缘伪影图33:使用高光/光泽度工作流程的坏处是它会产生暗边缘伪像

此条纹是由于纹理插值引起的,并且在介电材料和非常明亮的金属之间存在鲜明对比的材质之间的过渡区域中显而易见。如图34所示。对于金属/粗糙度,基色包含金属反射率的较亮值,该值与非金属漫反射颜色进行插值,从而产生白色边缘。具有高光/光泽度时,由于原始金属没有漫反射颜色,因此漫反射贴图包含黑色。黑色值插入非金属漫反射颜色,从而产生黑色条纹。

图34:在材质之间的过渡区域中明显出现了条纹

贴图分辨率和纹理像素密度直接影响边缘伪像的可见性。例如,如果使用硬边缘笔刷在金属和非金属之间创建过渡区域,那么低分辨率仍将使边缘变软,从而加剧伪影。此低分辨率问题也是由未按贴图分辨率缩放以提供足够纹理像素密度的UV引起的。为UV提供良好的texel密度是最小化任何边缘伪影的最佳方法,如图35所示。

图35:为UV提供良好的纹理像素密度是最小化任何边缘伪影的最佳方法

在图35中,两个纹理集使用相同的2048像素分辨率。但是,右图显示的UV布局较差,纹素密度较低。

贴图分辨率和纹理像素密度直接影响边缘伪像的可见性。

建立准则

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

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

由于提供不正确的电介质F0数据而更易于编写,并且更不容易出错。

使用较少的纹理记忆,因为金属和粗糙度都是灰度图。

似乎是被更广泛采用的工作流。

缺点

在地图创建中无法控制F0的电介质。但是,大多数实现都有镜面反射控件来覆盖基本4%的值。

边缘伪像更明显,尤其是在较低分辨率下

高光/光泽度(Specular / Glossiness )工作流程

就像金属/粗糙度一样,高光/光泽度工作流程是通过一组贴图定义的,这些贴图作为纹理被馈送到PBR着色器中的采样器。特定于镜面/光泽度工作流程的贴图是漫反射(diffuse),高光(specular)和光泽度(glossiness)(图36)。

图36:高光/光泽度工作流程

尽管高光/光泽度工作流程使用更熟悉的名称,例如漫反射和高光,但重要的是要区分这些贴图与传统贴图不同。Substance使用术语“diffuse”,但是某些实现方式可能将“diffuse”称为反照率(albedo)。PBR着色器还将使用环境光遮挡,正常和可能的高度进行视差贴图,如前所述,这将在“ 两个工作流程共有的贴图”部分中进行讨论。

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

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

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

漫反射(RGB – sRGB)

与金属/粗糙度工作流程中的基础色图一样,漫反射图也包含反照率色。但是,它不包含任何反射率值。

建立准则

漫反射贴图仅是反照率颜色。在金属的区域将为黑色(0.0),因为金属没有漫反射的颜色(图37)。在发生氧化的情况下,金属区域将包含颜色,因为它不再被视为原始金属。对于在原始金属上形成介电层的污垢或其他影响,也是如此。

图37:在金属的区域将为黑色(0.0),因为金属没有漫反射的颜色

关于色阶的漫反射贴图的指导原则与基础颜色贴图的指导原则相同。唯一的例外是,如果存在原始金属,则允许值为0.0(黑色),并且不受黑暗范围准则的约束

颜色表示非金属材质的反照率(albedo),黑色表示金属的反射率(0.0)。

除微遮挡外,基色应没有照明信息。

深色值不应低于30 sRGB(容许范围)或50 sRGB(严格范围)(sp对应范围0.117~0.196),除非原始金属为黑色。

亮度值不应高于240 sRGB

Specular (RGB – sRGB)

高光贴图定义了金属的反射率值和非金属的F0(图38)。此RGB贴图允许在贴图中创建电介质材质的不同值。这与金属/粗糙度工作流程不同,在金属/粗糙度工作流程中,电介质以4%的反射率硬编码,并且只能通过“ specularLevel”通道进行修改。就像我们在金属/粗糙度工作流程中所涵盖的一样,F0数据应该从真实的测量值中得出。电介质的F0将是一个较暗的值。金属反射率可以着色,因为某些金属吸收不同波长的光。电介质和金属的F0在RGB高光贴图中绘制。

镜面贴图允许在贴图中创作介电F0的不同值

图38:specular贴图定义了金属的反射率值和非金属的F0建立准则

由于specular贴图包含金属和非金属的F0值,因此我们将针对每种材料类型将贴图分为一个单独的类别。

金属

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

图39:氧化/污垢会增加金属的漫反射色并降低镜面反射图中的反射率值电介质

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

图40:常用介电值在2-5%范围内

在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所示。

specular贴图包含电介质的F0和金属的反射率值。

电介质反射的光量比金属少。普通电介质的值约为2-5%(sp对应数值也是0.02-0.05)。就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,黑色的原始金属漫反射色以及如果不使用着色器则可能的节能措施。

两种工作流程通用的地图环境光遮蔽(AO)

环境光遮挡图定义了曲面点可访问的环境光的数量。它仅影响漫反射贡献,不应遮盖高光贡献。某些引擎(例如Unreal Engine 4)具有用于屏幕空间反射的选项以模拟局部反射。最佳组合是将AO与屏幕空间反射一起使用。

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

AO仅影响漫反射贡献,不应遮盖高光贡献

图44:不应将AO烘焙到纹理贴图中,而应仅将其作为自己的通道提供给着色器创建环境光遮挡

在Substance Designer和Substance Painter中,可以使用集成的烘焙工具集从网格烘焙AO或从法线贴图转换AO。同样,在Substance Designer和Substance Painter中,您都可以使用HBAO节点/过滤器从高度输入生成基于水平的环境光遮挡,从而提供与光线跟踪烘焙类似的结果,如图45所示。

图45:在Designer中使用HBAO节点或在Painter中使用滤镜可产生与光线跟踪烘焙相似的结果高度

高度图通常用于渲染中的位移。它可以用于视差贴图,从而有助于增加更多的表观深度,从而为法线贴图和凹凸贴图提供更大的真实感。物质使用浮雕贴图视差算法。高度由PBR着色器中的纹理采样器提供,也是输入到PBR着色器的可选通道。在Substance Designer中,可以使用视差遮挡或曲面细分着色器(图46)。使用Substance Painter,您可以使用位移通道来驱动视差遮挡。

图46:高度由PBR着色器中的纹理采样器提供,并且也是一个可选通道创建高度

像AO一样,可以使用集成的烘焙工具集在Substance Designer或Substance Painter中从网格烘焙高度。在Substance Designer中,您可以使用节点来转换法线贴图的高度(图47)。在Substance Painter中,您可以直接绘制高度细节,如图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:法线节点可以从高度输入中创建法线数据图51:法线通道可用于绘制法线数据Substance PBR实用程序

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

物质设计师PBR基础材料

该节点是用于创建完整基础材料的实用程序,可以在 Material Filters > PBR Utilities下找到,如图52所示。它支持金属/粗糙度和镜面/光泽度工作流程,并提供金属原料的常用预设。如果创建非金属,还可以设置反照率。根据工作流程,有用于粗糙度和光泽度的控件,还具有垃圾量选项。您可以启用地图输入以输入诸如基础颜色,法线或高度的通道。

图52:使用预设值或自定义贴图输入创建基础材料的PBR实用程序介电质F0

该节点输出常见电介质材料的F0值(图53),也可以在Material Filters>PBR Utilities下找到。您可以从预设值中进行选择,并且该节点具有IOR输入字段,该字段接受IOR并计算F0值。它是为电介质材质设计的,可以与高光/光泽度工作流程一起使用。

图53:使用预设或自定义IOR计算电介质F0值的PBR实用程序金属反射率(Metal Reflectance)

该节点输出常见金属的反射率值。在Substance Designer库中的 Material Filters>PBR Utilities下找到它。您可以从多个预设金属值中进行选择,如图54所示。

图54:包含金属反射率值预设的PBR实用程序PBR金属/粗糙度验证

该节点旨在与“金属/粗糙度”工作流程配合使用,并且是一个用于检查基础颜色和金属贴图的值是否正确的实用程序(图55)。可以在“ 材料过滤器”>“ PBR实用程序”下找到。节点输出从红色>黄色>绿色移动的热图,其中红色不正确,绿色/黄色正确。对于金属,它将检查基色中对应的F0值,以用于在金属图(大于235 sRGB)中指示为金属的区域。热图显示F0范围可能太低的范围。对于反照率,它将检查介电亮度范围是否正确。

PBR安全色

该节点校正基色或漫反射图中的值,如图56所示。它确保该值落入电介质的校正亮度范围内。可以在Material Filters > PBR Utilities下找到。节点输出从红色>黄色>绿色移动的热图,其中红色不正确,绿色/黄色正确。对于金属,它将检查基色中对应的F0值,以用于在金属图(大于235 sRGB)中指示为金属的区域。热图显示F0范围可能太低的范围。对于反照率,它将检查电介质亮度范围是否正确。

图55:PBR实用程序可检查albedo/金属反射率值的范围并输出热图以显示正确/不正确的值图56:PBR实用程序,用于检查基础色和漫反射的范围Conversion

BaseColor_metallic_roughness_converter

该节点可将贴图从金属/粗糙度工作流程转换为各种渲染,并可在Material Filters>PBR Utilities.下找到。

Vray (GGX)

Corona

Corona 1.6

Redshift 1.x °

Arnold 4 (aiSurface) °

Arnold 4 (aiStandard) °

Renderman (pxrSurface)

° Arnold 5支持基础颜色/金属/粗糙度工作流程。 ° Redshift 2.x支持基础颜色/金属/粗糙度工作流程(现在几乎所有渲染器新版本都支持金属/粗糙度流程)

Substance PainterPBR金属/粗糙度验证(filter)

该过滤器旨在与金属/粗糙度工作流程一起使用,并且是一种用于检查基础颜色和金属贴图的值是否不正确的实用程序(图57)。过滤器输出从红色>黄色>绿色移动的热图,其中红色不正确,绿色/黄色正确。对于金属,它将检查基色中对应的F0值,以在金属贴图(大于235 sRGB)中指示为金属的区域。

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

要在Painter中使用此功能,在图层添加滤镜并在滤镜中搜索pbr Validate

57:PBR实用程序可检查albedo/金属反射率值的范围并输出热图以显示正确/不正确的值Substance输出和渲染

来自Substance Source的 Substance材质支持金属/粗糙度和高光/光泽度工作流程。这些输出可以与基于物理的实时着色器一起使用,例如在虚幻引擎4和Unity中找到的那些着色器。基本颜色/金属/粗糙度输出可与支持金属工作流程(例如Arnold)的光线跟踪渲染器一起使用。高光/光泽度贴图仅用于实时着色器。根据渲染器的不同,您可能可以直接使用基础颜色/金属/粗糙度输出,或者可能需要对其进行转换。

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

例如,对于Arnold 5,Vray5您可以直接使用金属/粗糙度输出。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 Materials)使用第三方渲染器的更多信息,请参阅Substance Integrations的渲染文档:https://docs.substance3d.com/integrations/rendering-157352143.html

图60:表面是否为金属?金属/粗糙度工作流程图61:表面是金属吗?高光/光泽度工作流程附录-图表

表面是金属吗?

将表面分解为金属或非金属类别可能会有所帮助。通过首先检查材料并询问其是否为金属来开始纹理化过程通常很有用。有了这个问题,您就可以得出纹理加工的一些准则,如本卷中所述,如图60和61所示。图60使用金属/粗糙度工作流,图61使用高光/光泽度。

反射率值

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

图62:电介质F0值范围

在图63中,您可以看到电介质F0和金属反射率值。对于金属,镜面反射范围在70-100%之内,并且映射到sRGB值180-255。

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

使用ggamma2.2近似值完成了从sRGB到线性的转换。有关更多详细信息,请参见第1部分中的“线性空间渲染”部分。

正确/不正确的比较

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

图64:正确和不正确的贴图比较–金属/粗糙度

ps:如果你看完了,应该对每张贴图的原理和创建都有了理解,但是还是要提醒大家,此文章仅供参考,最后还是要以最终效果为准,只能说尽量符合文中所要求的数值,不要超出那个范围太多。

以及要注意sp中 颜色通道(例如BaseColor Specular)输入数值获得的是线性颜色(即物理中灰)

 数值通道(例如roughness,normal,metallic)输入数值获得的是矫正颜色(即美术中灰)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3