PDA

View Full Version : Fog error?!? or my error?!?!



chxfryer
03-20-2002, 10:23 AM
Ok, I had an application where i had a car driving around on a flat ground. I decided to add fog. Not knowing how to do this, i decided to visit gametutorials.com for the fog tutorial. Ok, I cut and pasted the fog code, adjusted the beginning and end depths for the fog and behold, there was fog.
Now here his my question, do I have to update the fog begin/end depths every frame? When my car moves around, my camera follows using gluLookAt. The fog seems to only stay in one position. I can drive straight through the fog and when I pass the end depth for the fog, it ends. and there is no fog.

Am I wrong to think that you should never be able to drive through the fog completely?
Shouldn't it stay at a certain depth into the screen. In any FPS with fog, you never end up walking through the fog (unless volumetric).

chxfryer
03-20-2002, 10:28 AM
sorry, dont know if this is important...
Windows xp pro, Visual Studio 6.0, Intel integrated 810 video with most recent (xp compatable) driver.

teknicida
03-20-2002, 10:41 AM
If you have called glMatrixMode(GL_PROJECTION) without calling glMatrixMode(GL_MODELVIEW) again before gluLookAt the fog won't work.
You don'n need to update your fog begin/end every frame.

It should look someting like this;

glMatrixMode(GL_PROJECTION);
//Sett upp you projetion matrix here
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0.0, ......);
and the rest of the code here.

[This message has been edited by teknicida (edited 03-20-2002).]

Micke
04-28-2002, 12:25 AM
Are you sure youre using the right fog mode?
I had the same problem when I was uding linear fog.

This code works fine for me:
glFogi(GL_FOG_MODE,GL_EXP);
glFogfv(GL_FOG_COLOR,Fogcol);
glFogf(GL_FOG_DENSITY,0.0002);
glEnable(GL_FOG);

Fog start and end is only used with linear fog .

/Micke

Deiussum
04-29-2002, 05:22 AM
I'm guessing teknicida is right. If you try and do "camera-like" transforms in the projection matrix, you can mess up the fog calculations. Just using the wrong fog mode wouldn't cause what you are seeing.

Osku
04-29-2002, 07:09 PM
You mentioned flat ground, is it only one big quad? If it is, tesselate it to many smaller quads, because fog is calculated per vertex.

Osku