PBR指的是基于物理的渲染,只在不同程度上都基于和现实世界中物理原理更相符的基本理论
其中有三方面
- 基于微平面(Microfacet)的表面模型
- 能量守恒
- 应用基于物理的BRDF
微平面模型:
一个平面越是粗糙,微平面上的排序越混乱,产生的影响是当光反射时,入射光线区域不同的方向进行发散,从而产生出分布更广泛的镜面反射
假设一个粗糙度参数,然后计算出沿着半程向量方向的比例,方向越一致,镜面反射的效果越强烈
能量守恒:
出射光线的能量永远不会超过入射光线,光线分为折射部分(漫反射),和反射部分(镜面光照),折射部分的粒子在每次碰撞都吸收光线所带的能量后转变为热能,基于这种原理,产生了次表面散射
无论何种光线,其被材质表面所反射的能量将无法再被材质吸收
计算镜面反射时,值等于入射光线被反射的能量占比,折射光则用镜面反射部分计算
反射率方程:Lo(p,ωo)=∫Ωfr(p,ωi,ωo)Li(p,ωi)n⋅ωidωi
辐射通量:辐射通量ΦΦ表示的是一个光源所输出的能量
立体角:投射到单位球体上的一个截面的大小或者面积
辐射强度:辐射强度表示的是在单位球面上,一个光源向每单位立体角所投送的辐射通量
BRDF:
每束光线对一个给定了材质属性的平面上最终反射出来的光线所作出的贡献程度
Torrance BRDF模型: fr=kdflambert+ksfcook−torrance//镜面反射和漫反射部分
flambert=c/π//漫反射
fcook−torrance=DFG/4(ωo⋅n)(ωi⋅n)//镜面反射
DFG分别代表
- 法线分布函数:估算在受到表面粗糙度的影响下,朝向方向与半程向量一致的微平面的数量。这是用来估算微平面的主要函数。
- 几何函数:描述了微平面自成阴影的属性。当一个平面相对比较粗糙的时候,平面表面上的微平面有可能挡住其他的微平面从而减少表面所反射的光线。
- 菲涅尔方程:菲涅尔方程描述的是在不同的表面角下表面所反射的光线所占的比率。
法线分布函数:NDFGGXTR(n,h,α)=α2/π((n⋅h)2(α2−1)+1)2
几何函数:
GSchlickGGX(n,v,k)=n⋅v(n⋅v)(1−k)+k
kdirect=(α+1)2/8
kIBL=α2/2
史密斯法:G(n,v,l,k)=Gsub(n,v,k)Gsub(n,l,k)
菲涅尔方程:FSchlick(h,v,F0)=F0+(1−F0)(1−(h⋅v))5
F0表示平面的基础反射率
Cook-Torrance反射率方程:Lo(p,ωo)=∫Ω(kdcπ+ksDFG4(ωo⋅n)(ωi⋅n))Li(p,ωi)n⋅ωidωi
PBR分为反照率,法线,金属度,粗糙度和环境光遮蔽