I’m trying to use quaternions to rotate my objects in scene coordinates instead of object coordinates (you know, rotate around the Z axis and the X/Y axis is no longer facing the same way).

So basicly what I am doing is converting the yaw/pitch/roll of the object into 3 quaternions, multiplying them together in the order QPitch*QYaw*QRoll, converting the resulting quaternion into an axis angle which I then pass to glRotate. This unfortunately does not solve the problem. Certain rotational combinations work as expected, but others do not. Roll is behaving particularly strangely…is seems to always be off by a little bit unless Pitch and Yaw are both 0. Can anyone help me with this?

-Noah Desch