Back
Featured image of post PBR基础理论

PBR基础理论

介绍 PBR 模型的基本理论。

技美——PBR 基础理论

PBR 全称 Physically Based Rendering,这是一个全新的,效果出众的光照模型,是近年来实时渲染领域的趋势。

Diffusion & Reflection

Diffusion 和 Reflection 也被叫做 “diffuse” “specular”,分别描述了物体表面和光的最基本的相互作用。绿色箭头部分的光是 specular,产生完美的反射现象,这种行为跟一个球碰撞到地面发生弹射的行为一样。红色箭头部分的光是 diffuse,会进入物体内部,这部分光要不被物体吸收(通常转化为热能),要不在物体内部散射,其中一部分会从物体表面散射出来而被重新看到。这种现象称为 “漫反射” 或更复杂一点的 “次表面散射”。

漫反射
漫反射

吸收或散射根据物体表面颜色不同而不同(比如,如果物体表面呈现蓝色,表示的是物体表面吸收蓝色以外所有的光,散射出蓝色波长的光)。通常散射方向具有相当的随机性,我们可以认为散射的方向是任何方向。通常着色程序用一个颜色变量称为 “albedo” 或 “diffuse color” 来近似描述物体表面散射颜色。

1. 不会进入物体部分的光经物体表面反射会形成高光区域 “specular”,依光源颜色决定,一般为白色。

2. 进入物体部分的光会进一步在物体内部发生发射现象,出射方向是随机的,出射光 “diffuse color”,依物体属性决定

Translucency & Transparency

某些材质的漫反射要复杂一些——比如那些具有很长散射距离的材质:皮肤、蜡等的散射,通常一个简单的颜色变量是不够的,着色系统还需要考虑这些被照射物体的形状和厚度,如果物体足够薄,可以看到光从其背后散射出来,物体呈现半透明状;如果漫反射非常的小——比如玻璃,几乎没法注意到散射现象,光线完整的从物体的一边穿透到另一边,物体呈现全透明状。不同物体的次表面散射不尽相同,通常需要专门的“次表面散射”着色模型去模拟它。

当物体漫反射非常的小,diffusion 会穿过物体,呈透明状

Energy Conservation

根据上面的描述我们得到一个结论:漫反射和镜面反射是互斥的。这是因为被物体散射的光线必须进入物体表面(那它就不能被镜面反射了)。这个结论符合“能量守恒”,也就是说离开表面的光不可能比原始的入射光要亮。着色系统很容易做到这一点:假设1表示100%光能,用1减去镜面反射的光,剩下的就属于漫反射部分。这意味着强烈高光的物体几乎没有漫反射现象,原因就是没有光进入到物体表面,大部分被镜面反射了。反之亦然。

能量守恒定律
能量守恒定律

能量守恒是PBR的一个重要概念。它可以保证美术合适的设置材质的反射率和albedo值,而不破坏物理规则。虽然在着色系统中强制能量守恒的物理限制并不等价于最后好看的着色效果,但起码可以使得渲染效果不至于背离物理规则太远,保证在不同光照条件下物体的光照表现一致性。

Metals

金属作为最常见导电材质,有几点特性值得被特殊提及。 首先,金属大多比绝缘体更容易发生镜面反射。导体一般的镜面反射率高达60-90%,而绝缘体一般在0-20%的范围。这种高反射率阻止了大部分光到达其内部产生散射,使得金属看起来很闪亮。 其次,导体的反射率在可见光谱中呈现多样变化,使得它们的反射光具有颜色(白光照射下)。反射光具有颜色很奇怪,但确实在我们日常的材质中出现(比如,金、铜和黄铜)。绝缘体大部分情况下不会呈现出这种效果,它们的反射光的颜色是一般跟光源颜色一致。 最后,导体通常对进入其表面的光是吸收而不是散射。这意味着理论上导体不会表现出任何的漫反射,但实际中由于金属表面氧化等原因,还是会表现出部分散射效果。根据金属的这些特性呢,PBR着色系统用“metalness”作为输入来表示材料的金属程度,而不是albedo & reflectivity。

Metals 属性,其反射光具有颜色

Fresnel

Fresnel 现象是光照反射现象中不可或缺的部分。计算机图形学中 Fresnel 用来定义不同角度下的不同反射率——入射光方向越平行于物体表面,反射率越高。这意味着物体表面在 Fresnel 效果作用下,物体的边缘会更亮。大部分人可能已经对 Fresnel 效果已经有所了解,并且 Fresnel 效果在计算机图形中也不是新东西,然而,PBR 对 Fresnel 估算公式做了一些重要的纠正。 首先,入射光方向接近平行于物体表面时,一切光滑物体边缘表现为完美镜面反射,只要它足够光滑并且在合适的观察角度(也接近平行于物体表面)下,任何材质物体都表现为完美镜面反射。这有点违反直觉,但物理现象就是如此。 其次对 Fresnel 属性的观察发现不同材质的随入射光角度变化得到的 Fresnel 变化曲线和梯度差异并不大。对我们来讲意味着:如果我们期望渲染更加真实,美术对 Fresnel 行为的控制应该被降低,而不是被放大,或者说,没必要暴露多余的 Fresnel 参数让美术去调节。少了参数控制,就简化了美术内容生成,这是个利好。PBR 光照模型根据光泽度和反射率就可以自动去计算合适的 Fresnel 效果。

