compute fog coord in eye space, not clip space
authorBrian Paul <brian.paul@tungstengraphics.com>
Tue, 17 Feb 2004 22:00:45 +0000 (22:00 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Tue, 17 Feb 2004 22:00:45 +0000 (22:00 +0000)
progs/demos/arbfplight.c

index 369da2ab52c5763de143d0631ed5328869244566..14d7d3ec10a8f8ddb99ee2d87108e870d4ec3806 100644 (file)
@@ -102,6 +102,7 @@ static void Key( unsigned char key, int x, int y )
    (void) y;
    switch (key) {
      case ' ':
+     case 'a':
         Anim = !Anim;
         if (Anim)
            glutIdleFunc(Idle);
@@ -224,6 +225,7 @@ static void Init( void )
       "!!ARBvp1.0\n"
       "ATTRIB pos = vertex.position; \n"
       "ATTRIB norm = vertex.normal; \n"
+      "PARAM modelview[4] = { state.matrix.modelview }; \n"
       "PARAM modelviewProj[4] = { state.matrix.mvp }; \n"
       "PARAM invModelview[4] = { state.matrix.modelview.invtrans }; \n"
 
@@ -240,8 +242,8 @@ static void Init( void )
       "DP3 result.texcoord[0].w, norm, invModelview[3]; \n"
 
 #if DO_FRAGMENT_FOG
-      "# compute fog coordinate\n"
-      "DP4 result.fogcoord, pos, modelviewProj[2]; \n"
+      "# compute fog coordinate = vertex eye-space Z coord (negated)\n"
+      "DP4 result.fogcoord, -pos, modelview[2]; \n"
 #endif
       "END\n";
       ;
@@ -360,7 +362,7 @@ static void Init( void )
       glFogi(GL_FOG_MODE, GL_LINEAR);
       glFogfv(GL_FOG_COLOR, fogColor);
       glFogf(GL_FOG_START, 5.0);
-      glFogf(GL_FOG_END, 10.0);
+      glFogf(GL_FOG_END, 25.0);
       glEnable(GL_FOG);
    }
 #endif