BRDF
BRDF(Bidirectional Reflectance Distribution Function)雙向反射分布函數,用來描述給定入射方向上的入射輻射度以及反射方向上的出輻射度分布,BRDF提供了一種相對准確的計算方法。
如圖所示,點\({P}\)處\({d \omega}\)內的入射輻射度為\({dE_i(p, \omega_i)}\),反射方向\({\omega_o}\)上的出射輻射度為\({dL_o(p, \omega_o)}\)。
BRDF遵循能量守恆原則,入射輻射度與出射輻射度應呈正比例關系,\({dL_o(p, \omega_o)}\)隨\({dE_i(p, \omega_i)}\)的增加而增大。可表示為:
\({dL_o(p, \omega_o)} \propto {dE_i(p, \omega_i)}\)
如果用\({f_r(p, \omega_i, \omega_o)}\)表示BRDF比例系數,則:
\({dL_o(p, \omega_o)} = {f_r(p, \omega_i, \omega_o)}{dE_i(p, \omega_i)}\)
在上一篇中,我們知道入射輻射度\({dE_i(p, \omega_i)}={L_i(p, \omega_i) \, \cos \theta_i \, d \omega_i}\),代入上式得:
\({dL_o(p, \omega_o)} = {f_r(p, \omega_i, \omega_o)}{L_i(p, \omega_i) \, \cos \theta_i \, d \omega_i}\)
那么BRDF的比例系數\({f_r(p, \omega_i, \omega_o)}=\frac{dLo(p,\omega_o)}{L_i(p,\omega_i)\, \cos \theta_i \, d\omega_i)}\)
反射輻射度方程
由上面的公式,可知在立體角\({\Omega_i}\)上的反射輻射度的方程為:
\({L_o(p,\omega_o)}=\int_{\Omega_i}{f_r(p, \omega_i, \omega_o)}\, {L_i(p, \omega_i)}\, {\cos \theta_i}\, {d\omega_i}\)
BRDFs的特征
- 滿足交換率:若交換\(\omega_i\)和\(\omega_o\),最終的BRDF值保持不變。就是說若改變光的傳播方向,輻射度保持不變。
- 滿足線性特征:物體表面上一點的全部反射輻射度等於各BRDF反射輻射度之和。
- 遵循能量守恆:現實中不存在可以完全反射物體表面的入射光的材質,部分能量會被物體表面吸收並以其他形式再次反射。所以物體表面面片\({dA}\)上的各向反射輻射度小於總的吸收能量。
反射率Reflatance
反射率是反射通量和入射通量的比例系數。在上一篇講的關於輻射度的內容中,我們知道\({\Omega_i}\)上的入射輻射度:
\({E_i(p, \, \omega_i)} = \frac{d\Phi_i}{dA} = \int_{\Omega_i} {L_i(p, \, \omega_i) \, \cos \theta_i \, d \omega_i}\)
可推出\({\Omega_i}\)上的入射輻射通量\({d\Phi_i} = {dA} \int_{\Omega_i} {L_i(p, \, \omega_i) \, \cos \theta_i \, d \omega_i}\)
對於\({\Omega_o}\)上的同一面片中的反射通量為:
\({d\Phi_o} = {dA} \int_{\Omega_o}{L_o(p, \, \omega_o) \, \cos \theta_o \, d \omega_o}\)
將上面的反射輻射度方程代入,得:
\({d\Phi_o} = {dA} \int_{\Omega_o}\int_{\Omega_i} {f_r(p, \omega_i, \omega_o)}\, {L_i(p, \omega_i)}\, {\cos \theta_i}\, {d\omega_i} \, {\cos \theta_o \, d \omega_o}\)
反射率\({\rho(p, \Omega_i, \Omega_o)}=\frac{d\Phi_o}{d\Phi_i}\),這樣,我們就可以得到反射率的方程:
\({\rho(p, \Omega_i, \Omega_o)}=\frac{d\Phi_o}{d\Phi_i}=\frac{\int_{\Omega_o}\int_{\Omega_i} {f_r(p, \omega_i, \omega_o)}\, {L_i(p, \omega_i)}\, {\cos \theta_i}\, {d\omega_i} \, {\cos \theta_o \, d \omega_o}} {\int_{\Omega_i} L_i(p, \omega_i) \, \cos \theta_i \, \omega_i}\)
最后再附帶上一張圖作梳理總結