PBR概论

来源:互联网 发布:linux apache链接php7 编辑:程序博客网 时间:2024/06/04 19:50

基于物理的渲染(PBR)是一系列渲染技术的总称,他们或多或少都基于物理世界的理论。相对与传统渲染管线,PBR的材质使用基于物理的参数,使得无论在什么光照情况下,材质的颜色都趋于物理正确。PBR的光照模型一般来说要满足以下3个条件:基于微表面模型;能量守恒;使用基于物理的BRDF。

微表面模型

所有的PBR技术都是基于微表面理论的。微表面理论认为,任何表面在微观尺度上都是由非常小的完美的镜面组成的。根据表面粗糙度的情况,微表面的朝向分布会有很大的不同。微表面图片
表面越粗糙,微表面的朝向分布差异越大,当一束光照射到表面的时候,反射的高光可能朝向不同的方向,导致高光的范围变大,亮度降低;相反在光滑的平面上,高光的方向尽可能的接近,高光的范围变小,亮度较大。高光朝向

能量守恒

能量守恒的原则是:反射光的能量应该比入射的能量要小。当一束光入射到表面的时候,分离成反射折射两个部分。反射部分不进入物体内部,直接被反射出去,这就是高光部分;折射部分的光进入物体的内部,和物体内部的粒子碰撞,有一部分被物体吸收转化成热能,另一部分又折射出物体表面,也就是漫反射部分,漫反射部分的光线由于和物体内部粒子发生过碰撞,因此方向被改变,导致漫反射光的方向也是随机的。
金属和非金属的的反射和折射有明显的区别。入射到金属表面的折射光全部都被吸收,转化为金属内部的热能,因此金属只有高光部分,没有漫反射部分;非金属材质基友高光部分又有漫反射部分。

BRDF

双向反射分布函数(BRDF)是描述给定入射方向wi,出射方向w0,表面法线n,和表面粗糙度α,然后返回在w0方向上wi入射光贡献能量的百分比。例如当表面是理想的光滑平面时,当入射角wi=w0时BRDF会返回1.0,其他情况BRDF只会返回0.0。BRDF近似的描述了微表面理论下材质的反射和折射性质。物理正确的BRDF必须满足能量守恒原则,即出射光的能量必须小于入射光的能量。有很多基于物理的BRDF,但是实时管线用的最多的还是Cook-Torrance BRDF.
Cook-Torrance BRDF包含一个漫反射项和一个高光项:

fr=kdflambert+ksfcooktorrance

其中kd是折射光的能量占入射光能量的比重,ks是反射光的能量占入射光能量的比重。BRDF的左边部分描述的是漫反射部分,其中:
flambert=cπ

c是物体的颜色,π是正则化项。
Cook-Torrance BRDF的高光部分如下:
fcooktorrance=DFG4(w0n)(win)

Cook-Torrance BRDF的高光部分包含三个函数项和一个正则化项。D,F,G分别表示法线分布项,菲涅尔方程,几何衰减项。

法向分布函数

给定表面粗糙度α,法向分布函数(NDF)近似的返回微表面的法线与特定方向h的比例。同样有很多种NDF,有一种被称作Trowbridge-Reitz GGX:

NDFGGXTR(n,h,α)=α2π((nh)2(α21)+1)2

当粗糙度很低的时候高光区域比较狭窄,亮度高;当粗糙度比较大的时候高光区域较大,亮度较低。这里写图片描述

几何衰减项

在微表面理论中入射光线可能会被微表面遮挡(Geometry Obstruction),反射光线也可能会被其他微表面遮挡(Geometry Shadowing)。几何衰减项就是用来度量反射光线或者入射光线被微表面遮挡的概率。这里写图片描述
与NDF项相同,几何衰减项也把粗糙度考虑在内,粗糙度越高入射光线和出射光线被遮挡的概率更高。下面使用Schlick-GGX的公式来表示在特定方向上的衰减项:

GSchlickGGX(n,v,k)=nv(nv)(1k)+k

其中k是表面粗糙度α的度量,几何衰减项在入射和出射两个方向上考虑,可以表示为:
G(n,v,l,k)=Gsub(n,v,k)Gsub(n,l,k)

菲涅尔方程

菲涅尔方程描述入射到物体表面的入射光和折射光的比率,当一束光入射到表面的时候,给定一个观察者的角度,菲涅尔方程就能告诉我们反射光的能量占总的入射能量的比值。每一个材质都有其自身的基本反射率,当垂直看向某一表面时的反射率就是材质本身的基本反射率,这时的反射比较小,当视线接近90°时的反射最大。
菲涅尔是计算的是在绝对光滑表面光的反射,完整的菲涅尔等式非常复杂,通过观察真实世界材质的特性可以得到一个简单的表达式:

FSchlick(n,v,F0)=F0+(1F0)(1(nv))5

F0是基本反射率,下图是各种材质的F0这里写图片描述
观察上图可以看出金属的F0明显高于非金属,它的F0超过50%,非金属的F0最高不超过17%,除了金属,宝石,水晶外,大部分材质的F0都集中在2%~5%这个区间

总结

在了解完Cook-Torrance的各个项以后,在入射光线的方向上做积分就可以计算出近似物理的在出射方向上的能量。

原创粉丝点击