[x3d-public] What are valid children of HAnimHumanoid.skin?
GPU Group
gpugroup at gmail.com
Mon Oct 30 07:41:05 PDT 2023
> MFNode [in,out] skin [] [Group, LOD, Shape, Switch, Transform,
IndexedFaceSet, IndexedFanSet, IndexedLineSet, IndexedQuadSet,
IndexedTriangleSet, IndexedTriangleStripSet]
Freewrl has a problem with the Indexed. things - it needs a Shape node to
wrap geometry for drawing, and HAnimHumanoid doesn't inherit from Shape.
The other things look OK.
-Doug
On Sun, Oct 29, 2023 at 11:04 PM Brutzman, Donald (Don) (CIV) <
brutzman at nps.edu> wrote:
> Please use latest url for X3D 4.0 Architecture:
>
>
>
> -
> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/
> -
> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/components/hanim.html#HAnimHumanoid
>
>
>
> HAnimHumanoid : X3DChildNode, X3DBoundedObject {
>
> […]
>
> MFNode [in,out] skin [] [Group, LOD, Shape, Switch, Transform,
> IndexedFaceSet, IndexedFanSet, IndexedLineSet, IndexedQuadSet,
> IndexedTriangleSet, IndexedTriangleStripSet]
>
>
>
> Further please note that the functional descriptions are provided in the
> HAnim 2.0 standard:
>
>
>
> - HAnim 2.0 Part 1: Humanoid animation (HAnim) architecture, 6 Object
> interfaces, 6.2 Humanoid
> -
> https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid
>
>
>
> “The *skin* field contains one or more indexed mesh definitions. Those
> indexed mesh definitions utilize the point and normal data that is defined
> within the *skinCoord* and *skinNormal* fields, respectively, of the
> *Humanoid* object. This field is defined as an generic type for which the
> specific representation is defined by each binding to a presentation
> system. Annex C VRML binding
> <https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/VRMLInterface.html> contains
> a binding for VRML. Annex D X3D binding
> <https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/X3DInterface.html> describes
> the Humanoid animation component of X3D specified in ISO/IEC 19775-1
> <https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/bibliography.html#I19775_1>
> .”
>
>
>
>
>
> all the best, Don
>
> --
>
> Don Brutzman Naval Postgraduate School, Code USW/Br
> brutzman at nps.edu
>
> Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA
> +1.831.656.2149
>
> X3D graphics, virtual worlds, navy robotics
> https://faculty.nps.edu/brutzman
>
>
>
> *From:* x3d-public <x3d-public-bounces at web3d.org> *On Behalf Of *GPU Group
> *Sent:* Sunday, October 29, 2023 5:56 AM
> *To:* John Carlson <yottzumm at gmail.com>
> *Cc:* X3D Graphics public mailing list <x3d-public at web3d.org>
> *Subject:* Re: [x3d-public] What are valid children of
> HAnimHumanoid.skin? argument for allowing containerFields in x3d.py
>
>
>
>
> 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/20231030/f33bfa40/attachment-0001.html>
More information about the x3d-public
mailing list