[x3d-public] HAnim skinned deformation (GPU Group)

Andreas Plesch andreasplesch at gmail.com
Fri Jul 13 07:59:38 PDT 2018


Hi Doug,

thanks, very helpful.

Linearly blending the coordinates before and after transforming by
weight looks like what is generally intended by using weights.

This would produce a linear interpolation between the end points which
is not quite what I would have expected for a weighted rotation. In
axis-angle notation I would expect simply weighing the angular amount
of rotation, around an unchanged axis: axis_x axis_y axis_z a*angle
where a is the weight.

In other words if animating the weights of an arm rotation, is the arm
expected to rotate without changing its length, or just move to its
final position on the shortest path ?

Perhaps animating rotation weights is not the recommended way of
animating a limb, and instead directly animating the rotation is
preferred without changing weights ?

-Andreas

> Date: Thu, 12 Jul 2018 08:16:55 -0600
> From: GPU Group <gpugroup at gmail.com>
> To: X3D Graphics public mailing list <x3d-public at web3d.org>
> Subject: Re: [x3d-public] HAnim skinned deformation
>
> Andreas more hanim samples here:
> http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/
> Here's a hack I did on one:
> http://dug9.users.sourceforge.net/web3d/tests/hanim/BoxManB.x3d
> - this moves one vertex of the head box
>
> In freewrl I blended matrices: a*A + (1-a)*B but others told me that's
> wrong, should blend the coordinates after transforming:
> x11 = A*x1
> x22 = B*x2
> x = a*x11 + (1-a)*x22
>
> I think the matrices would be usually just rotations.
> That thing about the matrix to transform normals - needing to do the
> inverse transpose - I think that applies when the scales are anisotropic
> (not same scale on all dimensions). For HAanim likely they are all the same
> scale if not 1.0 for hanim, so using the same matrix to transform normals
> would probably work in all practical cases.
> And if so you can use the same blending for normals.
> -Doug
>
> On Thu, Jul 12, 2018 at 6:18 AM, Andreas Plesch <andreasplesch at gmail.com>
> wrote:
>
> > Before diving into an HAnim skinned deformation for x3dom, there are a few
> > questions:
> >
> > proto
> >
> > Is there a proto implementation for skinned deformation, eg. the skin
> > related fields ?
> >
> > examples
> >
> > Are there examples in addition to Joes kicking player ?
> >
> > skinCoordWeight
> >
> > This field modulates the transformation applied to the indexed coords by a
> > factor ranging from 0 to 1. It is not quite clear how the factor should be
> > applied. The spec. focuses on the amount of rotation but scaling and
> > translation presumably should also be affected.
> >
> > Should scaling and translation be weighted ?
> >
> > The most straightforward way would be to just scale all the components of
> > the transformation matrix. However, that does not work for the rotational
> > components. Is there a recommended way to apply the weights to the complete
> > transformation matrix ? Multiply all the individually weighted field
> > matrixes ? That would be a lot of matrix multiplications, for each coord
> > for each frame of an animation.
> >
> > skinNormals
> >
> > The spec. only refers to the skinCoords as being affected by the weighted
> > transform. Presumably the skinNormals also need to be transformed ?
> > If so, it seems to make sense to only apply the rotational component, and
> > ignore scaling and translation ?
> >
> > Mix of skeletal and skinned bodies
> >
> > It is possible to have geometry both in the skin and the skeleton (within
> > segments) fields.
> > In this case it seems the full transform would be always applied to the
> > segment geometries. That may lead to out of sync movement during animation
> > but such mixed representation may not be intended to be fully supported.
> > How should an implementation deal with such humanoids ?
> >
> > _______________________________________________
> > x3d-public mailing list
> > x3d-public at web3d.org
> > http://web3d.org/mailman/listinfo/x3d-public_web3d.org
> >
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20180712/8bf6c87d/attachment-0001.html>
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
>
> ------------------------------
>
> End of x3d-public Digest, Vol 112, Issue 10
> *******************************************



--
Andreas Plesch
Waltham, MA 02453



More information about the x3d-public mailing list