图文翻译丨PBR材质制作,你可以的!

文章 此情可待成追忆
2021-3-30 15:23 270人浏览 0人回复


新的标准

由于计算能力的提高和对艺术内容标准化的普遍需求,物理渲染正迅速成为游戏行业的标准,旨在重新定义我们如何创造和渲染艺术。


基于物理的渲染 (PBR) 是指使用逼真的阴影/照明模型以及测量的表面数值来准确表现真实世界材质的概念。

PBR与其说是一套严格的规则,不如说是一个概念,因此,PBR系统的精确实现往往会有所不同。然而,由于每个PBR系统都基于相同的目的(尽可能准确地渲染对象),许多概念将很容易地从一个项目转移到另一个项目或引擎转移到另一个引擎。Marmoset Toolbag支持您在PBR系统中所期望找到的大多数常见的输入方式。

除了渲染质量,保证各种环境下效果的一致性是使用测量值的最大原因。艺术家再也不用依靠盲猜来保证效果的一致性了。从艺术指导的角度来看,这样也使得能够确保每一位艺术家所创建的资产得以在任何环境下都能得到效果。

常见问题

开始之前,最重要的是能够包含人们对于PBR会被提及的常见问题

1) 我不知道如何使用PBR系统,我需要重新学习如何创建艺术内容吗?

大多数情况下并不需要,如果你对于上一代dynamic per-pixel lighting有一定经验的话,你已经拥有利用PBR系统创建内容所需的许多知识,术语往往是艺术家最大的绊脚石之一,所以我在下面写了一个关于各种术语和翻译的章节,这里的大多数概念都很简单,也很容易理解。

如果你的经验主要在于手绘/移动端类工作,学习这里所提到的新技术和工作流可能是一个更大的挑战。然而,也并不会比选择基于传统高光法线工作流程难多少。

2)艺术家是否需要为他们希望创作的每种材质使用偏振摄像系统来捕捉摄影参考?
不,通常您的工作室会为您提供常见材料的参考。或者,你可以从各种第三方来源中找到已知的数值,比如Quixel的Megascans资产库。创建自己的扫描数据是一个非常技术性和耗时的过程,在大多数情况下是不必要的。

3)如果我使用PBR着色器,这是否意味着我的作品在物理上是比较准确的?
不一定,仅使用PBR着色器并不能使你的作品在物理上准确。PBR系统是物理上精确的照明、阴影和适当校准的艺术内容的组合。

4)我需要使用金属度图才能称之为基于PBR吗?
不,金属度图只是确定反射率的一种方法,通常并不比使用specular color+intensity map更准确。

5) 我需要使用折射率 (IOR) 使其成为PBR吗?
不,类似于金属度图输入,IOR只是定义反射率的一种替代方法。

6)specular 镜面反射 已经毫无作用了吗?
不完全是。镜面反射强度或反射率仍然是PBR系统中非常重要的参数。您可能没有直接设置反射率的映射 (例如,使用金属度工作流程),但在PBR系统中仍然需要它。

7)gloss map 光泽度贴图是否取代了specular镜面反射贴图?
不,光泽或粗糙度图定义了材料的微表面 (它有多粗糙或光滑),并且不替换specular镜面反射贴图。然而,如果你不习惯使用光泽度图,那就在光泽度图中调整数值来添加某些细节,不然就将这些细节添加到specular镜面反射贴图中。

8)PBR系统可以用来创造风格化的作品吗?

是的,当然。如果你的目标是创造一个幻想的、程式化的世界,拥有准确的材质定义仍然是非常重要的。即使你正在创造一个 farts rainbows,你通常仍然希望独角兽符合光和材质的物理特性。

