Jump to content

  • Log In with Google      Sign In   
  • Create Account


#ActualDementedCarrot

Posted 23 October 2013 - 11:41 AM

I have a working animation system that is loaded through the FBX 2012 SDK provided by Autodesk. The FBX API loads z-up meshes and animations, but I need to convert them over to a left-handed y-up coordinate system for DirectX. 

 

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 meshes to bones based on position/rotation/scaling transformation 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 keyframe 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.

 

Edit: Also, the FBX SDK's coordinate system conversion doesn't seem to work! I transformed my mesh vertices, but it doesn't convert the animations correctly.

 

Thanks!


#2DementedCarrot

Posted 23 October 2013 - 11:38 AM

I have a working animation system that is loaded through the FBX 2012 SDK provided by Autodesk. The FBX API loads z-up meshes and animations, but I need to convert them over to a left-handed y-up coordinate system for DirectX. 

 

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 meshes to bones based on position/rotation/scaling transformation 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 keyframe 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

 

Thanks!


#1DementedCarrot

Posted 23 October 2013 - 11:35 AM

I have a working animation system that is loaded through the FBX 2012 SDK provided by Autodesk. The FBX API loads z-up meshes and animations, but I need to convert them over to a left-handed y-up coordinate system for DirectX. 

 

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 meshes to bones based on position/rotation/scaling transformation 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 keyframe'd 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

 

Thanks!


PARTNERS