[x3d-public] HAnim skinned deformation

GPU Group gpugroup at gmail.com
Sun Jul 15 20:10:43 PDT 2018


There's a thing in GLES3 if x3dom can detect that availability.
https://www.khronos.org/files/opengles32-quick-reference-card.pdf
page 3 > vertex arrays > Primitive Restart
And I haven't tried primitive restart. You know how IndexedFaceSet has an
index, with -1 to indicate the end of a face?
Well that -1 can be the restart index. Then I don't know what I was
thinking but somehow I thought that related to HAnim, in particular the
ability to write a shader that works on an indexed face set, rather than
more basic primitives like triangle fan. And so for HAnim you won't need to
rebuild triangle fans on every frame - just modify the vertices and normals
in-place, and re-send the same indexes with -1 to end each face or triangle.
Hope that idea works, haven't tried it. -Doug

On Sun, Jul 15, 2018 at 6:41 PM, Andreas Plesch <andreasplesch at gmail.com>
wrote:

> Further observations
> On Fri, Jul 13, 2018 at 4:36 PM Andreas Plesch <andreasplesch at gmail.com>
> wrote:
> >
> > Some partial answers:
> >
> > On Thu, Jul 12, 2018 at 8: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 ?
> >
> > Boxman has a script which does some skinned deformation:
> >
> > http://www.web3d.org/x3d/content/examples/Basic/
> HumanoidAnimation/BoxManIndex.html
> > http://www.web3d.org/x3d/content/examples/Basic/
> HumanoidAnimation/BoxMan.js
> >
> > The scene uses native HAnim tags. It may or may not work in x_ite with
> > HAnim protos.
>
> Joe has a native tag BoxMan with test skin deformations.
>
> > The script just applies the weights as factors to a transform matrix
> > which may be quite different from the blending of coordinates. Of
> > course, the weights can be generated in the first place in such a way
> > that this application could work.
> >
> > > examples
> > >
> > > Are there examples in addition to Joes kicking player ?
> >
> > There are the Lucy avatars available from seamless3d:
> > http://www.seamless3d.com/hanim/
> > I had view3dscene convert them to xml:
> > https://github.com/andreasplesch/x3dom/blob/HAnim_work/test/functional/
> HAnim/Lucy_test4.x3d
>
> All players I tested which have skinned deformation implemented show
> the Lucy animation with inverted rotations. The players are:
> view3dscene 3.18
> BSContact
> freewrl 4.0
> Probably there is a problem with the Lucy example and perhaps how
> seamless3d exports hanim.
>
> > A maria_noscript model was also available at some point but seems lost.
> >
> > > 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 ?
> >
> > Apparently there was some opiniated discussion around normal
> > generation: http://seamless3d.com/hanim/hanim_with_hardware_shaders_
> issues.html
> >
> > > 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 ?
> >
> > May not be a priority to resolve.
> >
> > --
> > Andreas Plesch
> > Waltham, MA 02453
>
>
>
> --
> Andreas Plesch
> Waltham, MA 02453
>
> _______________________________________________
> 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/20180715/eeb24df0/attachment-0001.html>


More information about the x3d-public mailing list