皮克斯的作品就是一个很好的例子,它非常风格化,但拥有准确的材料定义仍然非常重要。。这是一篇关于怪兽大学PBR的精彩文章: fxguide feature on Monsters University(http://www.fxguide.com/featured/monsters-university-rendering-physically-based-monsters/)

输入和术语

不熟悉PBR系统概念的艺术家通常认为内容创作是完全不同的,通常是因为所使用的术语。如果你使用过现代着色器和艺术创作技术,你已经有了基于物理的渲染系统的许多概念的经验。

弄清楚要创建什么类型的内容,或者如何将您的内容插入PBR着色器可能会令人困惑,所以这里有一些常见的术语和概念来开始学习。

 能量守恒

能量守恒的概念指出,一个物体反射的光不能超过它接收的光。


出于实际目的,更多的漫射和粗糙的材质将反射更暗和更宽的高光,而更平滑和更多的反光材料将反射更亮更紧的高光。

Albedo反照率

反照率是基本颜色输入,通常称为漫反射图。


反照率图定义了漫射光的颜色。PBR系统中的反照率图和传统漫射图之间最大的区别之一是缺乏定向光或环境遮挡。在某些照明条件下,定向光看起来不正确,环境遮挡应添加到单独的AO槽中。

反照率图有时也会比漫反射颜色定义得更多,例如,当使用金属度图时,反照率图定义了绝缘体 (非金属) 的漫反射颜色和金属表面的反射率。

微表面

微表面定义了材料表面的粗糙或光滑程度。


在这里,我们看到了能量守恒原理是如何受到材料微表面所影响的,粗糙的表面会显示得更宽,但变暗的镜面反射,而平滑的表面会显示得更亮,但更为清晰的镜面反射。

根据您创作内容所使用的引擎,您的纹理可能被称为粗糙度图而不是光泽图。实际上,这两种类型之间几乎没有区别,尽管粗糙度图可能具有反向映射,即: 暗值等于光滑/光滑表面,而亮值等于粗糙/哑光表面。默认情况下,Toolbag期望白色定义最平滑的表面,而黑色定义最粗糙的表面,如果您正在加载颜色相反的光泽/粗糙度图,单击 “光泽” 模块中的 “invert” 反转复选框。

反射率

反射率是表面反射的光的百分比。所有类型的反射率 (又名基本反射率或F0) 输入,包括镜面反射、金属度和IOR,定义了正面观察时表面的反射性,而菲涅耳定义了表面在掠过角的反射性。


重要的是要注意绝缘材料的反射率范围有多窄。结合能量守恒的概念,很容易得出结论,表面变化通常应该用微表面图而不是反射率图来表示。对于给定的材质类型,反射率趋于保持相当恒定。绝缘体的反射颜色倾向于中性/白色,并且只对金属着色。因此,专用于反射率强度/颜色的反射 (通常称为镜面反射) 可以被删除以支持金属度贴图。


当使用金属度图时,绝缘表面——在金属度图中像素设置为0.0 (黑色),会 被分配一个固定的反射率值 (线性: 0.04 sRGB: 0.22) 并使用albedo反照率贴图作为漫反射。对于金属表面——在金属度图中像素设置为1.0 (白色)-镜面颜色和强度取自反照率albedo图, 在着色器中漫射值设置为0 (黑色)。金属度图中的灰度值将被视为部分金属,并将从反照率albedo中提取反射率,并成比例地使漫反射值变暗 (部分金属材料并不常见)。

同样,金属度图在物理上并不比标准镜面反射更精确。然而,这是一个可能更容易理解的概念,并且可以将金属度图打包到灰度插槽中以节省内存。在镜面反射贴图specular map上使用金属度图的缺点是对绝缘材料的精确值失去控制。

传统的镜面反射提供了对镜面强度和颜色的更多控制,并在尝试再现某些复杂材料时提供了更大的灵活性。镜面反射的主要缺点是它通常会被保存为24位文件,从而导致更多的内存使用。它还要求艺术家对物理材质特性有很好的理解,以获得正确的值,这可能是正面的,也可能是负面的,这取决于你的观点。

提示: 金属度图应使用0或1的值 (某些渐变可以用于过渡)。像涂漆金属这样的材料不应该被设置为金属,因为油漆是绝缘体。金属度值应代表材料的顶层。

IOR是定义反射率的另一种方式,等同于镜面和金属度输入。与镜面反射输入的最大区别在于IOR值是用差异标度定义的。IOR标度确定光相对于真空通过材料的速度。IOR值为1.33 (水) 意味着光在水中的传播速度比真空环境慢1.33倍。您可以在Filmetrics Refractive Index Databasehttp://www.filmetrics.com/refractive-index-database折射率数据库中找到更多测量值。

对于绝缘体,IOR值不需要颜色信息,可以直接输入数值0-1来定义extinction区域跟index区域。对于具有颜色反射的金属,您需要输入红色、绿色和蓝色通道的值。这可以通过贴图素材输入来完成 (其中贴图的每个通道都包含正确的值)。还需要为金属设置exrinction值,通常可以在包含IOR值的库中找到该值。


通常不建议使用IOR或金属度定义镜面反射,因为它通常不用于游戏中,并且很难在具有多种材料类型的纹理中获得正确的值。在marmoset中支持IOR输入更多是出于科学目的而不是实际应用目的。

Fresnel菲尼尔

菲涅耳是表面以切角方向反射的光的百分比。


菲尼尔通常应设置为1 (并通过金属度反射率模块锁定为1的值),因为所有类型的材料在切角方向变为100% 反射。导致更亮或更暗的菲涅尔效应的微表面差异通过光泽度贴图自动计算。

marmoset Toolbag目前不支持纹理贴图来控制菲涅耳强度。

在marmoset Toolbag和大多数PBR系统中,菲涅尔由BRDF自动计算一个大概值,在这种情况下为Blinn-Phong或GGX,并且通常不需要额外的输入。但是,对Blinn-Phong BRDF的菲涅耳有一个额外的控制,它适用于传统用途,因为它可能导致物理上不准确的结果。

环境闭塞(AO)


环境遮挡 (AO) 代表大规模遮挡光,通常从3d模型中烘焙出来。

添加AO作为单独的贴图,而不是将其烘焙到反照率和镜面映射specular map中,可以使着色器以更智能的方式使用它。例如,AO功能仅遮挡环境漫射光 (marmoset中基于图像的照明系统的漫反射),而不直接遮挡来自动态光照的漫反射上的光照或任何种类的镜面反射。

AO通常不应该乘以镜面反射或光泽度贴图。在过去,将AO乘以镜面反射在过去是一种用来减少不合适的反射效果 (例如天空反射在一个有AO信息的物体上) 但是现在局部屏幕空间反射在表现物体间反射方面做得更好。

Cavity

CAVITY贴图本质上是一个黑白遮罩,他可以让你访问模型上的裂缝和高频细节。


CAVITY贴图表示小比例的遮挡光,通常由3d模型或法线图烘焙而成。

CAVITY贴图应仅包含表面的凹区域 (凹坑),而不包含凸区域,因为CAVITY贴图是成倍增加的。内容应该大部分是白色的,带有较暗的部分,以代表表面凹进的区域,光线会被捕获。CAVITY贴图影响来自环境和动态光源的漫反射和镜面反射。

或者, reflection occlusion map可以加载到CAVITY贴图中,但是在执行此操作时,请确保将漫反射的cavtiy值设置为0。

找寻材质的数值

使用PBR系统时,最困难的挑战之一是找到准确和一致的值。互联网上有各种各样的测量值来源,然而,找到一个有足够信息可供依赖的库真的很痛苦。

Quixel’s Megascan在这里非常有用,因为它们提供了从真实世界数据扫描的校准平铺纹理的大型库。


大多数库的材质数值往往是根据实验室条件下的 raw materials来测量的,这在现实生活中是很少见的。诸如材料纯度、年龄、氧化和磨损等因素可能会导致给定对象的真实世界反射率值的变化。

虽然Quixel的扫描是根据真实世界的材质测量的,但根据上述各种条件,即使在相同的材料类型中,也经常会有变化,尤其是在涉及光泽/粗糙度时。上图中的值应该被认为是一个起点,而不是一个严格的/绝对的参考。

创建材质纹理


有许多方法可以为PBR系统创建纹理内容; 您选择的具体方法将取决于您的个人喜好以及您可以使用的软件。下面是我用来创建上述镜头方法的快速回顾:


首先,使用来自Megascans的平铺纹理、在缺乏适当参考的条件下使用来自已知材质的测量数据以及、逻辑和观察的地方的组合,在marmoset toolbag中为每种表面类型创建基本材质,确定值。在Toolbag中创建基础材质使我可以快速调整数值并提供最终结果的非常准确的预览。通常,我将基础材质直接给我的高模,以便在进行最终烘焙之前清楚地了解纹理是如何结合在一起的。

设置完基础材质之后,我将数值跟纹理贴图导入PS并开始根据一定逻辑建立图层,底部是黄铜,镀镍,哑光底漆,半光泽纹理漆,刻字漆,最后是红色光泽塑料。这种分层设置提供了一种简单的方法,通过简单的蒙版显示下面的各种材质。


类似的分层功能可以通过dDo、Mari和Substance Designer来实现。
在我设置好基础层并混合在一起以代表不同的磨损阶段后,我添加了一些额外的细节。首先,我使用dDo生成灰尘和污垢通道,然后在光泽度图中以精细的表面变化来完成材质的收尾工作。

您用来为PBR系统创建内容的具体方法远不如最终结果重要,所以请随意进行尝试,找出最适合您需求的方法。然而,你应该调整材质的值,使其在特定的照明环境中看起来更有趣。为材料使用合理的基础值可以大大简化流程,提高大型项目的一致性和资产再利用,并确保无论你如何改变灯光环境它们,你的资产总是看起来很棒的效果。

Artist Q&As 问答环节
自Toolbag 2发布以来,我们对所展示的作品印象深刻,并想借此机会突出一些杰出的作品,向创作者提出一些与PBR相关的问题。

Wojciech Klimas

Wojciech Klimas是一位来自波兰的艺术家,他在DNV工作,目前从事Survey Simulator项目。Wojceich也从事自由职业。在这里查看他的资料: www.wklimas.weebly.com


适应PBR工作流程最困难的方面是什么?

我认为最难记住的是保持准确的反照率、反射率和粗糙度值。您大可以随时取巧和调整数值,使其在特定的照明条件下看起来不错,但这在其他照明条件下可能看起来会很糟糕。如果你正确地做了这件事,用物理上准确的值,它在所有条件下看起来都很好,因为没有什么比现实看起来更好。

一开始,我主屏幕开着Photoshop,在副屏上放着具有不同材料反射率值的参考图表,但是随着您所获得经验,它会变得更加容易,而且不需要经常检查值了。

你如何决定你的材料使用哪些数值?

通过研究互联网搜到的的数值。我自己来测量不太实际的,但我想自己尝试一下,因为我觉得我可以学到很多。

能分享点干货吗?

这是一个很难回答的问题。我能给出的最好的建议是学习物理。这确实有助于理解为什么材质的表现方式是这样的。变得优秀没有捷径可走,你只需要练习,练习,练习。

Joeri Vromman
Joeri Vromman是一位来自Belguim的艺术家,他将在DAE上学,并且在两次学习之间也可以从事自由职业。在这里查看更多工作: www.joerivromman.com


工作流程最困难的方面是什么?

最难的部分是将来自各种来源的信息拼凑在一起,作为一个存粹的艺术家,我无法获得许多工作室拥有的工具和资源,这在一开始看起来非常难以承受。然而,一旦你进入其中,并且对这个过程更加熟悉,它就会很快结合在一起。根据经验,很明显,这一步跨度并没有那么大,为了基于物理的着色器制作纹理可以快得多。


你是如何决定应该使用哪种数值来定义你的材质的?

我所工作的方式如下:

根据不同材质的分别寻找大量参考;

通过rougness来区分每种材质类型,不需要特别精确,但是大方向要靠近目标材质类型,这样才能有一个很好的基础材质来继续深入;

根据每种材质来寻找参考数值,可以在网络上寻找到 类似的材质数值表,如果某种具体材质无法找到一个可以参考的数值,就自己主动根据逻辑来自己决定(比如,磨损的橡胶反射较小,黄铜是铜和锌的混合物);
反射率值是最容易开始的,并为您提供给其他贴图的良好基础。对于绝缘体来说,将值保持在小范围内是很重要的,以此表现非金属的反射值。对于金属来说,首先最重要的是漫反射调至纯黑,然后找到合适的反射率值。在这之后,我将快速分配一个粗糙度值,通常只通过将材质分为3类 (高亮的、中等的或粗糙的)。然后我选择一种反照率颜色,在这里注意保持一致,不要太暗。我还在各种HDR环境进行切换,以确保材料在各种照明条件下都是一致的。一旦这个初始阶段结束,我会回头观察微调这些值,因为每种材料都是不同的,记住PBR的概念。在这一点上,同时我会为一些表面具有微表面信息的例如粗糙的带有颗粒的塑料这一类材质,给一些简单的法线效果叠加上去。

要记住,反射贴图中的值只有在材质发生实际变化时才会改变。

能来点干货吗?

在我看来,尽管某些事情变得容易了一点 (比如可以选择反射率值),但这并不意味着你可以仅仅依靠这些。获得真实可信的材质,关键仍然是观察,并且能够将你所看到的转化为最终的纹理且令人信服。

References参考文献
Sebastien Lagarde’s Adopting a physically based shading model
Sébastien Lagarde’s summary of Rendering Remember Me
Slideshow of Real Shading in Unreal Engine 4
Mike Seymour’s Monsters University: rendering physically based monsters

原文链接:https://marmoset.co/posts/physically-based-rendering-and-you-can-too/

- End -

路过

雷人

握手

鲜花

鸡蛋

最新评论

相关分类
热门教程
返回顶部
客服