
在本文中,我将简要介绍一下PBR,PBR是一种基于物理原理的渲染概念。 PBR用于现代计算机图形学中,我们将讨论它是什么以及它是如何准备的,以及对于准备或已经在处理材料准备工作的人员来说值得了解的重要事项。 重点更多地转移到游戏和游戏引擎上,这些概念现在已得到广泛使用。
在继续讲细节之前,先说几句“遮盖后方”。
每个引擎和渲染器都有自己的开发管道,该开发管道通常是唯一的,就像雪花一样,并且不会与其他管道完全相交。 除其他外,这是由于PBR是一个相对较年轻的方法,我们可以说我们看到的是第一代此类引擎,标准才刚刚开始出现,因此在不同的实现方式中存在差异和细微差别。 而且,因为策略路由不是严格的要求集,而是总体发展方向。
在撰写本文时,我依靠自己的经验以及有关多个软件包的理论:虚幻引擎4,Marmoset工具包3,Substance Painter。 因此,其他软件包中的某些东西看起来会有所不同,但总的来说,该理论是通用的。
我将更详细地描述最重要的事情,最后,根据残差原理,我会提到在PBR中使用了它,但在设备中没有那么重要或棘手。
我故意以非翻译形式使用这些术语,因为最新,最完整的信息来源始终是英文,而且如果有人坐下来等待翻译,他会自动进入那些落后并依赖他的语言。 我认为,立即记住该行业中使用的术语是正确的。 和谷歌,当然。
该材料是在Maya3D Telegram社区的参与下编写的。
关于基础
首先,让我们更深入地探讨这个故事。 经验表明,最好立即解释术语和基本概念的含义,但是,如果您已经知道它们,则可以安全地跳过此部分。
此外,您会注意到PBR可以从任何地方借用术语,可以对其进行一些更改,这很好。
PBR是基于物理的渲染的缩写,大致表示物理上正确的可视化 ,并且这些词不言而喻。 有时使用PBS一词(此处将渲染更改为shader ),在某些地方甚至出现PBT(并在此处显示纹理 )。 但是,差异很小-这是传统问题,传统上使用PBR一词的频率更高。
从实时和游戏到所谓的离线渲染,最近几年一直是现代渲染系统的主流。 这个名字暗示着一定要遵守物理定律,现实世界的定律,并且正如人们所告诉我们的那样:这不是事实。 让我们弄清楚它是如何,如何变成的,以及它们如何侧面出现。
从她生命的一开始,就在三维图形中采用了多种在屏幕上显示的方法,直到可以清楚地再现出现实的机制可以给出更真实的结果为止。
角色的骨骼动画大约发生了相同的故事,这些动画“掩埋”了顶点。
如果我们对现实建模,那么让我们使用它的定律和体系结构,自动化常数并将部分工作转移到软件上。 渲染器越来越努力地以现实生活的方式工作,每一代铁匠都引入了新的方法来允许您放弃假货。
脱机渲染是不能实时工作的渲染,例如Vray或Arnold。
出于某种原因,它可能会缩小幻想的范围并切断风格化的芽,但这可能就是事实。
另一方面,花招和假货正在发展到一个新的水平,这也在进步。
在我们周围的现实世界中,电磁场是相互作用的基础,其相互作用程度要高于原子且低于行星。 多亏了他,我们可以看到并触摸到的所有东西。 人是一个不完美的人,我们看不到电磁频谱的最大部分,但是有了它,我们凭借着理解就可以使用很多微妙之处。 我们周围看到的一切都是光和奇想。 入门不错,最重要的是显而易见,对吧?
绝大多数人是三色盲,但是只有一小部分的四色突变体可以区分更多的阴影并看到世界更加多样化。 这些妇女更多。
在PBR中,光变得比以前更不常见。 鉴于材料的特性,BxDF不仅描述了它如何到达表面,还描述了它如何从表面反射。 这使您可以更准确地描述场景并传达结果,并尽可能接近现实。
PBR带来的关键变化之一是任何照明材料的多功能性。 正确配置的材料在任何场景下始终看起来正确。
在上一代效果图中,未考虑微表面和火炬的性质,导体/绝缘体的材料类型; 漫反射产生部分阴影,甚至涂上眩光; 没有来自现实世界的反思价值; 这些材料对于任何场景和照明都不是通用的。
关于物质
有两种类型:
- 导体或金属导体 ;
- 绝缘体或电介质,即非金属- 绝缘体 。
分类取自现实世界(经过简化),并尝试沿用该名称。
导体传导电流,具有晶格和其他来自学校物理课程的“乐趣”。 它们没有漫反射和表面下的散射,它们的表面不会散射光,它不能透过,而是吸收一部分光,反射特定长度的波-彩色眩光。
但是,电流对于PBR并不重要。 皮肤也可以传导电流,但在PBR中,它不是金属,这意味着它不是导体。
绝缘体会散射光;光会穿透它们的表面; 它们具有漫反射和地下散射,并带有白光眩光。
两种材料都具有菲涅耳效应。
关于管道
传统上,我们有两条用于物料及其制备的管道: 高 光和金属 。 通常,可以理解的是,在镜面反射中有相应的镜像图,而在金属性中则没有,但是有金属性掩模,可以做到这一点。
当然,这里的一切并不是那么简单。
镜面反射管道实际上具有镜面反射贴图,该贴图控制F0上光泽度的强度和颜色,其值完全在艺术家手中,并且在着色器中没有内置常数。 菲涅耳有时被单独控制, 反照率仅控制颜色, 光泽/粗糙度控制反射的性质,这里的一切都很简单。
金属性没有单独的光泽强度图;这些值被缝入着色器中,介电层的范围在2%至5%之间,导体在70%至100%之间。 卡片之间的关系略高:卡片的反照率 , 金属 度和粗糙度会 总体影响镜面反射的颜色,强度和性质。 该管道中的卡较少,并且考虑到将灰度卡包装在一个RGB中的可能性,此类材料占用的系统内存更少。
考虑到效率和更高的自动化程度,现代渲染的选择几乎完全取决于金属性 ,因为此类着色器需要正确的菲涅尔计算。 尽管“ 镜面反射”提供了更多控制,但此控制通常是多余的,并且花费更多的时间和精力获得相似的结果。 因此,我们通常将专门讨论金属性管道。

