Jump to content
  • Advertisement
Sign in to follow this  

quaternion camera wrong!

This topic is 858 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

first question :
here's a quaternion q to specify rotation.
 Is it correct to apply a rotation( init by axis angle ) to q use the formula?
 q' =  Quaternion(axis, angle) * q;
I use Quaternion as direction of camera.
invertPitch means reverse the flag of pitch.
my solution is get the forward vector of quaternion direction, 
then get the horizon forward vector by setting the y to 0.
then compute the angle between two vector. 
then rotate two times of the angle.
I don't know why the result quaternion sometimes(some special case)  become  INF, INF,INF,INF.
is there any mistake on my solution ? 
or is there other more intuitive solution to get and set the pitch ?
void Camera::invertPitch()
vector3f forward = getForward();
int flag = (forward.getY() > 0 ? 1 : -1);    
vector3f horizonF = forward*10;               // in case the x, z component close to 0.
horizonF = horizonF.normalized();
float rad = acos(horizonF.dot(forward));
rotateX(2 * rad *flag);
Edited by poigwym

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!