Re: Algo for weight assignment in skinned animation

Jason Hughes <[email protected]>
Newsgroups gmane.games.devel.algorithms
Organization Steel Penny Games, Inc.
Message-ID <[email protected]>
Bill,

I've thought about this on and off for years, but never took the time to 
attempt it, so grain of salt here.  It seems to me that the best smooth 
skinning is generally one that induces the least amount of exaggerated 
motion, and maintain volume as much as possible.  So, perhaps you could 
artificially animate the skeleton by randomly perturbing the joints into 
many different poses (+/- 20 degrees per axis, maybe more) and adjust 
the weighting until you find one that relaxes the skin as much as 
possible (distance to closest point along weighted bones in bind pose is 
as close to fixed in all poses), and the volume of the mesh is as close 
to the original as possible.  Also, make sure that bones being weighted 
to are mostly shared among a given triangle and adjacent triangles.  
That'll help with flip-flopping when picking nearest bones under the skin. 

Not saying this would guarantee a usable skin weighting, but if these 
are salient components of a good skin weighting, it should help the 
artist start somewhere good. 

Problems: Scaling joints used for driven keys/muscle plumping is 
inherently not volume-preserving nor is an affixed distance from vertex 
to associated bone.  Skin sliding, cloth on characters, props, etc... 
there are plenty of places this wouldn't particularly help your artist.  
But for a basic initial skinning, it might do better than closest-bone.

It might also be fun to do a feature analysis of the mesh in bind pose, 
then make sure that those features are neither exaggerated nor 
diminished in other poses.  Might be able to do that by measuring the 
curvature change (with quadrics?) and attempting to retain nearly the 
same degree of curvature over non-extreme pose adjustments.  At least 
that way you'd know if you're attaching to the completely wrong joints 
and reduce their influence down to near-zero.

So, no, there's no standard algorithm.  :-)

JH

Jason Hughes
President
Steel Penny Games, Inc.
Austin, TX



Bill Baxter wrote:
> Is there any standard algorithm used for automatically assigning
> reasonable bone weights to vertices in a mesh, given just the mesh and
> the skeleton?  (I.e. you have no animation data, so you can't use
> observed deformations to guide how to assign the weights as in James &
> Twigg's "Skinning Mesh Animations").   And in particular are there any
> algorithms which work within a per-vertex weight budget constraint, so
> that you can use hardware skinning effectively?   I've been looking
> around, but haven't been able to find anything.
>
> Thanks,
> --bb
>
>   

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
GDAlgorithms-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list
Archives:
http://sourceforge.net/mailarchive/forum.php?forum_name=gdalgorithms-list
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.