[x3d-public] HAnim and glTF skins

Joseph D Williams joedwil at earthlink.net
Wed Nov 28 23:20:22 PST 2018


Great question, maybe call it crowdgraphing? I don’t know. What do the peoples that earn money and awards doing it call it? 

That is the first step in getting thousands to work is that each duplicate must be different. But think of stuff in realtime, not just to make a frame for a video. What level of detail can you maintain to make it realtime interactive realistic simulated interactions? 
But Ok, since you ask, first you make one, then you make more, hopefully under some control of the interactor. HAnim stuff can offer complete documentation and instrumentation whatever those interactions happen to be. 

I think we really must start with the attached, and go from there. You wanna have skeletons and you want to have skins and segment geometries. You want to be able to build it with a script, from algorithms and a customizable human readable data set by a user with a simple text editor, or an immersive simulation of the authoring environment. Note that this example is more historical V1 LOA3, to be updated to V2 LOA4, in due time, since we are still figuring some part 1 annex A and B keystrokes, but the general intent for a simple typical one, here.  
Thanks and Best, 
Joe

 
From: John Carlson
Sent: Wednesday, November 28, 2018 10:34 PM
To: Andreas Plesch
Cc: Humanoid Animation (H-Anim) Working Group; Joe D Williams; X3D Graphics public mailing list
Subject: RE: [x3d-public] HAnim and glTF skins

Now, how do I build an army of 500 soldiers at a parade?  Or a demonstration of 500 people?

Thanks,

John

Sent from Mail for Windows 10

From: John Carlson
Sent: Thursday, November 29, 2018 12:18 AM
To: Andreas Plesch
Cc: Humanoid Animation (H-Anim) Working Group; Joe D Williams; X3D Graphics public mailing list
Subject: Re: [x3d-public] HAnim and glTF skins

Perhaps now is the time for doing benchmarking among implementations? Looks good! Can someone point me out an exampl which could use an X3D JSON scripting environment. PROTOs?

On Wed, Nov 28, 2018 at 2:51 PM Andreas Plesch <andreasplesch at gmail.com> wrote:
A short update after Joe and me had a good discussion on the phone.

We could trace back the origins of the new JointBinding fields and
confirm that they are meant to align an initially incompatible
geometry with a given animation of a skeleton. I am more confident now
that these fields essentially correspond to the InverseBindMatrix of
glTF skins.

With regards to the relationship of the SkinBindingCoords field to the
SkinCoord field, we felt it is possible that only one or the other
should be used. This may still need some additional digging.

We also discussed how similar glTF skinning is to HAnim skinning. For
example, glTF skinning also requires a binding of one or multiple
weighted joint (trafos) for each single vertex in a skin. in glTF,
this binding occurs in the JOINT_0 vertex attribute of a mesh, whereas
in HAnim the binding occurs in the skinCoordIndex field of a joint.

x3dom now supports skinned animation in the dev build. Here are a few
examples: http://andreasplesch.github.io/Library/Models/HAnim/x3d/InlineViewer.html
(BoxMan and Kicker are skinned).

Other links:
http://www.web3d.org/documents/specifications/19774-1/V2.0/HAnim/ObjectInterfaces.html#Humanoid
(sequence<float[4]> skinBindingNormals should be float[3] )

https://github.com/andreasplesch/x3dom/wiki/HAnim-and-glTF-skins

has now a complete, and working conversion of a simple glTF skinned
animation to HAnim. Since the conversion is using HAnim 1.0, instead
of the jointBinding fields, it is using an inner Joint to apply a
binding transform. I think it works well.

I may do another manual conversion of another simple glTF example.

The main issue with going further on x3dom is now that the skinned
deformation per vertex is currently done in js arrays on the CPU while
the glTF support is using directly the binary vertex data on the GPU.
So it may become necessary to move the skinning in x3dom also to the
GPU which requires uploading additional buffers and deeper
adjustments, and therefore investment. The alternative is to not use
BufferGeometry and translate to IndexedTriangleSet (et al.) which is
not very attractive.

-Andreas









On Tue, Nov 27, 2018 at 2:51 AM Joseph D Williams <joedwil at earthlink.net> wrote:
>
> I think we should get together on the phone and discuss. Let’s try and use the web3d conf line sometime. Wed at 5 pacific or Mondays at 3 has worked.
>
> Each vertex of a skin has to be bound to the appropriate skeleton parts.
>
> Thanks and Best,
>
> Joe
>
>
>
>
>
> Sent from Mail for Windows 10
>
>
>
> From: Andreas Plesch
> Sent: Monday, November 26, 2018 10:37 AM
> To: Michalis Kamburelis
> Cc: X3D Graphics public mailing list
> Subject: Re: [x3d-public] HAnim and glTF skins
>
>
>
> I figured out by now that these fields were added for HAnim 2.0
>
> whereas X3D V3.3 uses HAnim 1.0 .
>
>
>
> I think the idea is that you have a skeleton of joints with animation
>
> data designed for it but the actual initial geometry is designed for
>
> another initial state (pose). Then you can either redo the skeleton
>
> and animation, redo the geometry, or apply a first ('binding')
>
> transform to get the geometry into the state expected by the animated
>
> joint transforms. This first transform would be defined by the
>
> jointBinding fields, or as an inner joint in the skeleton's joint
>
> hierarchy.
>
>
>
> I think these fields are similar to glTF's inverseBindingMatrix which
>
> is also defined for each joint, and is applied to initial vertex
>
> positions. So in order to play glTF skinned animations, it would make
>
> more sense to implement these fields rather than finding a singular
>
> solution.
>
>
>
> It is unclear to me how skinCoord and skinBindingCoord interrelate,
>
> and why non-humanoids are supposed to use those. Probably because it
>
> is common to have this initial binding step rather than compatible
>
> skeletons and geometry in the first place.
>
>
>
> Hopefully somebody can correct all the mistakes and misunderstandings
>
> just offered above :)
>
>
>
> -Andreas
>
>
>
> _______________________________________________
>
> x3d-public mailing list
>
> x3d-public at web3d.org
>
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
>



--
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/20181128/d0ea67fb/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: LOA3DISJointandSiteMarkers.zip
Type: application/zip
Size: 11050 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20181128/d0ea67fb/attachment-0001.zip>


More information about the x3d-public mailing list