差异管道和地图。 Wes McDermott和Allegorithmic。
关于BRDF和GGX
BxDF变化与上一代产品之间的PBR差异的基础。 BxDF是双向X分布函数 ,大致听起来像是两束X射线能力函数 。 该功能家族具有多种功能:至少是反射率 , 透射 率和散射 -反射,透射率和色散(在专业文献中,艺术家更经常使用BRDF版本)。
这些功能描述了光束与表面相互作用时的行为:光束如何散射(即,穿透上层并返回),如何镜像或穿过透明材料。
在我们的历史中,BxDF与微面理论密切相关, 微面理论也有很多实现,通常以作者的名字命名:库克-托伦斯(Cook-Torrance),阿什赫明-希尔(Ashikhmin-Shirley),GGX等。 GGX只是微面理论 ( 微面理论)的一种实现,几乎在任何地方都使用。 它提供了微表面的简化模型,该模型与BxDF结合在一起,可模拟所有相互作用类型对光的反应。
构面也可以翻译为“面”,这也很有意义。 用简化的理论来说,表面是小脸的集合。
GGX根本不会被解密,字母集是从公式中使用的变量中提取的(或者姓氏杂乱无章,故事被隐藏了)。 艺术家可以在“ 粗糙度/光泽度”参数设置中看到该术语。
例如,G之一是双向阴影遮罩功能,即两光束自阴影/遮罩功能。

微表面及其对镜面反射的影响。 Wes McDermott和Allegorithmic。
节约能源
节能也是PBR的基本常数之一,它意味着表面返回的光不能超过接收到的光。 尤其是反照率和镜面反射相加,如果镜面反射更亮, 反照率就不太亮,反之亦然。 通常,这是引擎中的自动化操作,有时可以在Marmoset Toolbag中将其打开和关闭。
关于菲涅尔
十九世纪的法国物理学家奥古斯丁·让·菲涅尔(Augustin-Jean Fresnel)是光波理论和其他凉爽事物的堆积理论的创造者,他描述了名称本身的作用,其原因在于从表面反射的光的水平直接取决于与该表面的视角。 在一个直角(即F0)处 ,我们获得了材质可用的镜面反射光的最低水平。 角度越大,我们将捕获的光线越多,接近100%。
根据这种效果,任何材料都具有眩光,原则上,所有事物都会发光,您只需要找到合适的角度即可。
一般而言,当谈到光泽度时,我们总是指F0上的光泽度-这是艺术家通过反照率/粗糙度/金属度来控制的 。

菲涅耳效应的示意图。 Wes McDermott和Allegorithmic。
关于漫反射
反照率。 漫射 基本颜色。

