Hello…
Well, 1 weeks ago, I dicided to build a Camara CLASS.
This one use it own matrix. So when the camera is Created :
MatCam = Matrix(Identity);
Each frame of my OpenGL program, the camera is refreshed.
Here, is what I do in the refresh function :
// Get the new orientation of the camera depend the degres
// here( DegPitch, DegRoll, DegYaw)…
CamOrientation = AngleEULERToQuat( DegPitch, DegRoll, DegYaw ); QuatNormalize( CamOrientation );
// Just after this, I set up a new matrix to contain the rotation.
MatRotation = MatIdentity; MatTemp = QuatToMatrix( CamOrientation ); MatRotation = MatMultiply( MatRotation, MatTemp );
// I set up a new matrix again, but now to contain the translation.
MatTranslate = MatIdentite; MatTranslate[12] = MatTranslate[12] - CamPos.vX; MatTranslate[13] = MatTranslate[13] - CamPos.vY; MatTranslate[14] = MatTranslate[14] + CamPos.vZ;
// To finalize, I load the rotation matrix and I multiply it by the
// translation matrix.
glMatrixMode(GL_MODELVIEW);
glLoadMatrixf( MatRotation );
glMultMatrixf( MatDeplacement );
// End of the refresh function…
When I translate my camera, it's sound great.
But when I rotate it (any degres...) I got a weird rotation.
Ex : Under 90° (Y axis), my camera move backward and rotate too...
What’s could be the problem ?
Thanks to help me…
PS :Here is my matrix format :
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
[ 0 4 8 12 ] [ 1 5 9 13 ] [ 2 6 10 14 ] [ 3 7 11 15 ]
[This message has been edited by Erakis (edited 02-25-2002).]
[This message has been edited by Erakis (edited 02-25-2002).]
[This message has been edited by Erakis (edited 02-25-2002).]