For a camera implementation I've decided to do the following:
Store the camera's pos, right, up, and forward vectors.
When rotating left/right I'd multiply the orientation vectors [r|u|f] by a the standard y axis rotation matrix
cos 0 sin
0 1 0
-sin 0 cos
When rotating up/down I'd rotate by the camera's right vector, not the x, since if the camera is rotated the x axis wouldn't be at a right angle to the forward vector.
I build the matrix like with I + sin(angle)*S + (1-cos(angle))*S^2 where I = identity,
S = {0, -u.z, u.y}
{u.z 0 -u.x
{-u.y u.x 0}
Doing that gets me awkward rotations, I get rolls when I should be getting a yaw.
If anyone's interested I've tried getting an answer on this thread: http://www.gamedev.net/community/for...topic_id=78749
[This message has been edited by outRider (edited 02-06-2002).]



