反射方程式

最終更新日31 May 2017 07:12

(1)
\begin{align} L_o(p,v) = \int_\Omega f(l,v) \otimes L_i(p,l)cos\theta_i d\omega_i \end{align}
  • $L_o(p,v)$…反射輝度
  • $\theta_i$…法線nとライトベクトルlのなす角度
angle-of-incident.png
さらにcosθはn・lに置き換えられます。(2)
\begin{align} L_o(p,v) = \int_\Omega f(l,v) \otimes L_i(p,l) \vec{n} \cdot \vec{l_i} d\omega_i \end{align}

光源が面光源ではなく、点光源や平行光源のような面積を持たない光源の場合

(3)
\begin{align} L_o(v) = \sum^n_{k=1} f(l_k,v) \otimes E_{L_k}\overline{cos}\theta_{i_k} \end{align}

[4]p224 Equation 7.21より

  • k…k番目の光源

間接光を考慮しないで光源が一個だけの場合は

(4)
\begin{align} L_o(p,v) = f(l,v) \otimes L_i(p,l) \vec{n} \cdot \vec{l} \pi \end{align}

半球積分の結果はπになります[5]

最も単純な反射方程式

式を単純にするために色々な条件をつけます

  • 間接光を考慮せず、直接光だけ
  • 自己発光
  • 光源は面光源ではなく、点光源や平行光源のような面積を持たないもの

ピクセルの色 = BRDF x 光源 x $\vec{n} \cdot \vec{l}$ x π

です。数式で表現すると

(5)
\begin{align} L = f(l,v) \times E \times <\vec{n} \cdot \vec{l}> \end{align}

Lambertモデルの場合

(6)
\begin{align} L = \frac{C_{diff}}{\pi} \otimes E <\vec{n} \cdot \vec{l}> \end{align}

Lambert+Blinn-Phongの場合

(7)
\begin{align} L = (\frac{C_{diff}}{\pi} + \frac{m+8}{8\pi}<\vec{n}\cdot \vec{h}>^m C_{spec})\otimes E <\vec{n} \cdot \vec{l}> \end{align}

[4]Equation7.48(p257)より

Bibliography
2. コンピュータグラフィックス 改訂版]


ファイル

サポートサイト Wikidot.com