レンダリング方程式
#レンダリング #レイトレーシング #CG
ある点$ xから$ \vec \omega_o方向への放射輝度を幾何光学に基づいてモデル化した積分方程式
レイトレーシングをはじめとしたPBRで必須となる考え方
The Rendering Equationで導入された
https://rayspace.xyz/CG/contents/LTE1/
式
$ {\color{crimson} L_o(x, \vec \omega_o)} = {\color{darkorange} L_e(x, \vec \omega_o)} + \int_{\color{orchid} \Omega} {\color{lightseagreen} f_r(x, \vec \omega_i, \vec \omega_o)} \ {\color{royalblue} L_i(x, \vec \omega_i)} \ {\color{darkblue} |\vec \omega_i \cdot \vec n|} d \vec \omega_i
$ {\color{crimson} L_o(x, \vec \omega_o)} は、ある点$ xから$ \vec \omega_o方向への放射輝度(Radiance)
求めたいもの
$ {\color{darkorange} L_e(x, \vec \omega_o)} はEmissive項
自己発光するマテリアルの場合のおはなし
$ {\color{orchid} \Omega} は、あらゆる入射方向
BRDFの場合、半球
BSDFの場合、球
$ {\color{lightseagreen} f_r(x, \vec \omega_i, \vec \omega_o)} はBRDF
もしくはBSDF $ {\color{lightseagreen} f_s}
「$ \vec \omega_i方向から光が$ xに入射した場合、$ \vec \omega_o方向にどのくらい反射(BSDFの場合透過)するか」
たとえばランバート反射の場合、$ {\color{lightseagreen} \frac{\rho}{\pi}} ($ \rhoは物質固有の反射率)
$ {\color{royalblue} L_i(x, \vec \omega_i)} \ {\color{darkblue} |\vec \omega_i \cdot \vec n|} はIrradiance
$ {\color{royalblue} L_i(x, \vec \omega_i)}は「実際いま$ \vec \omega_i方向から$ xにどのくらい光が入射しているか」
$ {\color{darkblue} |\vec \omega_i \cdot \vec n|}は「コサイン項」
入射光に対して法線が傾けば傾くほど、単位面積当たりに入射する光は引き伸ばされて弱くなりますよね
$ \vec \omega_iと$ \vec nの成す角$ \thetaを用いて$ {\color{darkblue} \cos \theta}と表記することも