TCB Keyframe Rot and OpenGL


I would like to know if anyone out here has any idea about how Keyframe data is stored in 3dstudio Max Key Frames. I am able to get the correct Angle Axis for the first keyframe but after that my Keyframes go haywire!. I heard that max uses a relative coordinate system with a Left Handed rotation matrix but still my Keys dont really match the 3ds Max rotation. Has anybody else done Rot contoller export from Max, Please HELP! I am desperate!! Or could somebody send me some pointers/ docs about the right way to interpret the Max Key Frame data for rotations? The Max SDK doc has a just one line mentioning that Keys are relative to the previous keys and that rotaion is left handed!.


I was curious what file format you are using to export from max. Some formats have slightly different issues. Anyway something to note, not sure if you are aware of this, ASE files store the global/world position of the verts witht the transformation that got them there. I’m really not completely sure about the way that the Rotation TCB controller works, but I have a funny feeling if might require being in a local coordinate system.

Ahh. I think I am probably overcomplicating this. Let me know what file format you are using and perhaps more specifics on what you are trying to do. Obviously reproduce your animation in Max but how are you doing the animation. Parent/Child links perhaps ?

LEt me know and I will try to look into it.


One thing I forgot to mention. Try Discreet’s website ( They have a lot of articles and a decent knowledge base (a forum too i think) largerly related to max plugins, bugs you name it. Its a good place to start and I know it has lots of good information.

[This message has been edited by Devulon (edited 04-17-2002).]


Yes Max Does use a relative Lefthanded Coordinate System for Rotation keys(wierd), I was able to get the absolute angle and axis vectors in RHS by evaluating the Key at its time using MaxScript. I have written my own exporter using Max Script and everything is fine now.


Max’s rot keys are relative from the previous rot key. Pos and Scale keys are absolute. As I remember, the information you need from a rot key is: quaternion defining the relative rotation, key time, key interpolation type (linear, tcb, tension/bias), and key interpolation parameters (depending on the type).
As you know, max coordinates are x, z, y (or x, z, -y, I don’t remember) from the OGL point of view.

Hope this helps.