フレネル

最終更新日09 Jun 2017 04:34

異なる屈折率を持つ媒質の境界での反射率を求める式。
この2つの媒質の境界面は完ぺきにツルツルだと仮定する。
完ぺきにツルツルだとすると、光は面上のある点に当たったら

  • 反射
  • 屈折

の2つの筋だけに分かれる。

身近な現象とフレネル反射

フレネル反射は$R_F(\theta_i)$と表現されます。

$\theta_i$は面の法線と視線orライトベクトルのなす角度、つまり入射角です。
fresnel-angle-of-incident.png
フレネル反射の関数は、入射角ごとに違う反射率を返す関数です。
物質ごとに違う結果になります。
金属と非金属で特徴が大きく異なります。
金属はどの入射角でも常に高い反射率ですが、
非金属は入射角が0に近いとき、つまり面を真上からみたとき、反射率が低いですが、
面を横に近いところから見たときは反射率が高いです。言い換えるならば、金属はどの角度から見ても常に周りの風景を映しています。
非金属、たとえば水面は真上からみたとき、あまり反射しないので水の中の様子が見えますが、
斜めから見たときは反射が強くなって周りの風景をよく映します。
pond.jpg
また、この斜めの角度のことをグレージング角と呼びます。

数式

(1)
\begin{align} k_r = \frac{1}{2} \left\{ \frac{\sin ^2 (\theta_1-\theta_2)}{\sin^2 (\theta_1+\theta_2)}+ \frac{\tan ^2 (\theta_1-\theta_2)}{\tan^2 (\theta_1+\theta_2)} \right\} \end{align}
  • $\theta_1$入射角
  • $\theta_2$…屈折角

次のように変形すると計算しやすい

(2)
\begin{align} k_r = \frac{1}{2}\frac{(g-c)^2}{(g+c)^2} \left( 1+ \left\{ \frac{c(g+c)-1}{c(g-c)-1} \right\}^2 \right) \end{align}
  • c=$\cos\theta_1$
  • $g^2 = n^2+c^2-1$
  • n….媒質1に対する媒質2の相対屈折率 $n=\frac{n_2}{n_1}$
  • $k_t$…透過率。$k_t = 1-k_r$

フレネル反射の式をまとめると

(3)
\begin{align} R_F(\alpha_h) \end{align}
  • $\alpha_h$….ライトベクトルとハーフベクトルのなす角度。ビューベクトルとハーフベクトルのなす角度でもある

入射角=0の時のフレネル反射率は物質の反射性そのもの[4]
物質のspecular colorの特徴と考えてよい[3]

$R_F(\alpha_h)$の結果は(r,g,b)の色です。
$R_F(\theta)$この関数のことを反射関数と呼びます
$\theta$入射角です。入射角=0のときのことをnormal incidence直角入射といいます。
入射角が大体60度~90度の時をgracing angleといいます。

フレネル反射は完全にツルツルな平面を前提としている。
ざらざら面にフレネル反射を適用するにはまた工夫が必要->microfacet theory

近似モデル

  • 定数….フレネル項としてマテリアル1個につききまった色を定数として与えること。素材の色的な。
  • Spherical Gaussian近似…より正確近似
  • Schlick近似…より簡単な近似
  • Ashikhmin and Shirley

brdf cook-torrance grazing-angle ior microfacet


ファイル

サポートサイト Wikidot.com brdfcook-torrancegrazing-angleiormicrofacet