ブリンのモデル

blinn-model-for-specular-reflection.png

物体表面を微小な面の集合と考え、
その微小面の方向が面の法線方向を中心に分布しているものと仮定する。
その分布は、ガウシアン分布や回転楕円体状の分布に従うものとする。
これらの関数は、

  • 光源方向へのベクトルL視点方向へのベクトルVの2等分ベクトルH
  • 面の法線ベクトルN

とがなす角θによって表される。

(1)
\begin{align} H=\frac{L+V}{\|L+V\|} \end{align}

角θの関数として微小面の分布を考え、
その微小面から完全鏡面反射として視点へとどく光の割合を求めることにより、
反射光の強さを計算する。
コードで書くとこんなかんじ

vec3 half=normalize(light+viewvec);//halfway vector
dot(reflection,_normal);//なす角θ
Bibliography
1. Blinn.pdf….オリジナルのBlinnの論文

サポートサイト Wikidot.com