Assimp Model Matrix's (The Inverse bind pose matrix and transforms ?)

So i put this all down since the last time i posted and picked it back up a couple days ago,

Turns out i had my shader bone matrices mixed up due to not handling the mesh indexs for multiple mesh bone offset lists properly.

Basically i haven’t changed that since i started this project so the problem had nothing to do with the math at all the entire time :frowning:

Once i fixed that things pretty much just started to fall together. So basically i was racking my brains over the matrices when the problem was covered up else were. It took me adding a bunch of debug stuff to see it,

So here is the dude.fbx the beige lines are the T pose bones Blue are the local pose or animation pose,

I still have to figure out how to generate the inverse bind pose matrices manually if i want to make my own animations on the fly in app but that isn’t really a priority.

The code is actually pretty simple or will be once i clean it all up.
This is the primary order of multiplications.

        // not shown below skeletalNode.LocalTransformMg = animNodeframe.Orientation; 
        // is done prior to this call for all the animation current frames nodes
        // don't mind the naming its hardly only assimp nodes i just was tossing in names for multiple sets of test classes
        // basically the scenes first node is passed in.
        private void IterateAnimatedUpdate(OnlyAssimpNode node)
        {
            if (node.parent != null)
                node.CombinedLocalTransform = node.LocalTransform * node.parent.CombinedLocalTransform;
            else
                node.CombinedLocalTransform = node.LocalTransform;

            if (node.isThisARealBone)
                globalShaderMatrixs[node.boneShaderFinalTransformIndex] = node.OffsetMatrix.ToMgTransposed() * node.CombinedLocalTransform.ToMgTransposed();

            // call children
            foreach (OnlyAssimpNode n in node.children)
                IterateAnimatedUpdate(n);
        }

Eventually here ill get this smoothed out and straightened up and post a link for a how too load a rigged animated fbx model from blender thru the nuget assimp right into monogame but the above is basically the crucial math details.

This works for the dude fbx.

This works so far for the rigged animated pipe bone model i made myself in blender.
That one i made in blender 2.79b and is imported straight into monogame.
Though the scale is pretty small pretty sure the mesh transform has to be applied for that as its a scaling matrix if i remember right which is a trivial addition.

Edit you can find this continued here…

I put up a project on github that demos the work done so far.