From: Zhongli X. <zho...@gm...> - 2006-05-15 07:46:42
|
Hi, all, I'm confused by lights in OpenGL. In OpenGL Programming Guide or 'The Red Book', it says "when glLight*() is called to specify the position or the direction of a light source, the position or direction is transformed by the current modelview matrix and stored in eye coordinates." And this my codes: //I specified the parameters of the light before rendering objects. float lightPosConst[4]=3D{0.0,0.0,1.0,1.0}; glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); glLightfv(lightNum,GL_POSITION,lightPosConst); glLightfv(lightNum,GL_AMBIENT,constColor); glLightfv(lightNum,GL_DIFFUSE,lightColorv); glLightfv(lightNum,GL_SPECULAR,lightColorv); glPopMatrix(); The light should be stationary, but when I rotated my objects and the light rotated in the reverse direction. Any suggestion is welcomed! Thank you! ps: the opengl lib I use is Mesa 6.4 |