Search code examples
c++mathvectorrotationquaternions

Quaternion Cameras and projectile vectors


In our software we have a camera based on mouse movement, and a quarternion at its heart.

We want to fire projectiles from this position, which we can do, however we want to use the camera to aim. The projectile takes a vector which it will add to its position each game frame.

How do we acquire such a vector from a given camera/quaternion?


Solution

  • The quaternion doesn't represent a direction, it represents a rotation. You can define a vector that points in the direction that your camera is pointing initially (e.g. (0,0,1)) and transform it using the rotation represented by the quaternion.