反射

本物のページはこちら→reflection

javaのリフレクション機能の話はこちら
反射には大きく分けて4種類ある。[1]
拡散反射=乱反射 diffuse チョークや石膏 マットな質感
鏡面反射=正反射 perfect specular 鏡 ガラス
glossy specular プラスチック 艶出しペイント
retro specular ベルベット

である。
アンビエントは反射光ではない!
物体表面で反射、あるいは物体表面から入った光が物質内で多重散乱したあとに表面から出てきた光である。

反射ベクトルの計算

キューブマッピングの場合は

reflectDir =reflect(eyeDir,normal);// 視線の反射ベクトル だったら
reflectDir=eyeDir-2.0*dot(normal,eyeDir)*normal;//と同じ

鏡面反射で使う正反射ベクトルはフォンのモデル
vec3 reflection = normalize(lightpos+viewvec);//正反射方向ベクトル
float specularLight=pow(max(dot(reflection,normal),0),shininess);

拡散反射はランバートの余弦則

float diffuseLight=max(dot(lightpos,normal),0);
Bibliography

サポートサイト Wikidot.com