Quaternions, Axis Angles and Rotation Matrices. Which of these should I use for FP Camera?
Posted
by
Afonso Lage
on Game Development
See other posts from Game Development
or by Afonso Lage
Published on 2013-07-02T23:18:01Z
Indexed on
2013/07/02
23:19 UTC
Read the original article
Hit count: 199
After 2 weeks of reading many math formulas and such I know what is a Quaternion, an Axis Angles and Matrices. I have made my own math libary (Java) to use on my game (LWJGL). But I'm really confused about all this.
I want to have a 3D first person camera. The move (translation) is working fine but the rotation isnt working like I need. I need a camera to rotate arround world Axis and not about its own axis. But even using Quaternions, this doesnt work and no matter how much I read about Euler Angles, everybody says to me dont touch on it!
This is a little piece of code that i'm using to make the rotation:
Quaternion qPitch = Quaternion.createFromAxis(cameraRotate.x, 1.0f, 0.0f, 0.0f);
Quaternion qYaw = Quaternion.createFromAxis(cameraRotate.y, 0.0f, 1.0f, 0.0f);
this.multiplicate(qPitch.toMatrix4f().toArray());
this.multiplicate(qYaw.toMatrix4f().toArray());
Where this
is a Matrix4f view matrix and cameraRotate is a Vector3f that just handle the angles to rotate obtained from mouse move. So I think I'm doing everything right:
- Translate the view Matrix
- Rotate the Move Matrix
So, after reading all this, I just want to know: To obtain a correct first person camera rotate, I must need to use Quaternios to make the rotations, but how to rotate around world axis?
Thanks for reading it.
Best regards,
Afonso Lage
© Game Development or respective owner