4

これは、OpenGLでフォグを有効にする方法です。

float fog_colour[4] = {1,1,1,1};
glEnable(GL_FOG);
glFogf(GL_FOG_MODE,GL_EXP2);
glFogfv(GL_FOG_COLOR,fog_colour);
glFogf(GL_FOG_DENSITY,0.5);
glHint(GL_FOG_HINT,GL_NICEST);
glFogf(GL_FOG_START,0.1);
glFogf(GL_FOG_END,100);

すべてのオブジェクトは0.1〜100の範囲にありますが、霧が表示されないだけです。どうしたのでしょうか。

4

1 に答える 1

5

問題はGL_EXP2モードです。

GL_EXP2モードでフォグブレンディングファクターの式を確認すると、次のようになります。

f = e ^((-density * z)^ 2)([0..1]にクランプ)

フォグカーブは、密度パラメータのみで調整されます。範囲が0.1〜100の場合、密度は約0.001にすることをお勧めします。

とにかく、フォグをテストするには、最初にGL_LINEARモードから始める方がよいでしょう。視覚化する方が簡単です。

于 2011-08-30T13:20:14.040 に答える