This is a re-post from the Math/Physics board. It got no response, so I wondered if this board was more appropriate.
I have a working animation system that is loaded through the FBX 2012 SDK provided by Autodesk. The FBX API is giving me right handed and z-up meshes and animations, but I need to convert them over to a left-handed y-up coordinate system for DirectX.
The FBX SDK's coordinate system conversion doesn't work! I've been able to transform a mesh into the correct bind pose, but the animation curves are not converted.
In the past I just transformed the final bone matrices by a coordinate system conversion matrix, and it looks fine visually when the meshes are drawn. I've run into a problem when trying to attach other models to animated bones though. I want to attach other game objects to bones based on position/rotation/scaling values and not matrices, so I can't just apply the conversion matrix.
How do I convert the coordinate system of a bone's local position/rotation/scale transforms? I want to do this at load-time and get rid of all coordinate system conversions at run-time. The position and scale are vec3's, and the rotations are Euler angles that are turned into quaternions.
Edited by DementedCarrot, 28 October 2013 - 04:49 PM.