Sign in to follow this  
Xeonzinc

Bone Matrices

Recommended Posts

Hi,

 

I'm trying to debug why my mesh is not getting deformed as is should be, and am trying to work back to understand which transformation of the vertex is causing the distortion.

 

On a bone i can see what appear to be 4 transformation matrices. Can anyone explain the difference between:

 

•base matrix

•absolute matrix

•matrix

•world transform

 

I don't entirely understand which of these gets used by a mesh vertex which is weighted to it?

Share this post


Link to post
Share on other sites

From the shader perspective, worldMatrix is multiplied by (m1 + m2 + m3 + m4) where mx is a weighted bone matrix

 

This matrix is computed from bone matrix by multiplying it bye bone influence (stored in the vertex itself)

 

The bone matrix is computed like this bone.invertedAbsoluteTransform * bone.worldMatrix. This is the bone local matrix

 

So at step 0, if the bone has no parent then bone matrix = identity. Then at step 1 (after an animation for instance), the bone matrix will contain ONLY the local difference between step 0(The initial pose) and step 1

 

 

Does it make sense?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.