Hello,
I’m having a problem in moving my camera in a 3d world I created.
This is the init side of my moving function:
xCamera = 0; yCamera = 0; zCamera = Z_POS; // camera posn
viewAngle = -90.0; // along -z axis
xStep = cosf(0.0174532925*(viewAngle)); // step distances
zStep = sinf(0.0174532925*(viewAngle));
xEye = xCamera + (LOOK_AT_DIST * xStep); // look-at posn
yEye = 0;
zEye = zCamera + (LOOK_AT_DIST * zStep);
Then in my special function I call it move:
if(key == GLUT_KEY_UP) {
xCamera += xStep * SPEED;
zCamera += zStep * SPEED;
}
if(key == GLUT_KEY_DOWN) {
xCamera -= xStep * SPEED;
zCamera -= zStep * SPEED;
}
if(key == GLUT_KEY_LEFT) {
viewAngle -= ANGLE_INCR;
xStep = cosf(0.0174532925*(viewAngle));
zStep = sinf(0.0174532925*(viewAngle));
}
if(key == GLUT_KEY_RIGHT) {
viewAngle += ANGLE_INCR;
xStep = cosf(0.0174532925*(viewAngle));
zStep = sinf(0.0174532925*(viewAngle));
}
// new look at position
xEye = xCamera + (xStep * LOOK_AT_DIST) ;
zEye = zCamera + (zStep * LOOK_AT_DIST);
glutPostRedisplay();
Everything works on JOGL, but now I moved all the code to openGL 2.0 on Windows 7 and the movement is in accurate at all.
I’m positive the math is correct.
This is my gluLookAt():
gluLookAt(xCamera, yCamera, zCamera,
xEye, yEye, zEye, 0,1,0);
I’m using a
Any help/comment will be appreciate it.
Thank you