PBR概述
(学不太懂,先简略地记着,试图理解)
PBR,即基于物理的渲染(Physically Based Rendering),它指的是一些在不同程度上都基于与现实世界的物理原理更相符的基本理论所构成的渲染技术的集合。
由于它与物理性质非常接近,因此我们(尤其是美术师们)可以直接以物理参数为依据来编写表面材质,而不必依靠粗劣的修改与调整来让光照效果看上去正常。
因为是基于物理参数编写的,所以不论光照条件如何,这些材质看上去都会是正确的。
判断一种PBR光照模型是否是基于物理的,必须满足以下三个条件:
- 基于微平面(Microfacet)的表面模型。
- 能量守恒。
- 应用基于物理的BRDF。
微平面理论(Microfacet Theory)
微平面理论是将物体表面建模成做无数微观尺度上有随机朝向的理想镜面反射的小平面(microfacet)的理论。
方法:粗糙度贴图、高光度贴图。
在微观尺度下,没有任何平面是完全光滑的,可以假设一个粗糙度(Roughness)参数,然后用统计学的方法来概略的估算微平面的粗糙程度。
我们可以基于一个平面的粗糙度来计算出某个向量(光线向量和视线向量之间的中间向量)的方向与微平面平均取向方向一致的概率。
微平面的取向方向与中间向量的方向越是一致,镜面反射的效果就越是强烈越是锐利。
出于着色的目的,我们通常会去用统计方法处理这种微观几何现象,并将表面视为在每个点处在多个方向上反射(和折射)光。
从宏观上看,非光学平面可以被视为在多个方向上反射(和折射)光:
反射的光懂得的都懂,这里讨论一下折射的光:
对于金属,折射光会立刻被吸收 - 能量被自由电子立即吸收。
对于非金属(也称为电介质或绝缘体),一旦光在其内部折射,就表现为常规的参与介质,表现出吸收和散射两种行为。
能量守恒(Energy Conservation)
微平面近似法使用了这样一种形式的能量守恒(Energy Conservation):出射光线的能量永远不能超过入射光线的能量(发光面除外)。
为了遵守能量守恒定律,我们需要对漫反射光和镜面反射光之间做出明确的区分:入射光线的能量 >= 反射光+折射光
反射率方程(The Reflectance Equation)
辐射度量学(Radiometry)
重要的单位:
- 辐射率(Radiance):又名光亮度,符号L,表示单位立体角、单位投影面积上的辐射通量。
- 辐照度(Irradiance):符号E,表示单位面积上的辐射通量。
辐射率和辐照度的区别:
一个微小平面,往四面八方吸收光能,其中某个方向吸收到的光能即辐射率(Radiance),该平面吸收的所有光能即辐照度(Irradiance),因此:
Irradiance,等于所有radiance的积分。
反射率方程
反射率方程即,一个拥有辐射强度的光源在单位面积,单位立体角上的辐射出的总能量。
半球积分部分:表示多光源下光照的叠加。
lightDir • normal:辐射率受入射光线与平面法线间的夹角的余弦值的影响,如果将镜面反射系数设定为0,漫反射系数设定为1,公式就和单纯的Lambert漫反射基本一致。
镜面反射部分:叫做Cook-Torrance的BRDF光照公式。(见BRDF)
Cook-Torrance BRDF
BRDF即双向反射分布函数,它接受入射(光)方向,出射(观察)方向,平面法线以及一个用来表示微平面粗糙程度的参数作为函数的输入参数。
BRDF可以近似的求出每束光线对一个给定了材质属性的平面上最终反射出来的光线所作出的贡献程度。
BRDF基于我们之前所探讨过的微平面理论来近似的求得材质的反射与折射属性。
(严格上来说,同样采用和作为输入参数的 Blinn-Phong光照模型也被认为是一个BRDF。然而由于Blinn-Phong模型并没有遵循能量守恒定律)
Cook-Torrance BRDF的镜面反射部分包含三个函数,此外分母部分还有一个标准化因子。字母D,F与G分别代表着一种类型的函数,各个函数分别用来近似的计算出表面反射特性的一个特定部分。
三个函数分别为:
法线分布函数(Normal Distribution Function)
菲涅尔方程(Fresnel Rquation)
几何函数(Geometry Function)
正态分布函数 Normal Distribution Function
(参数:normal,viewDir,lightDir,粗糙度)
法线分布函数,或者说镜面分布,从统计学上近似的表示了与某些(中间)向量取向一致的微平面的比率。
举例来说,假设给定向量,如果我们的微平面中有35%与向量取向一致,则法线分布函数或者说NDF将会返回0.35。
简单来说,描述这么多个微平面中,有多少个微平面的法线是正确朝向的,返回一个比例,代表了镜面高光部分。
菲涅尔方程 Fresnel equation
(参数:normal,viewDir,金属度)
菲涅尔方程以前一般是用在水体上的,因为水体粗糙度低反光能力强,却又不是金属,是菲涅尔效应最明显的现实物体。
法线和视线夹角越大(视线越接近水平),F的值也就越大,反射光的亮度也越高。
几何遮蔽 几何函数 Geometry function
(参数:normal,viewDir,lightDir,粗糙度)
表示微平面自成阴影的属性,返回一个未被遮蔽的表面的百分比,代表了几何遮蔽部分。
分母
校正因子,作为微观几何局部空间和宏观几何局部空间变换的校正。
IBL(Image-Based Lighting 基于纹理的光照)
待续…
补充
漫反射和次表面散射本质相同
漫反射和次表面散射其实是相同物理现象,本质都是折射光的次表面散射的结果。
唯一的区别是相对于观察尺度的散射距离:
像素 > 散射距离:漫反射
像素 < 散射距离:次表面散射