I'm currently messing around in mogre using a physx wrapper and i'm trying to get space flight working correctly. Just as in the thread that I linked above, once I rotate out of my initial orientation, the rest of my rotations continue to be based off of that initial orientation instead of coming from the new position.
Currently I adjust the angular velocity of my ship in a way that I know must be wrong but I'll show it anyways. pitchVAl yaw Val and rollVal are all floats between 0 and 1 that determine the pressure recieved from the joystick.
actorNodeList[0].actor.LinearVelocity = ((mEngine.Camera.DerivedDirection * 2000) * movespeed) * _frameTime;
actorNodeList[0].actor.AngularVelocity = (new Mogre.Vector3(pitchVal * -20, -20 * yawVal, -30 * rollVal)) * _frameTime;
Then after physx simulates the frame, I adjust my mesh using
sceneNode.Orientation = actor.GlobalOrientationQuaternion;
At first I had thought it was this second part that was causing my woes but after exploring around on here and in other places, I've come to believe that I'm feeding the angular velocity wrongly. I'm just unsure as to what math goes into getting the right information.