Sign in to follow this  

Bind Pose of Skinned mesh: Are Relative Matrices usefull ?

This topic is 3298 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi, I have made a converter which converts lightwave skinned mesh to my own format. In Ligthwave (and also in MS3D and Anim8or), Bind Pose rotation/translation of each bones are relative to their parent. In the keys of sequences, variation of rotation/translation are also relative to their parent. I currently try to load FBX files using the FBX SDK and Bind Pose of bones are stored in Absolute Positions. In the keys of sequences, variation of rotation/translation seems to be relative to their parent. In my engine: At initialization: _ i compute Inverse of absolute Bind Pose matrix from relative Bind Pose Matrix For each frame: _ i compute the absolute matrix of bones at a given time of the sequence from relative Orientation/Translation (interpolation between 2 keys). _ i multiply this 2 matrix My questions: 1) Is it usefull for an realtime 3D application to store relative Bind Pose instead of absolute Bind Pose ? 2) Is it usefull for an realtime 3D application to store relative variation of orientation/translation of bones in the sequence instead of Absolute orientation/translation (which can also be interpolated with quaternion)? Maybe the answer of question 2) is true because of possible interaction of a character model with the environement. But for question 1) ... ?

Share this post


Link to post
Share on other sites
Quote:
1) Is it usefull for an realtime 3D application to store relative Bind Pose instead of absolute Bind Pose ?


Only for apps that intend to modify the bind pose (i.e. Maya/Max). For a game this is just a waste of time, and you should compute the inverse world space bind pose matrix. Ideally compute that offline and store in the file format rather than doing it at initialisation.

Quote:
2) Is it usefull for an realtime 3D application to store relative variation of orientation/translation of bones in the sequence instead of Absolute orientation/translation (which can also be interpolated with quaternion)?


For animation data, yes you should use relative data, slerp/nlerp the quats, and build up the world space matrices. This makes life a million times easier if you ever intend to blend multiple animation cycles (which will give awful results if you try to do it in world space). The blending can take place in local space prior to computing the final WS matrices. If you attempt to blend world space data, you can get some very strange warping effects on the character.

Share this post


Link to post
Share on other sites

This topic is 3298 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

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