I am currently trying to implement animations in my game. I am having an issue where the bones do not rotate properly.

In my program, I apply an inverse bind pose to each bone to move them to bone space. Then I recursively calculate the transformations for each bone for the keyframe.

The bone transformation looks like this:

bone.Transform = InverseRootGlobal * Global * bone.InversePose
  • InverseRootGlobal is the inverted root node transformation
  • Global is the recursively calculated transformation
  • bone.InversePose is the inverse pose matrix

It appears that all is correct apart from the bones initial rotation. When I move the bones to bone space, they loose their rotation from the bind pose and 'point up'. Here's what it looks like:

enter image description here

If it helps, I am using Assimp to import the data.

Thanks in advance.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.