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

GPU Group gpugroup at gmail.com
Fri Jul 13 08:39:31 PDT 2018


IIRC its linear blending between 2+ non-linear interpolated/transformed
points -same skin vertex transformed by 2 different non-linear matrices..
Around joints. And I think the weights would normally fade across the
joint, from 1.0 on one segment to 1.0 on the other segment.

On Fri, Jul 13, 2018 at 8:59 AM, Andreas Plesch <andreasplesch at gmail.com>
wrote:

> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20180713/cd832076/attachment-0001.html>


More information about the x3d-public mailing list