Smoth Diffuse Surface (Lambert BRDF)
本ページでは,モンテカルロレイトレーシング法において, 理想拡散反射表面をレンダリングする方法を説明する. 理想拡散反射表面として Lambert BRDF の実装に必要な パラメータや数式,重点的サンプリングの方法を説明する.
Lambert BRDF
Lambert BRDFは,全ての方向に放射輝度が等しく反射するBRDFで
\[ \begin{align} f_{r} \left( x, \omega_{i}, \omega_{o} \right) = \frac{\rho}{\pi} \tag{1} \end{align} \]
で定義される.ここで,\(\rho\) は表面の反射率を表す.
重点的サンプリング (Importance Sampling)
反射方向 \(\omega_{o}\) の重点的サンプリングを行う. Lambert BRDF では, \(\omega_{o}\) は反射エネルギー分布に従ってサンプリングする. すなわち,反射方向のpdf \(p \left( \omega_{o} \right)\) は
\[ \begin{align} p \left( \omega_{o} \right) = \frac{cos \theta_{\omega_{o}}}{\pi} \tag{2} \end{align} \]
となる.ここで, \(cos \theta_{\omega_{o}} = \omega_{o} \cdot \omega_{n}\) である.
重点的サンプリングの際の反射レイのWeightは
\[ \begin{align} \frac{f_{r} \left( x, \omega_{i}, \omega_{o} \right) \left( \omega_{o} \cdot \omega_{n} \right)} {p \left( \omega_{o} \right)} = \rho \tag{3} \end{align} \]
となる.
\(\omega_{o}\) のサンプリング
反射方向 \(\omega_{o}\) のサンプリングには逆関数法を用いる.
注意として,このサンプリング方法は 法線が \(\omega_{n} = (0, 0, 1)\) の時の 反射方向をサンプリングしているため, サンプリング後は任意の法線に対応するように基底変換をする.
\[ \begin{align} P \left( \theta, \phi \right) = & \int_{0}^{\phi} \int_{0}^{\theta} p \left( \theta^{\prime}, \phi^{\prime} \right) \ sin \theta^{\prime} \ d \theta^{\prime} d \phi^{\prime} \\ = & \frac{\phi}{2 \pi} \cdot (1 - cos^{2} \theta) \\ P \left( \theta \right) = & 1 - cos^{2} \theta \\ P \left( \phi \right) = & \frac{\phi}{2 \pi} \end{align} \]
上記の \(P \left( \theta \right)\),\(P \left( \phi \right)\) から, 反射方向の \(\theta\),\(\phi\) は以下の式から求めることができる.
\[ \begin{align} \theta = & cos^{-1} (\sqrt{1 - u_{1}}) \tag{4} \\ \phi = & 2 \pi u_{2} \tag{5} \end{align} \]
ここで, \(u_{1}\),\(u_{2}\) は \([0, 1)\) の乱数である.
まとめ
パラメータ
名称 | 記号 | 値 |
---|---|---|
反射率 | \(\rho\) | \(0 \le \rho \le 1\) |
レンダリング
名称 | 記号 | 値 |
---|---|---|
BRDF | \(f_{r} \left( x, \omega_{i}, \omega_{o} \right)\) | \(\frac{\rho}{\pi}\) |
\(p \left( \omega_{o} \right)\) | \(\frac{cos \theta_{\omega_{o}}}{\pi}\) | |
反射レイのWeight | \(\frac{f_{r} \left( x, \omega_{i}, \omega_{o} \right) \left( \omega_{o} \cdot \omega_{n} \right)} {p \left( \omega_{o} \right)}\) | \(\rho\) |
以上,Lambert BRDFについてまとめた.
参考文献
- H. W. Jensen: Monte Carlo Ray Tracing (2003)
- H. Son: Realistic Image Synthesis with Light Transport (2015)