3
\$\begingroup\$

I'm not sure I have a clear idea on what purpose the rest matrix/bindpose is supposed to serve in skeleton animation. If it is supposed to transform a bone into the rest pose and the mesh itself is always exported in the rest pose then shouldn't the rest matrix always be the identity matrix? But then why is it not the identity matrix in Blender?

I also find that if I transform my mesh (exported in the rest pose) by the rest matrix for each bone then it is very incorrectly deformed (it was after all already in the rest pose).

\$\endgroup\$
2
\$\begingroup\$

It's the transformation between the bone's local space and the whole mesh's object space. In other words, it goes from a coordinate system that has its origin at the joint location and its axes aligned with the bone, to the coordinate system for the whole mesh. (Or maybe it goes the other direction, depending on how it's defined exactly.)

This is necessary because in order to deform a bone to a new pose, you would multiply the inverse bind pose transformation (that goes from bind pose to the bone's local space) with the matrix defining the desired pose (that goes from the bone's local space to the desired pose). The resulting matrix takes vertices directly from the bind pose to the new pose.

\$\endgroup\$
  • \$\begingroup\$ Thanks - I see where I was thinking of this in the wrong way now by trying to find a way that the bind pose matrix puts skin into the bind pose (which it's already in) \$\endgroup\$ – luminus Oct 13 '13 at 16:15

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.