ホームに戻る
 フォグ

図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)

inserted by FC2 system