Shlick近似

最終更新日09 Jun 2017 04:33

Schlick近似

Microfacetのフレネル反射のSchlick近似

(1)
\begin{align} R_F(\alpha_h) \approx R_F(0^{\circ} ) + (1-R_F(0^{\circ}))(1-cos\alpha_h)^5 \end{align}
  • $\alpha_h$….ライトベクトルとハーフベクトルのなす角度。ビューベクトルとハーフベクトルのなす角度でもある 正反射だから。

こうとも書ける from[2]p248
Microfacetの法線がhという想定での式になっている。

Macroscopicのフレネル反射のSchlick近似

(2)
\begin{align} R_F(\alpha_h) \approx R_F(0^{\circ} ) + (1-R_F(0^{\circ}))(1-\vec{v}\cdot \vec{h})^5 \end{align}

ハーフベクトルはl+vなので$\vec{l} \cdot \vec{h}$でも同じ結果になるはず
$\vec{v}\cdot \vec{h}$は90度を越えることは絶対にないのでクランプしなくてもok
SIGGRAPH 2013のコースだとこう書かれている[3]

(3)
\begin{align} F_{Schlick}(F_0,l,n) = F_0 + (1-F_0)(1-l \cdot n)^5 \end{align}

こっちの式は面全体のフレネル反射のときのもの。
$\alpha_h$は絶対に90度を超えることはないので、$\vec{v}\cdot \vec{h}$はクランプする必要がありません。

なので、この$R_F(0^{\circ} )$を物質ごとに違うパラメータとして与える必要がある。たとえば、金だったらrgb=(1.0,0.71,0.29)というように
物質ごとのパラメータは金属のベースカラーの項参照。


basecolor


ファイル

サポートサイト Wikidot.com basecolor