New2OpenGl
Newbie

Posts: 3
|
 |
« on: October 18, 2005, 19:30:10 » |
|
Hi, I'm new to OpenGL, I have made a 3D object, and 3D camera using LWJGL, and they move as expected, The camera follows the 3d object. Trouble is when I added lighting, they keep following the object when I rotate it, and I want the lights to stay where they are, How to do this? Here's a piece of code:
//OPENGL SETUP GL11.glMatrixMode(GL11.GL_PROJECTION); // Select The Projection Matrix GL11.glLoadIdentity(); // Reset The Projection Matrix
GL11.glMatrixMode(GL11.GL_MODELVIEW); // Select The Modelview Matrix GL11.glLoadIdentity();
GL11.glLight(GL11.GL_LIGHT0, GL11.GL_POSITION, lightpos); GL11.glLight(GL11.GL_LIGHT1, GL11.GL_POSITION, lightpos2);
/////////////////////////////////////
//THE RENDER FUNCTION
private void render(){ . .setup camera and boy position, rotation, etc . . GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); //GL11.glLoadIdentity(); //this is model view GL11.glPushMatrix();
GL11.glPushMatrix(); GL11.glLoadIdentity();
GL11.glLight(GL11.GL_LIGHT0, GL11.GL_POSITION, lightpos); GL11.glLight(GL11.GL_LIGHT1, GL11.GL_POSITION, lightpos2); GL11.glPopMatrix(); GLU.gluLookAt(cam.Center[0], cam.Center[2], -cam.Center[1], cam.Target[0], cam.Target[2], -cam.Target[1], 0.0f, 1.0f, 0.0f);
GL11.glPushMatrix();
GL11.glTranslatef(boy.Position[0], boy.Position[2], -boy.Position[1]); GL11.glRotatef(boy.angle, 0, 1, 0);
GL11.glEnable(GL11.GL_LIGHTING);
//draw GL11.glBindTexture(GL11.GL_TEXTURE_2D, texture[54]); GL11.glInterleavedArrays(GL11.GL_T2F_N3F_V3F, 0, world.boy.MeshBuf); GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, world.boy.FaceCount * 3);
GL11.glDisable(GL11.GL_LIGHTING); //Enable, Disable lighting are required to illuminate 'boy' only GL11.glPopMatrix(); GL11.glPopMatrix(); }
|