[x3d-public] What are valid children of HAnimHumanoid.skin? argument for allowing containerFields in x3d.py

John Carlson yottzumm at gmail.com
Mon Oct 30 18:18:44 PDT 2023


If I cannot add containerField=‘joints’ to the children of the
HAnimHumanoid.joints containerField, then view3dscene complains very
loudly.  I can’t fix this by modifying a Python program that uses x3d.py.
 x3d.py needs to add containerField by itself.  If this isn’t fixed, then
any HAnim XML output from x3d.py containing a skeleton, indeed any required
containerField value anywhere in X3D XML will either bomb or warn in the
browser.  This includes stuff like cubemaps with the 6 sides.

It it really an issue of providing an example when examples are ignored?

I am not suggesting this only for HAnim, this is systemic result of not
validating x3d.py XML output.  I know why this was not done, but the people
actually validating XML output should be listened to.  The ones not
validating XML output from x3d.py output should be ignored.

But who can tell at this point?  Who has shown actual output from
validation with X3D-Edit?

Show output from your validation tests with X3D-Edit and tovrmlx3d, please.

Thanks,

Johhn

On Sat, Oct 28, 2023 at 2:16 PM Joe D Williams <joedwil at earthlink.net>
wrote:

> > argument for allowing containerFields in x3d.py
>
>
>
> I don't understand. If no container fields then not able to do all of x3d.
> We had to use containerField for the admittedly rare instance where the
> default is not true. These are cases where looking up the containerField in
> schema is not enough.
>
>
>
> Some are tricky, like skeleton where only the root Joint has to have the
> containerField as skeleton.
>
>
>
> skin contains a Shape which does not have children.
>
>
>
> However we are investigating the idea of  how to code LOD choices for
> skin. I think we already know how to do that for that for Segment geometry.
>
>
>
>
> Thanks,
>
> Joe
>
>
>
>
>
> -----Original Message-----
> From: John Carlson <yottzumm at gmail.com>
> Sent: Oct 26, 2023 10:08 AM
> To: Joe D Williams <joedwil at earthlink.net>, X3D Graphics public mailing
> list <x3d-public at web3d.org>
> Subject: What are valid children of HAnimHumanoid.skin? argument for
> allowing containerFields in x3d.py
>
>
>
> From: https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/components/hanim.html#HAnimHumanoid
>
> I see:
>
> MFNode     [in,out] skin                  []       [IndexedFaceSet, IndexedFanSet, IndexedQuadSet, IndexedTriangleSet, IndexedTriangleStripSet]
>
> And fromL https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid
>
> sequence<Object>   skin                  []           [indexed mesh objects as defined by the representation]
>
>
>
> But in actual practice, I see:
>
>
>
> <Shape DEF='Joe_Shape <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#Joe_Shape>' containerField='skin'>
>
> <Appearance DEF='Joe_skin_Appearance
> <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#Joe_skin_Appearance>
> '>
> <Material DEF='Joe_skin_Material
> <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#Joe_skin_Material>
> ' diffuseColor='0.3 0.3 0.6' emissiveColor='0.3 0.3 0.6'/>
> <ImageTexture DEF='JoeSkinImageTexture
> <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#JoeSkinImageTexture>
> '
>   url=' "JoeBodyTexture29.png
> <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeBodyTexture29.png>"
> "
> https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeBodyTexture29.png
>
> <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeBodyTexture29.png>"
> ' />
> <!-- *ROUTE* information for KickTextureTransform node:  [*from*
> SkinInterpolator.value_changed *to* rotation
> <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#ROUTE_194>]
> -->
> <TextureTransform DEF='KickTextureTransform
> <https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.html#KickTextureTransform>
> '/>
> </Appearance>
>
> From:
>
>
> https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickIndex.html
>
> And
>
> skin [
>         DEF Joe_Shape Shape {
>           appearance DEF Joe_skin_Appearance Appearance {
>             material DEF Joe_skin_Material Material {
>               diffuseColor 0.3 0.3 0.6
>               emissiveColor 0.3 0.3 0.6
>             }
>             texture DEF JoeSkinImageTexture ImageTexture {
>               url [ "JoeBodyTexture29.png" "
> https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JoeBodyTexture29.png"
> ]
>             }
>             textureTransform DEF KickTextureTransform TextureTransform {
>             }
>           }
> ==================================================
> So it would seem like Shapes with an Indexed geometry is what we're aiming
> for in the standard as one of the possibly many children of the skin
> container field (note the space).
>
> That is all okay, AFAIAC, just extremely confusing when deciding where to
> add containerFields in DOM documents.
>
>
> For example, consider the below:
>
>                 <HAnimJoint USE='hanim_l_carpal_distal_interphalangeal_4'/>
>                 <HAnimJoint USE='hanim_l_metacarpophalangeal_3'/>
>                 <HAnimJoint
> USE='hanim_l_carpal_proximal_interphalangeal_3'/>
>                 <HAnimJoint USE='hanim_l_carpal_distal_interphalangeal_3'/>
>                 <HAnimJoint USE='hanim_l_metacarpophalangeal_2'/>
>                 <HAnimJoint
> USE='hanim_l_carpal_proximal_interphalangeal_2'/>
>                 <HAnimJoint USE='hanim_l_carpal_distal_interphalangeal_2'/>
> [ etc. ]
>
> It may not be apparent, but X3DJSAIL complains about this. There's no
> containerField='joints', right?  But I'm generating this code using x3d.py
> which doesn't allow me to list containerFields!
>
> Grr!  Here are some of the "brutzman" messages from X3DJSAI, which are
> valid.  I really want to assign joints as a containerField, so perhaps I
> will just do it in X3DJSONLD.
>
>     [apply] [error] X3DLoaderDOM: Parent-child node relationship not
> found! (parent HAnimHumanoid, child HAnimJoint, containerField='children')
> Please report this problem to brutzman at nps.edu
>     [apply] [error] X3DLoaderDOM: Parent-child node relationship not
> found! (parent HAnimHumanoid, child HAnimJoint, containerField='children')
> Please report this problem to brutzman at nps.edu
>     [apply] [error] X3DLoaderDOM: Parent-child node relationship not
> found! (parent HAnimHumanoid, child HAnimJoint, containerField='children')
> Please report this problem to brutzman at nps.edu
>     [apply] [error] X3DLoaderDOM: Parent-child node relationship not
> found! (parent HAnimHumanoid, child HAnimJoint, containerField='children')
> Please report this problem to brutzman at nps.edu
>     [apply] [error] X3DLoaderDOM: Parent-child node relationship not
> found! (parent HAnimHumanoid, child HAnimJoint, containerField='children')
> Please report this problem to brutzman at nps.edu
>     [apply] [error] X3DLoaderDOM: Parent-child node relationship not
> found! (parent HAnimHumanoid, child HAnimJoint, containerField='children')
> Please report this problem to brutzman at nps.edu
>     [apply] [error] X3DLoaderDOM: Parent-child node relationship not
> found! (parent HAnimHumanoid, child HAnimJoint, containerField='children')
> Please report this problem to brutzman at nps.edu
>     [apply] [error] X3DLoaderDOM: Parent-child node relationship not
> found! (parent HAnimHumanoid, child HAnimJoint, containerField='children')
> Please report this problem to brutzman at nps.edu
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20231030/51022bce/attachment-0001.html>


More information about the x3d-public mailing list