[x3d-public] What are valid children of HAnimHumanoid.skin? argument for allowing containerFields in x3d.py
GPU Group
gpugroup at gmail.com
Sun Oct 29 05:55:38 PDT 2023
https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/hanim.html#HAnimHumanoid
- skin [IndexedFaceSet, X3DGroupingNode, Shape]
I haven't tried it but I don't see how freewrl could render a skin with
bare IFS, it needs to be wrapped in at least a Shape, and HAnimHumanoid
doesn't inherit from Shape
HAnimHumanoid : X3DChildNode, X3DBoundedObject
On Sun, Oct 29, 2023 at 6:45 AM GPU Group <gpugroup at gmail.com> wrote:
> xml with no containerField > freeWRL: Group and Transform, and today I
> added Shape.
> Basically whatever ends up in that skin field, freewrl renders as normal
> scenegraph, so you can have a transform hierarchy of skin chunks / shapes
> and freewrl doesn't mind. (It's the skeleton and coordinate field that
> changes the shape of anything that uses the same coordinates, and the scene
> author presumes there's no weird transforms between chunks, but freewrl
> doesn't enforce that).
> -Doug
>
> On Sun, Oct 29, 2023 at 4:24 AM John Carlson <yottzumm at gmail.com> wrote:
>
>> * I am specifically speaking of the lack of containerField in XML output
>> from x3d.py. I also have issues with overuse of the “children”container
>> fields in VRML. I am speaking of instances where view3dscene reports an
>> error or does not show the scene (even trying tovrmlx3d would help). The
>> problem stems from lack of testing on HAnim VRML and XML outputs from
>> x3d.py. I could show Don an example, but he’s got a whole section of the
>> archive devoted to examples which do show the same behavior when tested
>> properly.
>>
>> One cannot just type in “containerField” in a python program and expect
>> x3d.py to list it in output. I might be able to subclass, but that would
>> require my own X3dToPython.xslt stylesheet.
>>
>> * Skin/shape is another topic in the email. See standard, where Shape is
>> not mentioned under skin, rather, indexed mesh nodes are. There is no
>> children field under Shape, but there’s a skin field under HAnimHumanoid.
>> Skin has an MFNode field type, and has SFNode children, AFAIK. The
>> question is whether these children should be Shapes or indexed meshes.
>>
>> 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
>>>
>>>
>>>
>> _______________________________________________
>> 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/20231029/fda13ff3/attachment-0001.html>
More information about the x3d-public
mailing list