-
Campbell Barton authored
from Doug: Most applications aren't very strict with the bind pose because they support different bind poses for different meshes. Ogre requires a single bind pose for all meshes, which makes things a lot more difficult. The changes are where the BindPose is defined (which is pretty much ignored by most applications, but you seemed to have added it for XNA), and the skin deformer. In both cases, global transforms for bones were not correctly being exported. I set global transforms for the bones equal to (my_bone.fbxArm.matrixWorld * my_bone.restMatrix) * mtx4_z90. That appears to do the trick for me, though I can't say I fully understand how the terms are derived. I've tested kngcalvn_fbx_test_new.fbx and our sample file in Maya & our FBX importer, and both work with the changes.
Campbell Barton authoredfrom Doug: Most applications aren't very strict with the bind pose because they support different bind poses for different meshes. Ogre requires a single bind pose for all meshes, which makes things a lot more difficult. The changes are where the BindPose is defined (which is pretty much ignored by most applications, but you seemed to have added it for XNA), and the skin deformer. In both cases, global transforms for bones were not correctly being exported. I set global transforms for the bones equal to (my_bone.fbxArm.matrixWorld * my_bone.restMatrix) * mtx4_z90. That appears to do the trick for me, though I can't say I fully understand how the terms are derived. I've tested kngcalvn_fbx_test_new.fbx and our sample file in Maya & our FBX importer, and both work with the changes.