[Papervision3D] Collada Biped

Jon Bradley jbradley at postcentral.com
Thu Feb 22 22:48:17 EST 2007


On Feb 22, 2007, at 9:07 PM, jakelewis wrote:

> What you need to derive from this, as part of your once-off client  
> side
> startup, is:
>
> For each bone, for each vertex that it exerts influence on,  
> calculate the
> vertex's position relative to the bone.
> Store that position vector in an
> array on the bone, along with the weight that bone applies to it,  
> and the
> address of the destination vertex.


That's a good thought you provided Jake, but there's no need to do  
any of the relative positioning stuff. You have it pretty much right  
later in your email. A bone == a transformation matrix, and that's  
all there is to it. There is no positional or 'distance from a bone'  
calculations necessary. That is all handled by the transformation  
matrix of the bone itself (and the model matrix).

The technique is called matrix palette blending, for those that are  
looking for information.

Here's a very useful example:

http://www.cyberkreations.com/kreationsedge/index.php?url=tut/Games/ 
SWSkinning

Pretty much all of the 3d applications use quaternions for bones.  
It's easier to slerp ...

Do a search for "matrix palette blending" in google. Most of the  
stuff you'll find pertains to vertex shaders because this is support  
directly on the GPU. The link I posted above is definitely more  
applicable to PV3D and software skinning.

cheers,

Jon

Jon Bradley
VFX Artist / Animator
Post Central, Inc.
jbradley at postcentral.com
www.cherrycrushthemovie.com


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://osflash.org/pipermail/papervision3d_osflash.org/attachments/20070222/987998e9/attachment.htm


More information about the Papervision3D mailing list