[x3d-public] HAnim skinned deformation

GPU Group gpugroup at gmail.com
Thu Jul 12 07:16:55 PDT 2018


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.html>


More information about the x3d-public mailing list