2015年11月29日日曜日

Smooth Diffuse Surface (Lambert BRDF)

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}\)
pdf \(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についてまとめた.

参考文献

  1. H. W. Jensen: Monte Carlo Ray Tracing (2003)
  2. H. Son: Realistic Image Synthesis with Light Transport (2015)

0 件のコメント:

コメントを投稿