ホームに戻る
フォグ
図04_00:奥に 1.0 の位置から 5.0 の位置まで暗くなるフォグ
ソースコード:glut04_fog.c
解説
フォグ
フォグには3つのモードがある。
GL_LINEAR、GL_EXP、GL_EXP2
GL_LINEAR は GL_FOG_START、GL_FOG_END を使い、
GL_EXP、GL_EXP2 は GL_FOG_DENSITY を使用する。
計算は、
GL_LINEAR の場合、
f = (end - z)/(end - start)
GL_EXP の場合、
f = e^(-density * z)
GL_EXP2 の場合、
f = e^((-density * z)^2)
として 0-1 の範囲の f を求め、
現在の色が Cr でフォグの色が Cf としたとき、
以下の式で表示される色が計算される。
C = f*Cr + (1-f)Cf
インデックスカラーモードの場合は、
GL_FOG_INDEX で If を指定し以下の計算をする。
I = Ir + (1-f)If
フォグの精度の設定、
glHint(GL_FOG_HINT,GL_DONT_CARE);
GL_DONT_CARE:特に指定しない
GL_FASTTEST:速度優先
GL_NICEST:綺麗さを優先
初期値リスト
GL_FOG_MODE:GL_EXP
GL_FOG_DENSITY:1
GL_FOG_START:0
GL_FOG_END:1
GL_FOG_INDEX:0
GL_FOG_COLOR:(0,0,0,0)