   Rotation Woes
  Hi,I'm using DirectX 9 and am programming in C++.I'm trying to make a model of a spaceship rotate in all 3 axis, in response to A,S,D,W,Q,E presses. I can make the model rotate around the world axes, but this is strange and unnatural. I want to make it rotate around its local axes.I've tried defining vectors the 'forward', 'right' and 'up' for the model and using those as arbitrary axes of rotation (and transforming the 3 axes after each rotation) but the order of matrix multiplication screws things up. I've also read 'use quaternions' posted a lot, but I'm yet to find a tutorial or example explaining how to do that.Any help or advice would be appreciated.Cheers.   
  You can use incremental rotations. There's a good explanation in this thread. You can skip the first few posts.Using 3 vectors should also work (but IMO is more complicated), you're probably not constructing the final matrix correctly. You should not construct 3 rotation matrices and multiply them. Instead, you should construct the matrix directly. It should look something like this:R.x R.y R.z 0U.x U.y U.z 0F.x F.y F.z 0P.x P.y P.z 1Where R, U, F, P are right, up, forward and position.   ;  Cheers - the incremental rotation method worked a treat, and was surprisingly light code-wise as well :)   