Hi,
I wrote my animation importer for Direct3D 11 using assimp and an FBX file exported from Blender and everything is working after I flipped the axes such that Y=Z and Z=-Y. I basically multiplied
BoneOffsetMatrix = BoneOffsetMatrix * FlipMatrix
and
GlobalInverseMatrix = Inverse(FlipMatrix) * GlobalInverseMatrix
where
FlipMatrix = (
1,0,0,0,
0,0,1,0,
0,-1,0,0,
0,0,0,1
)
(matrices in row-major format).
But why do I have to? There are tutorials (for OpenGL, but still) where this worked fine without this step. Is it a setting in Blender that is wrong?
I am applying those transformations to my own vertices, so I'm not using the ones provided in the FBX file. But even if I did, those would be wrong without flipping the axes after the global inverse transformation.
Even though it is working, I want to give my editor to modders of my game, so I can't be sure that it works at their ends since I had to add a step that should not be required according to the documentation.
Cheers,
Magogan