Advertisement

Changing NeHe's camera function to a gluLookAt function.

Started by May 07, 2006 02:01 PM
3 comments, last by Axesor 18 years, 6 months ago
As the title says, how do you change the way NeHe madehis camera to a gluLookAt function? Every timer I try this, it comes out wrong. :/ Can some one help? ~Thanks in advanced.
.::WARNING!::. Axesor is a total newb or n00b! Beware his lack ofintellegence of OpenGL. Feel sorry for him and keep him in your thoughts.~Leader of the phsychoward
could you please post the code of the NeHe camera?

thanks

--nathan
Advertisement
.............

This is the NeHe section right?

................. .. ...... .....

*sigh*

float rotx = 360.0f - cam.view.x;
float roty = 360.0f - cam.view.y;
glRotatef(rotx, 1,0,0);
glRotatef(roty, 0,1,0);
glTranslatef(-cam.pos.x, -cam.pos.y-crouch, -cam.pos.z);


Whereas the pos is define as

(UP):
cam.last_pos.x = cam.pos.x;
cam.last_pos.z = cam.pos.z;
cam.pos.x -= sinef(cam.view.y);
cam.pos.z -= cosf(cam.view.y);
.::WARNING!::. Axesor is a total newb or n00b! Beware his lack ofintellegence of OpenGL. Feel sorry for him and keep him in your thoughts.~Leader of the phsychoward
My solution would be to replace all that code with the following line, but I'm not sure if this is right or not, I did not test this:



gluLookAt(
cam.pos.x, cam.pos.y + crouch, cam.pos.z,
cam.pos.x, cam.pos.y + crouch, cam.pos.z + 1, /* Look in the positive Z axis */
0, 1.0, 0);



That would take care of translation. The other part is created by modifying the up vector, which I usually just rotate after using a LookAt, but if you want, you can calculate it out as a combination of trig functions and a lot of math.

Hope this helps.
Thank you. I will try this out.
.::WARNING!::. Axesor is a total newb or n00b! Beware his lack ofintellegence of OpenGL. Feel sorry for him and keep him in your thoughts.~Leader of the phsychoward

This topic is closed to new replies.

Advertisement