本文最后更新于 2024-07-18T12:08:16+08:00
原标题
PBR Diffuse Lighting for GGX+Smith Microsurfaces
通用的微表面 BRDF
通用形式
宏观表面的 BRDF 只是许多微表面的平均。
-
通用形式
∫Ωρm(L,V,m)D(m)G2(L,V,m)∣N⋅L∣m⋅L∣N⋅V∣m⋅Vdm
-
∫Ωdm
对半球面上所有微表面法线积分。
-
ρm(L,V,m)
单个微表面如何响应,即法线方向的 BRDF,通常为理想镜面或理想漫反射。
-
D(m)
法线分布概率密度函数。
-
G2(L,V,m)
微表面 m 同时看到光源和观察者的概率。
-
D(m)G2(L,V,m)
同时被光源和观察者可见的表面的概率密度函数。
G2 由两个方向(光源、观察者)的可视性 G1 推出。
-
∣N⋅L∣⟨m⋅L⟩∣N⋅V∣⟨m⋅V⟩
表面对光源来说有多大,表面对观察者来说有多大。
-
D(m)G2(L,V,m)∣N⋅L∣⟨m⋅L⟩∣N⋅V∣⟨m⋅V⟩
从 L 出发,经过单次反射,到达 V 的概率密度函数。
∫ΩD(m)G2(L,V,m)∣N⋅L∣⟨m⋅L⟩∣N⋅V∣⟨m⋅V⟩dm≤1
如何获得 specular
-
微表面 BRDF 是完美镜面
-
光线只在 m = H,的情况下反射
-
在数学上,BRDF 是经过缩放的狄拉克函数δm(H,m)
-
一般情况:
∫Ωρ(L,V,N)cosΘVdV=1
-
更改积分域以计算 δ:
∫Ωkδm(H,m)cosΘVdmdVdm=1
-
kδm(H,m) 是纯镜面 BRDF
-
k 是缩放参数
-
dmdV 是 V 相对于 m 的变化速度
就结论而言,dmdV=4H⋅V
这是通过将 dv 从单位球投影至半径为 |L + V| 的球面上得到的。
由于 m = H 以及 H⋅V=H⋅L
- ∫Ωkδm(H,m)cosΘVdmdVdm=1
- ∫Ωkδm(H,m)(m⋅V)(4H⋅V)dm=1
- k=4(H⋅L)(H⋅V)1
狄拉克函数在其定义域上的积分为 1
为什么 (m⋅V)(H⋅V) 要以 (H⋅L)(H⋅V) 的形式保留下来?
-
故,完美镜面 BRDF:
4(H⋅L)(H⋅V)δm(H,m)
-
加上菲涅尔项
ρm(L,Vm)=F(L,m)4∣H⋅L∣∣H⋅V∣δH(m)
-
整合
∫Ωρm(L,V,m)D(m)G2(L,V,m)∣N⋅L∣⟨m⋅L⟩∣N⋅V∣⟨m⋅V⟩dm
-
代入得:
∫Ω4∣H⋅L∣∣H⋅V∣F(L,m)δm(H,m)D(m)G2(L,V,m)∣N⋅L∣⟨m⋅L⟩∣N⋅V∣⟨m⋅V⟩dm
-
由于狄拉克函数在积分中被消掉,以及 m = H 得:
Specular BRDF = 4∣H⋅L∣∣H⋅V∣F(L,H)D(H)G2(L,V,H)
扩展至 diffuse
- 兰伯特漫反射:
ρm(L,V,m)=π1
- 无闭合解。
闭合指的是一个表达式包含有限个标准运算,极限、差分、积分都不算标准运算。
GGX+Smith 微表面模型的漫反射模拟
Shadowing / masking 函数
不相关 vs 高度相关的 G
G2(L,V,m)=G1(L,m)G1(V,m)
不太现实,但是在实践中的效果很好。
Higher points more likely visible to both 𝐿 and 𝑉 (and lower points less likely)
-
高度不相关的 G 会使镜面反射变暗
- 越粗糙误差越大
- 越接近掠射角误差越大
-
角度相关性
- 当 L = V,应有 G2(V,V,m)=G1(V,m)
- 不相关:G2(V,V,m)=G1(V,m)2
- 相关:G2 介于两者之间
Smith shadowing / masking
-
前面没看懂,中间没看懂,但是:
-
Λ(V)=21(N⋅Vα2+(1−α2)(N⋅V)2−1)
-
G1(V)=1+Λ(V)1
-
G2(L,V)=1+Λ(L)+Λ(V)1
-
G1(L)G1(V)=1+Λ(L)+Λ(V)+Λ(L)Λ(V)1
-
G1(V)=
α2+(1−α2)(N⋅V)2+N⋅V2N⋅V
-
G2(L,V)=
N⋅Vα2+(1−α2)(N⋅L)2+N⋅Lα2+(1−α2)(N⋅V)22(N⋅L)(N⋅V)
新的 Smith + GGX G2 近似
- G1 的分母
- α2+(1−α2)(N⋅V)2+N⋅V
- lerp((N⋅V)2,1,α2)+N⋅V
- 近似:
- lerp((N⋅V)2,1,α2)≈lerp(N⋅V,1,α)
- 故,G1(V)≈N⋅V(2−α)+α2N⋅V
- 和 Unreal 一致:
- G1(V)≈N⋅V(1−k)+kN⋅V, k=2α
- 通过近似的 G1 近似来求得 G2
- G2(L,V)=lerp(2∣N⋅L∣∣N⋅V∣,∣N⋅L∣+∣N⋅V∣,α)2∣N⋅L∣∣N⋅V∣
- 代入 BRDF,约分:
- BRDF=2lerp(2∣N⋅L∣∣N⋅V∣,∣N⋅L∣+∣N⋅V∣,α)F(L,H)D(H)
- 开销:
- G1(L)G1(V):(∣N⋅L∣(2−α)+α)(∣N⋅V∣(2−α)+α)F(L,H)D(H)(~4 cycles)
- G2(L,V):~6 cycles
- 高度相关产生的额外成本可以忽略不计。
- 质量:
- 在粗糙材质的掠射角上效果更好。
- 感觉是否相关带来的差异比是否准确要大一些。
路径追踪
讨论了一些光追中,BRDF 中菲涅尔项对漫反射以及高光部分的权重问题,先略过。