漫反射中的交互方案。 Wes McDermott和Allegorithmic。
这是一种光,它掉落在表面上并被部分吸收,并被部分反射,在上层随机散射,并向观察者返回同一表面的颜色。 有时在这种情况下,他们说它是用表面的颜色绘制的,但是我们在谈论物理正确性,因此值得重复一遍-光不会弄脏,光谱中未被吸收和丢失的部分会返回给我们。 在现实世界中,表面吸收的可见光部分会转化为热能,在PBR中也可以考虑这一点,但是这在很大程度上取决于所使用的着色器,在这种情况下是次要的。

吸收光并仅返回非吸收波的观察者。 Wes McDermott和Allegorithmic。
材料在漫反射过程中的行为由反照率贴图, 基色或什至在某些地方漫反射确定。 这些名称的差异源于传统和发动机开发流程的不同,但每个地方的行为都是相同的-在任何情况下都应该如此。 颜色应在反照率图上捕获,与相机表面成直角且100%白色照明时的外观。 没有阴影,半影,眩光和所有未压缩到“纯色”的定义。 这是当前PBR中的漫反射与上一代渲染器之间的主要区别,在该渲染器中也使用术语“ 漫反射” ,但方式略有不同。
例如,带有偏振滤光镜的物体的照片在直接照明下捕获其反照率 。 偏振消除眩光。
似乎没有什么可说的关于颜色的了,但是仍然有一些微妙之处。
漫反射贴图会影响纯金属管道中纯金属的渲染,从而将高光污染相应的颜色。 此外, 反照率图直接影响金属的镜面反射率 ,使您可以结合金属性卡来改变它。 这是一个非常棘手的设计,但通常看起来像这样:当我们制造绝缘子的材料时,我们绘制了一个黑色的金属掩膜,并且着色器为4%的F0分配了光泽。 当我们将金属性过渡到白色(即纯金属)时, 反照率图中的亮度会影响其亮度强度。 反照率中的颜色越亮,亮度越强,接近100%的值。 我们无法控制绝缘子的光泽度。 假设2-4%的差异不严格,并且可以通过粗糙度掩盖,或者在必要和可能的情况下通过镜面反射率进行微调。
结合UE4着色器,Marmoset Toolbag和Substance产品描述了此示例。 但总的来说,它在任何地方都有效。
表面色彩的艺术效果不可低估。 通常,这会引起艺术家的注意,他们将黑色塑料黑色制成“栩栩如生”。 但是实际上通常没有整体式的颜色,并且材料中几乎总是存在颜色变化,必须对此加以理解和使用。
漫反射是用RGB卡描述的,或者用引擎来描述,通过Vector3的数组来描述,这在逻辑上是我们谈论的颜色。
PBR验证
由于PBR追求真实的参数和特性,因此应验证反照率亮度的值并将其减小到真实值的范围,但对于介电质,它们不能低于30-50 sRGB且不能高于240。 对于纯金属,240的值可以增加到255,因为这不是漫反射的值,而是镜面反射率的值。
但是,这里当然有一些微妙之处。
例如,普通世界中最黑暗的物质之一是煤。 反照率的亮度值(转换为sRGB)为50,这接近PBR可以为电介质提供的最小值的边界。 下面的值太暗,在不同的照明条件下可能看起来不正确。
不久前,一些人拉紧并创造出一种材料,该材料吸收了99%的光,看起来像是太空中的黑洞。
为什么这很重要?
因为漫反射和镜面反射是成对工作的。 反照率值太暗会影响反照率本身与镜面反射率之间的差异,并且艺术家将不得不“扭曲”光线以使F0上的眩光和漫反射正常化,这将使整个场景过度曝光,并且这些材质最终将变得通用并且仅适用于特定场景。照明。
为什么这没关系?
因为这取决于组成。 如果呈现了单独模型的表示,并且场景中没有全局照明和反射反射,但是有HDR照明,则通常可以将值设置为30-50 sRGB之外。 还有一个半神话般的野兽“手工艺品”。 他说:“更重要的不是身体的正确性,而是知觉。” 在这里,有时甚至有必要违反难以确立的法律。
关于违反PBR法律和匹配现实的可容许性,这是一个备受争议的问题。 它在某个地方起作用,而在某个地方则必须保持所有标准。 示例和讨论超出了本文的范围。
总的来说,保持反照率亮度极限仍然取决于艺术家或其艺术领导者的良心,并且目前存在于PBR中的大部分作品都无法通过该下限的验证,这并不妨碍他们以无经验的方式定性和正确。 仅当您检查值并将其拉低到下限,或者将单独执行的模型放置在具有正确照明的场景中时,差异才可见。
但是,即使我们不理会验证,也不要将0 sRGB的纯黑色用于电介质。
引擎和编辑器中的各种工具都提供了PBR验证。 例如,在Substance Painter中,有一个过滤器在整个层堆栈上工作,检查值。

