Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

OpenGL fog versus OpenGL ES fog

I have a problem where the fog works like intended on a desktop program (PC) using OpenGL but the same fog doesn't work like it should on an Android device (using OpenGL ES).

The code is a exact duplicate, it looks like this:

// OpenGL ES Init
gl.glClearColor(0.5f, 0.5f, 0.5f, 1.0f);
float fogColor[] = {0.5, 0.5, 0.5, 1.0};
// Fog color to mFogBuffer...
gl.glEnable(GL10.GL_FOG);
gl.glFogfv(GL10.GL_FOG_COLOR, mFogBuffer);
gl.glFogf(GL10.GL_FOG_DENSITY, 0.04f);

// OpenGL Init
glClearColor(0.5, 0.5, 0.5, 1.0);
float fogColor[] = {0.5, 0.5, 0.5, 1.0};
glEnable(GL_FOG);
glFogfv(GL_FOG_COLOR, fogColor);
glFogf(GL_FOG_DENSITY, 0.04f);

But I can't get the OpenGL fog work exactly the same on my Android device. I have tested glShadeModel()'s attributes and so on.

The area that should fog is totally white and it is a basic quad (built by triangles). I have done some gluLookAt() transformations, but it shouldn't affect this fog.

Any ideas?

like image 706
Curtain Avatar asked Jul 17 '11 09:07

Curtain


1 Answers

Try glHint(GL_FOG_HINT, GL_NICEST).

like image 162
genpfault Avatar answered Sep 21 '22 14:09

genpfault