2010-11-20 8 views
1

Ich habe den folgenden Code in meine OpenGL-Anwendung (Funktion wie InitGL, führt zu Beginn der Anwendung):Wrong Nebel Verhalten in OpenGL

GLfloat density = 0.5; 
GLfloat fogColor[4] = {164/255.0,203/255.0,242/255.0, 1}; 

if(OPT_FOG_ENABLED){ 
    glEnable (GL_FOG); 
    glFogi (GL_FOG_MODE, GL_LINEAR); 
    glFogfv (GL_FOG_COLOR, fogColor); 
    glFogf (GL_FOG_DENSITY, density); 
    glFogf(GL_FOG_START, 200); 
    glFogf(GL_FOG_START, 300); 
} 

OPT_FOG_ENABLED ist eine Konstante mit dem Wert von 1.

Das Problem ist, ich bekomme dieses Bild: http://prntscr.com/177y4 wie Sie sehen, beginnt Nebel von der Kamera und löst sich in einiger Entfernung von ihm auf. Das ist nicht das Verhalten, das man von Nebel erwartet, oder? Was ist falsch an meinen Parametern, oder kann ich etwas falsch machen?

Antwort

5

Ich weiß nicht, ob das ein Tippfehler in Ihrem Code ist ... aber Sie setzen GL_FOG_START zweimal anstatt Start und Ende zu setzen.

+1

OMG, ich nahm an, dass ich ein Idiot bin, aber Sie haben es bewiesen. Vielen Dank! :) – Anton

+0

Mach dir keine Sorgen, so etwas passiert, und je mehr Sie Ihren Code betrachten, desto schwieriger ist es, den Fehler zu sehen! :) Btw, glFogf Handbuch sagt, dass GL_FOG_END standardmäßig auf 1, so ist das Verhalten korrekt (Nebel zwischen 1 und 300). – nico