LOG

Schlick によるフレネル反射率の近似

入射光の角度や物質によって反射光の強さは違っていてその反射率を計算するもの

入射角度0°~90°に応じたフレネル反射率の変化

Fschlick(v,h) ≒ C + (1 - C)(1 - h・v)^5
// C :光が垂直に入射するときのフレネル反射率 F(0°)(スペキュラリフレクタンス)
// h :法線ベクトル
// v :視線ベクトル
// h・v:
// ベクトルa→・b→の内積(ドット積)の定理 a→・b→ = |a→||b→|cosθ
// またa→を(a1,a2)、b→を(b1,b2)とした場合、a→・b→ = a1b1 + a2b2となり(導出)
// a→・b→ = |a→||b→|cosθ = a1b1 + a2b2 となる
// ※ a→を(a1,a2,a3)、b→を(b1,b2,b3)だった場合、 a1b1 + a2b2 + a3b3

Fschlick(v,h) = C + (1 - C) * Math.pow(1 - (v[0] * h[0] + v[1] * h[1]),5)

非金属のフレネル反射率(R = G = B)

物質F(0°) (Linear)F(0°) (sRBG)
Water0.02,0.02,0.020.15,0.15,0.15
Plastic / Glass(low)0.03,0.03,0.030.21,0.21,0.21
Plastic high0.05,0.05,0.050.24,0.24,0.24
Glass(high) / Ruby0.08,0.08,0.080.31,0.31,0.31
Diamond0.17,0.17,0.170.45,0.45,0.45

金属のフレネル反射率

反射率が色の波長によって異なるのでRGBで別の値になる。

金属F(0°) (Linear)F(0°) (sRBG)
Gold1.00,0.71,0.291.00,0.86,0.57
Silver0.95,0.93,0.880.98,0.97,0.95
Copper0.95,0.64,0.540.98,0.82,0.76
Iron0.56,0.57,0.580.77,0.78,0.78
Aluminum0.91,0.92,0.920.96,0.96,0.97

参考サイト