Fogging problems: Matrox MGA-G200 and STB Velocity 4400

I have the following lines of code in an application:

glEnable(GL_FOG);
glFogf(GL_FOG_MODE, GL_EXP2);
glFogf(GL_FOG_DENSITY, 0.3f);
glFogfv(GL_FOG_COLOR, fogColor);

In addition, the app is using texturemapping with GL_DEPTH_TEST enabled.

This all works perfectly fine with Creative 3D Blaster Annihilator Pro (GeForce 256), but fails with Matrox MGA-G200 and STB Velocity 4400 (TNT) with the latest drivers. I haven’t yet been able to test it with Voodoo.

Disabling fogging makes everything run ok. Any ideas about the solution?

Maybe you should try to put the
glEnable(GL_fOG) at the end of the fog declarations, i dont know if this solves your problem. But i have it that way and it works on my G200.

The problem is that I don’t have G200 myself, so it’s kinda hard to test it I always have to try it on other computers. Have you tried it the other way?

No i haven’t tried it, but i will as soon as i get back to my house. And i will post a reply later.

hmmm both “methods” worked just fine…
then i cant help you, sorry.

It seems that the vendors have different implementations of fogging. With a lower fog density it worked fine with those TNT cards.

I think this is pretty stupid, you can’t guarantee that exponential fog will look the same (or work at all) on different cards. I don’t know if linear fog is any better, at least I hope it works equally well on different hardware.

Have this weird fog problem too…
On my GeForce2 MX everything’s fine.
On other cards (Matrox, TNT2 M64) weird
fog covering entire ground appears…
Maybe it’s tesselation (1 huge quad , maybe glClearColor doesn’t match fog color,
maybe Bill Gates’
crafty designs, maybe moon phases, but why oh why does it work on my card?

This may have to do with per-pixel vs. per-vertex fog. Higher tessellation will improve the quality of per-vertex fog.

We do per-pixel fog on GeForce products.

  • Matt