Почему туман OpenGL просто не появляется? - PullRequest
4 голосов
/ 30 августа 2011

Вот как я включаю туман в 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, но туман просто не появляется, что случилось?

1 Ответ

5 голосов
/ 30 августа 2011

Проблема в режиме GL_EXP2.

Если вы проверите формулу для коэффициента смешения тумана в режиме GL_EXP2:

f = e ^ ((-density * z) ^ 2) (ограничено [0..1])

Кривая тумана регулируется исключительно с помощью параметра плотность .Если ваш диапазон составляет 0,1-100, я бы порекомендовал плотность около 0,001.

В любом случае, для проверки тумана лучше начать сначала с режима GL_LINEAR.Это просто визуализировать.

...