菲涅尔效应
菲涅尔效应

Fresnel 效果会随着物体表面的光滑度变低快速的变弱,接下来的内容会介绍到这些。

入射光方向越平行于物体表面,反射率越高,越亮。

Microsurface

散射和反射都依赖物体表面的朝向。宏观上来看,物体表面朝向由物体的网格形状决定,或者是网格的法线贴图决定。渲染系统根据法线信息已经可以很好的渲染散射和反射。但是真实世界的表面在微观世界是不完美的:小坑,小裂缝和小块,这些不容易被肉眼看到的微观世界下的表面特性对散射和反射仍产生巨大影响。

模糊效果
模糊效果

上图中,平行的入射光线被粗糙的表面分散反射。因为光线发生碰撞的微表面的朝向各不相同,就像把球扔向凹凸不平的地面一样,球的弹射方向是不可预测的。简短的说,表面越粗糙,放射的光线越分散,呈现出“模糊”状。不过对每一个微表面进行反射估值在实时渲染计算中是不现实的,所以我们不直接描述微表面细节,而是通过一个粗糙度的概念和一个相当精确的光照模型得到接近的结果,这个通用的粗糙度叫做是 “Gloss”, “Smoothness” 或 “Roughness”。在材质中可以是一张贴图或一个固定值。材质中的微表面细节是非常重要的属性,它用来模拟真实世界中的各种微表面特征。光泽度贴图不是一个新概念,但是它在基于物理的着色中占有关键的地位,因为它对光的反射效果有决定性的影响。接下来我们将会看到。

粗糙度,物体表面的凹凸程度

Energy Conservation (Again)

假设我们的着色系统已经考虑了微表面细节,反射多少入射光才是合适的是个值得研究的课题。光滑的表面会比粗糙的表面得到更加清楚的高光,这是符合能量守恒物理定律的:不同的材质反射了相同量级的入射光,但粗糙的表面反射的光线更加分散,看起来更模糊更暗,而光滑的表面反射更加集中,看起来更清晰更亮。

反射率
反射率

All Hail Microsurface

基于上面的认识我们得到一个结论:物体微表面光泽度(粗糙度)直接影响了表面的光照表现。这意味着美术人员只用通过调整光泽贴图的形状和强度就可得到物体表面的划痕、凹痕、磨损或抛光等效果,而不额外需要高光遮罩贴图或反射率这些参数设置。

微表面细节和反射率在物理上是相互联系的,就像之前描述的散射和反射一样,抛开它们之间的联系而单独分离的去设置它们有可能违背背后的光学物理规则。

还有,对真实世界观察发现,材质之间的反射率的差异并不明显,比如水坑和泥巴,它们有非常相近的反射率,但泥巴非常粗糙,而水坑非常光滑,它们呈现出截然不同的反射表现。美术人员在创建这样的场景应该选择光泽度(粗糙度)而不是反射率来做为主要的材质差异设置项,见下图:

微表面细节
微表面细节

微表面属性对其他一些效果也有略微影响。比如,Fresnel效果在粗糙表面上会变弱,还有,大或凹微表面会“捕获”更多的光线,导致光在表面出线多次反射,从而被吸收的光量增加,亮度降低。不同的PBR系统处理这些细节的方式可能有些不同,最后呈现的结果也可能有些许不同,但总体还是遵守能量守恒的。

总结

  1. Reflection,反射光颜色为光源颜色。
  2. Diffuse Color,散射光部分里,物体吸收除开 Diffuse Color 颜色之外的所有光,散射出 Diffuse Color 颜色的光。
  3. Translucency & Transparency,考虑到物体的形状和厚度,如果物体足够薄,可以看到光从其背后散射出来,物体呈现半透明状;如果漫反射非常的小——比如玻璃,几乎没法注意到散射现象,光线完整的从物体的一边穿透到另一边,物体呈现全透明状。
  4. Metals,反射光具有颜色,不受光源颜色左右,材料的金属程度。
  5. Fresnel,入射光方向越平行于物体表面,反射率越高,越亮。
  6. Microsurface,物体的光泽度。

原文连接:

外文:https://marmoset.co/posts/basic-theory-of-physically-based-rendering/

翻译:https://zhuanlan.zhihu.com/p/49564527