留个坑

前言

偶然看到一篇关于菲涅尔效应的介绍,开始的时候只想写一下菲涅尔的东西,结果发现PBR的贴图流程中也有菲涅尔的踪影,就转而想写一篇关于PBR本质的一点东西,不过深层次的知识还是有点难以理解,另外使用的时候即使不了解背后的知识也是没问题的,就这样搁置了很久。了解了更多的资料后,还是决定记录一下防止遗忘,感觉相关的技术都很有意思能写好多篇了。这里先写关于PBR技术的大概情况,这里权当记录自己的理解随便写点东西,如果有错误的地方请不吝赐教;

PBR简介

PBR(Physically Based Rendering)有些地方也叫PBS(Physically Based Shading)是一种基于物理的渲染技术,能够更准确的描述光在物体上的传播过程,从而使渲染的图像更加写实。在早期是应用于影视上的技术,不过得力于硬件基础算力的提高,近年来也逐渐的普及到游戏中,为游戏提供更好的质感,得到更为出色的画面表现。 说白了就是一种渲染技术,只不过更加写实自然。

PBR的主要特性

这一部分是摘录混合理解来写的,简述了PBR里面有什么东西。但是比较基本并不会深入,不过了解了之后对PBR的理解会更深刻

微表面理论(Microfacet Theory)

在宏观世界中我们可以观察到物体表面的划痕,凹槽,裂缝等微小细节,这些细节都可以用法线贴图来表示。但是在人眼无法直接观察到的微观层面上,也有许多细节特征(如下图)。这些特征小到无法在法线贴图中表示,却可以影响光的漫射(diffusion)与反射(reflection),因此人们引入了表面粗糙度的概念。值得注意的是,想要精准的描述微表面特征很难,不过描述大概的微表面特征,我们就可以编写出相当准确的着色器。 微表面 微表面特征或者表面粗糙度,在不同的流程中有不同的叫法,比如粗糙度(roughness),光滑度(smoothness),光泽度(glossiness)或者微表面(microsurface),但是它们描述的本质都是相同的,都是对物体粗糙度的度量。

镜面反射、漫反射和折射(Specular Reflection, Diffuse Reflection and Refraction)

这个倒是很好理解,初高中都会有的知识,下图就已经描述的很清晰了(这张图是改的文末链接中八猴教程里的那张图,加了个折射( ̄▽ ̄)”)。 镜面反射、漫反射、折射 不过姑且还是复习一下,再延申一点书上没有的(可能)概念。镜面反射是指若反射面比较光滑,当平行入射的光线射到这个反射面时,仍会平行地向一个方向反射出来。然而,大多数物体表面是不规则的,并且光线的反射方向依据物体表面的粗糙度随机变化,射向不同的方向,这种反射方式就叫做为漫反射。 另外当环境的总光量保持不变。粗糙的物体表面具有更大的高光斑点,并且看起来更暗。光滑的表面,反射特征更接近镜面,会完全反射周围环境。不过,这两种情况下都反射了相同的总光量。 镜面反射、漫反射对比 折射是光线方向的变化。当光从一种介质移动到另一种介质时,它会改变速度和方向。的折射率,或IOR,是描述在光线行进的方向上的变化的光学测定。基本上,IOR值用于确定光线在通过一种介质到另一种介质时会弯曲多少。例如,水的IOR为1.33,而平板玻璃的IOR为1.52。在图05中,您可以看到放在一杯水中的稻草的渲染。当光线穿过不同的介质(空气,水和玻璃)时,吸管会因折射而弯曲。 图05:由于折射,吸管看起来弯曲 漫反射是被折射的光。光线从一种介质传递到另一种介质; 作为我们的例子,我们假设它进入一个对象。然后在该物体内多次散射光。它最终再次从物体中折射出来,在最初进入的大致相同的位置回到原始介质(图06)。 漫射材料具有吸收性。如果折射光在这种材料中传播太长时间,它可能被完全吸收。如果光线确实从这种材料中射出,它可能距离入口点只有很短的距离。 因此,入口和出口点之间的距离可以忽略不计。Lambertian模型用于传统着色感中的漫反射,不考虑表面粗糙度。然而,其他漫反射模型,例如Oren-Nayar模型,确实解释了这种粗糙度。 具有高散射和低吸收的材料有时被称为参与介质或半透明材料。这些的例子是烟,牛奶,皮,玉和大理石。通过对次表面散射的附加建模,后三者的渲染是可能的,其中光线的入射点和出射点之间的差异不再被认为是可忽略的。准确渲染具有高度变化和极低散射和吸收的介质,例如烟雾或雾,可能需要更昂贵的方法,例如蒙特卡罗模拟。

吸收和散射(透明度和半透明度)

Absorption and Scattering (Transparency and Translucency)

导体和绝缘体(金属与非金属性)

Conductors and Insulators (Metals and Non-Metals)

金属

非金属

能量守恒

Energy Conservation

菲涅尔效应

Fresnel Effect

BRDF

线性空间渲染

Linear Space Rendering

PBR的相关贴图

PBR的两种工作流

metal/roughness

specular/glossiness

公开的主流引擎虚幻4与Unity中的PBR着色工作流虽然有一些差异但是基本都是一致的;

Last

如果你想了解更多的PBR细节,那么我推荐阅读: substance的PBR指南: - THE PBR GUIDE - PART 1 - THE PBR GUIDE - PART 2 八猴渲染器的PBR教程: - BASIC THEORY OF PHYSICALLY-BASED RENDERING - PHYSICALLY-BASED RENDERING, AND YOU CAN TOO! 大部分内容收集自网络


仅此而已的地方