compute fog coord in eye space, not clip space
diff --git a/progs/demos/arbfplight.c b/progs/demos/arbfplight.c
index 369da2a..14d7d3e 100644
--- a/progs/demos/arbfplight.c
+++ b/progs/demos/arbfplight.c
@@ -102,6 +102,7 @@
(void) y;
switch (key) {
case ' ':
+ case 'a':
Anim = !Anim;
if (Anim)
glutIdleFunc(Idle);
@@ -224,6 +225,7 @@
"!!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 @@
"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 @@
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