[x3d-public] HAnim and glTF skins

John Carlson yottzumm at gmail.com
Thu Nov 29 10:16:37 PST 2018


Thanks Joseph, I missed the exact wording.  What I wanted to say was x3dom doesn’t support H-Anim 2 skinned deformation. I’m guessing however that one of BoxMan or Kicker is H-Anim 2.0.   Can you clarify? In any case conversion to GPU is still required (for performance) it seems for H-Anim 2.0?

What tasks are left over?

1) Conversion tests for JSON.
2) Schema tests for X3D JSON
3) Conversion to GPU (this is what I’m trying to get you guys to define more clearly).

Searching a bit more might reveal some source code we could use.

Thanks,

John


Sent from Mail for Windows 10

From: Andreas Plesch
Sent: Thursday, November 29, 2018 8:34 AM
To: X3D Graphics public mailing list
Subject: Re: [x3d-public] HAnim and glTF skins

My interest was in supporting animation in glTF inlines  in x3dom. With basic animation pretty much solved as TimeSensor/Interpolator/Route combos, the next step is skinned animation. Since HAnim is actually not strictly limited to humanoids (if the H is ignored), it appears more and more feasible to use it to represent glTF skins and skeletons in a fairly complete manner. At least this is what my first manual translations suggest. I am not familiar with other skinned animation systems but most can export glTF.

Another feature in glTF are morph targets which are independent of skins. They are similar to HAnim displacers but I have not looked very closely if it is possible to define a mapping between them.

One difference is that morph targets can be used outside of a joint hierarchy (skeleton) in glTF whereas displacers are confined to joints and segments within a x3d skeleton. Until displacers are released into the wild, it would mean that glTF meshes with morph targets have to be wrapped in a humanoid node. This seems possible. 

Implementing HAnim vertex wise deformation ultimately needs to be in vertex shaders. This may actually mean using a glTF skin representation since it is perhaps more shader friendly.

-Andreas

---on the phone---

Date: Wed, 28 Nov 2018 16:35:17 -0800
From: Leonard Daly <Leonard.Daly at realism.com>
To: x3d-public at web3d.org
Subject: Re: [x3d-public] HAnim and glTF skins
Message-ID: <20125083-023f-b96a-6586-ab8e6d3ea128 at realism.com>
Content-Type: text/plain; charset="utf-8"; Format="flowed"

Andreas,

I have read all of the messages with this subject. I am responding to 
the first one because I think that is best where my question arises.

Are you working on an understanding and implementation of H-Anim skinned 
animation in X3D or the more general animation of skinned surfaces that 
is done in Maya/Blender/+ in most every other application/use?

If you are doing the more general case would it make more sense to get a 
good understanding of the process and work-flow that is used in those 
applications and practices?

If the intent is to use H-Anim with X3D, you will need to resolve the 
differences between X3D V3.3/H-Anim V1.0 and X3D V4 (not yet in 
existence)/H-Anim V2.0 (perhaps); as you have noted in one of the other 
messages in this chain.


Leonard Daly


> I am collecting information on these skinning systems here:
>
> https://github.com/andreasplesch/x3dom/wiki/HAnim-and-glTF-skins
>
> [This is a editable wiki if anybody wants to add to it]
>
> It looks like the less well known
>
> jointBindingPositions/Rotations/Scales and skinBindingCoords/Normals
>
> fields used for non-humanoid skeletons may be useful but I am not
> certain how to interprete those fields. Castle may not implement those
> as a search did not find a match ?
>
> My understanding is that the transformation matrix defined by these
> fields needs to applied before joint trafos are applied. But to which
> vertices ? The ones listed in skinBindingCoords for sure (if they are
> indexed by skinIndex field in the joint) but how does
> skinBindingCoords and skinCoords field interact ? Does the
> skinBindingCoords field take precedence ? But why then have both
> fields in the first place ?
>
> Could the jointBinding fields equivalently be replaced by a sub-Joint
> node under the joint the fields map to ?
>
> Is there an example using these fields ?
>
> Thanks,
>
> -Andreas
>
>
>
>

-- 
*Leonard Daly*
3D Systems & Cloud Consultant
LA ACM SIGGRAPH Past Chair
President, Daly Realism - /Creating the Future/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20181128/f49fe788/attachment-0001.html>

------------------------------


From: Leonard Daly
Sent: Wednesday, November 28, 2018 4:35 PM
To: x3d-public at web3d.org
Subject: Re: [x3d-public] HAnim and glTF skins

Andreas,

I have read all of the messages with this subject. I am responding to the first one because I think that is best where my question arises.

Are you working on an understanding and implementation of H-Anim skinned animation in X3D or the more general animation of skinned surfaces that is done in Maya/Blender/+ in most every other application/use?

If you are doing the more general case would it make more sense to get a good understanding of the process and work-flow that is used in those applications and practices? 

If the intent is to use H-Anim with X3D, you will need to resolve the differences between X3D V3.3/H-Anim V1.0 and X3D V4 (not yet in existence)/H-Anim V2.0 (perhaps); as you have noted in one of the other messages in this chain.


Leonard Daly

I am collecting information on these skinning systems here:

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

[This is a editable wiki if anybody wants to add to it]

It looks like the less well known

jointBindingPositions/Rotations/Scales and skinBindingCoords/Normals

fields used for non-humanoid skeletons may be useful but I am not
certain how to interprete those fields. Castle may not implement those
as a search did not find a match ?

My understanding is that the transformation matrix defined by these
fields needs to applied before joint trafos are applied. But to which
vertices ? The ones listed in skinBindingCoords for sure (if they are
indexed by skinIndex field in the joint) but how does
skinBindingCoords and skinCoords field interact ? Does the
skinBindingCoords field take precedence ? But why then have both
fields in the first place ?

Could the jointBinding fields equivalently be replaced by a sub-Joint
node under the joint the fields map to ?

Is there an example using these fields ?

Thanks,

-Andreas





-- 
Leonard Daly
3D Systems & Cloud Consultant
LA ACM SIGGRAPH Past Chair
President, Daly Realism - Creating the Future 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20181128/d30e39f7/attachment.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 116, Issue 52
*******************************************

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20181129/d9235b5d/attachment-0001.html>


More information about the x3d-public mailing list