Sign in to follow this  
chand81

Software Vertex Skinning

Recommended Posts

In my implementation I'm storing key matrices (transformation from bind pose to keyed pose) in mesh space, that way I'm getting away with doing just one matrix multiplication for every vertex per affecting bone. But since this system doesn’t have a hierarchy, adding support for interpolation between key frames is impossible [please correct me if I'm wrong] With hierarchical system, I can have key frame interpolation as well as animation blending. However there are 2 matrix multiplications involved per vertex per affecting bone. Is there a method that can do with just on matrix multiplication? [Edited by - chand81 on March 10, 2007 6:04:03 AM]

Share this post


Link to post
Share on other sites
When you have two unstructured meshes and you can match each point of one mesh to one point in the other, you can interpolate between the two by morphing the two meshes. (simple linear interpolation between each point pair)

Viktor

Share this post


Link to post
Share on other sites
Thanks Viktor! Thats certainly on way to go.

But I would prefer to interpolate the skeleton rather than the mesh.
Mesh would have lot more vertices than number of bones in the skeleton.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
You should not store them in "mesh" space.

Even if you keep the hiearchy, you only need to compute the "real" matrices once per frame, then you can re-use them for all their vertice, so the speed hit of doing it properly is not as bad as you think.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
then you can re-use them for all their vertice


The reuse is the one that concerns me!

Assuming I have my skeleton all setup, keyframe interpolation & anim blending all done.
Next step would be to skin the vertices.
If the proper hierarchical way is followed, given a vertex, it first needs to transformed to the bones bind pose frame, and then to the bones current pose frame. So 2 matrix-vertex multiplications are involved.

There is a clear redundancy here: a vertex transformed to the bones bind pose frame will always be the same, irrespective of the bones current transformation.

The embedded device that I'm working on, an additional matrix multiplication means a drop in FPS by one frame per character. Which is pretty significant.

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