Hello there!
In my game I have a vec3 that points from the camera to an object i want the camera to follow, so I use this to get the camera's orientation quaternion:
this->cameraRot=glm::angleAxis(0.0f,vector);
If i understand that function correctly, when passing a vector (0.0f,0.0f,-1.0f) for example, it should create a quaternion that orientates the camera to point directly into the depth of the screen with no roll, and for example, with a vector (1.0f,0.0f,0.0f), it should orientate the camera to the right, with no roll too. But i don't know why, that function only creates a quaternion different from the identity quaternion if I pass a value different from 0 to the angle. Why does this happen?
Thanks in advance, Aitor
glm's angleAxis function creates identity quaternion if angle 0 is passed
Started by Aitorman, Sep 15 2012 03:07 AM
2 replies to this topic
Sponsor:
#2 Members - Reputation: 1604
Posted 15 September 2012 - 04:00 AM
No, your understanding is off. Angle-axis rotation generates rotation about the given axis, by the given angle. If you don't specify an angle, you'll always get identity back. This is because rotation a zero angle, be it about any axis, of course does not rotate at all.
What you are thinking about is the LookAt rotation. I am not sure what the function signature in glm is, but I'm sure they have a similar function. Use a LookAt rotation to orient one direction vector to face towards another vector.
What you are thinking about is the LookAt rotation. I am not sure what the function signature in glm is, but I'm sure they have a similar function. Use a LookAt rotation to orient one direction vector to face towards another vector.
Me+PC=clb.demon.fi | C++ Math and Geometry library: MathGeoLib, test it live! | C++ Game Networking: kNet | 2D Bin Packing: RectangleBinPack | Use gcc/clang/emcc from VS: vs-tool | Resume+Portfolio | gfxapi, test it live!






