フレネル
最終更新日09 Jun 2017 04:34
異なる屈折率を持つ媒質の境界での反射率を求める式。
この2つの媒質の境界面は完ぺきにツルツルだと仮定する。
完ぺきにツルツルだとすると、光は面上のある点に当たったら
- 反射
- 屈折
の2つの筋だけに分かれる。
身近な現象とフレネル反射
フレネル反射は$R_F(\theta_i)$と表現されます。
$\theta_i$は面の法線と視線orライトベクトルのなす角度、つまり入射角です。
フレネル反射の関数は、入射角ごとに違う反射率を返す関数です。
物質ごとに違う結果になります。
金属と非金属で特徴が大きく異なります。
金属はどの入射角でも常に高い反射率ですが、
非金属は入射角が0に近いとき、つまり面を真上からみたとき、反射率が低いですが、
面を横に近いところから見たときは反射率が高いです。言い換えるならば、金属はどの角度から見ても常に周りの風景を映しています。
非金属、たとえば水面は真上からみたとき、あまり反射しないので水の中の様子が見えますが、
斜めから見たときは反射が強くなって周りの風景をよく映します。

また、この斜めの角度のことをグレージング角と呼びます。
数式
(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
Bibliography
2. リアルタイムレンダリング 第2版(2002)
3. Real-Time Rendering 3rd Edition(2008)
4. Physically Based RealTime Rendering for Artists…アーティスト向けに物理ベースのリアルタイムレンダリングを紹介した解説映像!
5. Everything You Always Wanted to Know About mia_materialSIGGRAPH 2013Course
brdf cook-torrance grazing-angle ior microfacet