BRDF(Bidirectional Reflectance Distribution Function)雙向反射分佈函數,用來描述給定入射方向上的入射輻射度以及反射方向上的出輻射度分佈,BRDF提供了一種相對準確的計算方法。函數
如圖所示,點\({P}\)處\({d \omega}\)內的入射輻射度爲\({dE_i(p, \omega_i)}\),反射方向\({\omega_o}\)上的出射輻射度爲\({dL_o(p, \omega_o)}\)。spa
BRDF遵循能量守恆原則,入射輻射度與出射輻射度應呈正比例關係,\({dL_o(p, \omega_o)}\)隨\({dE_i(p, \omega_i)}\)的增長而增大。可表示爲:3d
\({dL_o(p, \omega_o)} \propto {dE_i(p, \omega_i)}\)blog
若是用\({f_r(p, \omega_i, \omega_o)}\)表示BRDF比例係數,則:io
\({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}\)im
那麼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}\)上的反射輻射度的方程爲:img
\({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}\)
反射率是反射通量和入射通量的比例係數。在上一篇講的關於輻射度的內容中,咱們知道\({\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}\)
最後再附帶上一張圖做梳理總結