Substance Painter中的PBR验证。 Wes McDermott和Allegorithmic。

绘制某些材料的强度值图表。 数据取自塞巴斯蒂安·拉加德(SébastienLagarde)和DONTDNOD。
关于镜面反射
镜面反射率
镜面反射是拉丁词,翻译为“镜子”。

镜面反射中光相互作用的方案。 Wes McDermott和Allegorithmic。
这是指根据入射角定律从表面反射并完全返回给观察者的光束的一部分。 镜面反射或镜面反射是眩光,它与微表面的特性密切相关。 在两个管道中都可以找到它,但是在镜面反射管道中可以直接控制它,而金属性可以间接地控制它。
事实是,直接控制亮度是一件很邪恶的事情。 我们记得导体和绝缘子,但很少有艺术家在没有摆桌子的情况下会记住确切的强度值,而且宝石形式也有例外。 可以使用此着色器设置,很容易摆脱星体平面某处的物理正确值,打破整个视觉范围,甚至在我们的肩膀上准备材料,而视频卡的内存是另一张卡。
此外,真实值的测量适合一个小型框架,该框架可以自动化,这是他们在金属性方面所做的事情 ,他们选择了直接控制并且也需要考虑这一点。
在镜面反射管线中, 镜面反射参数由灰度映射控制,其值为0-255,线性颜色或标量参数。
标量参数是为投影到模型上的二维空间设置的值。 换句话说,当您在Marmoset中移动滑块以进行镜面反射时,这是标量参数。
在金属管线中,通常无法通过镜面反射参数直接控制亮度强度。 F0: 4-5% 80-100% , . , roughness albedo .
Cavity
specular reflectance , , , , , . , , . cavity ; , . UE4, , specular , , , specular , , cavity 0-4%. Substance- . , . .


cavity specular reflectance. . cavity , . Marmoset Toolbag 3
Metalness
PBR , - . , — - . 2-5% , — 70-100%, .
, , , , , - metalness . , . , UE4 Unity. ( « ») — : texel density .
/ specular-, , .

/. Wes McDermott Allegorithmic.
PBR, . , , - , , . specular - RGB- specular , , metalness albedo . , metalness , , , , . .
, — , . , , .
, . albedo , , Substance Painter, , . , : albedo .
- 0-255 .
Roughness. Glossiness. Smoothness.
, , , . , , , . PBR microfacet theory BRDF, , roughness , gloss , smoothness -.
— roughness . .
, roughness — , , — , , , . gloss .
specular ( metalness ), . , , , , .
Roughness , , , — , , .
grayscale- 0-255, .

Roughness- . Wes McDermott Allegorithmic.
Normal bump
, , . — , , .
, .
: vertex normal face normal , , . , hard edges .
, Zbrush , . , .
hard/soft edges , , hard edges - . UV, . PBR , -.
. . «», — , 3+n . face . Face normal — .
, 3+n .
, , . , «» . , , . , , ( tangent space , ) ( object space , ) , , .
( bump ) , , . , — normal bump bump. — . , bump , , . , , Mikk, ( Y, ).
Normal bump PBR-, , — , . , . , . , « »; , , . Rockstar RAGE — GTAIV/V, RDR1/2, Star Citizen CryEngine/Lambeyard. , , , , .
PBR .
Subsurface scattering, SSS.
, , : , . , , , .
, SSS, , : ( ) RGB-. .

SSS. .
Translucency
, SSS, . Translucency — , . Translucency - .

: , . .
Ambient occlusion
ambient occlusion — , . , . AO — , . cavity PBR-, . PBR- , . AO, . , SSAO ( screen space ambient occlusion ), HBAO ( horizon based ambient occlusion ) , . , — deferred rendering .
, - PBR , , roughness , .

, , . : https://www.gamingscan.com/what-is-ambient-occlusion/
, RTX GI , .
, , .
GGX ,
PBR Allegorithmic:
https://academy.substance3d.com/courses/the-pbr-guide-part-1
https://academy.substance3d.com/courses/the-pbr-guide-part-2
Marmoset
Filament
PBR 3dCoat
UE4
(Sébastien Lagarde)
, , Frostbite
Unity
, zhovner .