[x3d-public] HAnim sample failing in X3DOM, error in view3dscene, additional tests

Andreas Plesch andreasplesch at gmail.com
Sat Jun 24 20:05:52 PDT 2023


On Fri, Jun 23, 2023 at 5:39 PM Joseph D Williams <joedwil at earthlink.net>
wrote

>>>. So, if the tool does not do that, the user may be disappointed. In the
long past most every player had many ’tolerant’ behaviors.

It is nice to have more tolerant viewers but a user should not be
disappointed if an non-valid scene generates errors or does not display.

If there was a defacto standard behavior in the long past, that means there
may be a good reason to formalize that behaviour. Alternatively, dedicated
validation tools could help with detecting and then correcting incomplete
and therefore invalid content.

Thanks,

-Andreas


> Thanks,
>
> Joe
>
>
>
>
>
>
>
>
>
> *From: *Andreas Plesch <andreasplesch at gmail.com>
> *Sent: *Thursday, June 22, 2023 2:52 PM
> *To: *Michalis Kamburelis <michalis.kambi at gmail.com>
> *Cc: *John Carlson <yottzumm at gmail.com>; Brutzman, Donald (Don) (CIV)
> <brutzman at nps.edu>; Joe D Williams <joedwil at earthlink.net>; X3D Graphics
> public mailing list <x3d-public at web3d.org>
> *Subject: *Re: HAnim sample failing in X3DOM, error in view3dscene,
> additional tests
>
>
>
> Also agreed on performance impacts. There are set_index in fields for the
> index fields, meaning that dynamic changes to the indices are allowed. This
> is impacting performance in itself and if checking and potentially filling
> in values would be required as well it would further affect performance on
> a per frame basis.
>
>
>
> For example, Three.js is very strict, for performance reasons, in
> expecting all input to its interfaces to be valid. It does not perform
> error checking itself.
>
>
>
> I only mentioned spec changes because in practice users - after a warning
> - would still expect some non-fatal behaviour anyways which requires
> checking and potentially filling in or altering values. So why not
> standardize this behaviour ?
>
>
>
> I think I may add checking and recycling with a warning only to the
> initial setup of the IFS node but not for dynamic changes via routes or
> SAI. Animating textures through texcoord indices seems a valid use case.
>
>
>
> Cheers,
>
>
>
> -Andreas
>
>
>
> On Thu, Jun 22, 2023 at 12:36 PM Michalis Kamburelis <
> michalis.kambi at gmail.com> wrote:
>
> I would be against introducing spec wording to guarantee any behavior when
> there's not enough per-vertex data.
>
>
>
> 1. There's no obvious resolution (replicating last texture coordinate may
> not be "what the author wanted" -- the texture will be likely weirdly
> stretched),
>
>
>
> 2. Other model formats also don't specify anything in this case. It's just
> invalid model causing undefined behavior for glTF, Collada etc.
>
>
>
> 3. It may be a performance issue in some scenarios. Some browsers could be
> bundled with models essentially guaranteed to be correct (e.g. when you
> deliver a game runtime + game assets locally). ( This is just a theoretical
> example, CGE doesn't do this now -- we check models for correctness the
> same, no matter if it's in view3dscene or in some game using CGE. ) Such
> browsers can right now upload the data to GPU in a straightforward fashion
> without checking for correctness. Or just check for correctness and fail if
> the model is wrong. If the browsers will have to instead potentially
> process the data, because even correct models may not have enough data...
> then we've lost performance in some cases.
>
>
>
>     Basically, if we allow something in the spec as "valid model", then we
> make a guarantee it is supported. Authors will use it, and developers have
> to make sure it is supported. In this particular case, I'd say the benefit
> (supporting models where someone likely just made a mistake) is not big
> enough to justify the costs (need to process per-vertex data, doing
> operation that may not be what author wanted anyway).
>
>
>
> The arguments 1 and 2 are really critical for me. There's no sensible
> default behavior to do IMHO, author should get a clear message "this is
> invalid model, please fix it".
>
>
>
> Regards,
>
> Michalis
>
>
>
> czw., 22 cze 2023 o 17:55 Andreas Plesch <andreasplesch at netscape.net>
> napisał(a):
>
> Agreed. I can add a warning to the x3dom console log. But checking for
> correctness is really the job of a validator, not necessarily of a viewer.
> This is also true for glTF, and probably Collada, which have their own
> dedicated validators.
>
>
>
> Another possibility is to change the spec. to define a behaviour other
> than undefined, unpleasant as it is. The simplest would be probably "use
> the last available" to fill in missing
> 2d3d4dtexcoords/2d3dcoords/rgbrgbacolors . Alternatively, "replace out of
> range indices with the highest in range index". Very similar but has some
> consequences for event routing since different fields are altered.
>
>
>
> -Andreas
>
>
>
> On Thu, Jun 22, 2023 at 8:10 AM Michalis Kamburelis <
> michalis.kambi at gmail.com> wrote:
>
> Andreas,
>
>
>
> I especially agree with statement """I can add recycling of texCoords in
> x3dom for such a case but it is almost not worth doing since the problem is
> that there are many reasonable strategies to divine an author's
> intention""" :)
>
>
>
> Exactly -- there are many possible options "what to do, what was the
> author's intention". There are even more options if we recall that texture
> coordinates may also be 3D and 4D, for 3D textures. And the same issue can
> occur with other per-vertex data, e.g. colors per vertex, normals, fog
> coordinates, shader attributes.
>
>
>
> My recommendation would be to first make a clear warning/error to user
> about it, so that users know to fix this issue in the model. This is also
> what (from my knowledge) everyone else does -- glTF, Collada, Wavefront
> OBJ... they all have some indexes and texture coordinates, and they just
> require that author provides enough texture coordinates. It's undefined
> what happens if model is invalid, it is even possible that renderer uploads
> to GPU something invalid and then GPU decides what happens (but letting GPU
> choose the undefined behavior is not good from security standpoint --
> ideally the renderer should catch it and make reliable error/warning).
>
>
>
> We don't want to have a talk in +5 years """OK, what do we do with not
> enough per-vertex data, because FreeWRL now fills it with zeroes, X3DOM
> cycles from beginning, CGE fills it with 1s""" etc. :) We want our
> resolution to be "such models are invalid, authors should get message about
> it and know to fix the models".
>
>
>
> Regards,
>
> Michalis
>
>
>
>
>
> czw., 22 cze 2023 o 03:40 John Carlson <yottzumm at gmail.com> napisał(a):
>
> Here's a near perfect file before scaling.  Still working on that as it
> view3dscene is reporting metadata errors.
>
>
>
> On Wed, Jun 21, 2023 at 7:09 PM Brutzman, Donald (Don) (CIV) <
> brutzman at nps.edu> wrote:
>
> Diagnostic reports for JinLOA4.x3d, file size  684156
>
>
>
> ·
> https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.x3d
>
>
>
> 1.      X3D-Edit checkmark for X3D Validator reports
>
>
>
> --------- X3D Validator checks commenced for JinLOA4.x3d ---------
>
>
>
> Performing well-formed XML check...
>
> Checking file:/C:/x3d-code/
> www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.x3d.
> ..
>
> Well-formed XML check: pass
>
>
>
> Performing DOCTYPE check...
>
> [X3dDoctypeChecker] success: valid XML declaration
> found.[X3dDoctypeChecker] success: final X3D 4.0 DOCTYPE found.
>
>
>
> Performing DTD validation...
>
> Checking file:/C:/x3d-code/
> www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.x3d.
> ..
>
> XML DTD validation: pass
>
>
>
> Performing X3D schema validation...
>
> Checking file:/C:/x3d-code/
> www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.x3d.
> ..
>
> Referenced entity at
> http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd
> .
>
> Referenced entity at http://www.w3.org/2001/XMLSchema.dtd.
>
> Referenced entity at http://www.w3.org/2001/datatypes.dtd.
>
> XML schema validation: pass
>
>
>
> Performing X3D regular expression (regex) values check...
>
> X3D regex check: complete
>
>
>
> Performing X3dToX3dvClassicVrmlEncoding.xslt conversion check...
>
>
>
> Performing X3D Schematron check...
>
> X3D version 4.0 is approved by Web3D Consortium and focused on
> interoperability with HTML5, glTF2.0 Physically Based Rendering (PBR) and
> Web Audio API, undergoing final administrative review by ISO in 2023.
> [/X3D, diagnostic]
>
> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> version='2.0' with X3D
> version='4.0' [/X3D/Scene/HAnimHumanoid, diagnostic]
>
> ====================================================================================================================
> [/X3D/Scene/HAnimHumanoid, diagnostic]
>
> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
> count(HAnimJoint)           within skeleton hierarchy        =
> 146[/X3D/Scene/HAnimHumanoid, diagnostic]
>
> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
> count(HAnimSegment)         within skeleton hierarchy        =
> 146[/X3D/Scene/HAnimHumanoid, diagnostic]
>
> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
> count(HAnimSite)            within HAnimHumanoid             =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
>
> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
> count(HAnimSite//Viewpoint) within skeleton hierarchy        =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
>
> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
> count(HAnimDisplacer)       within skeleton hierarchy        =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
>
> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
> count(<HAnimJoint   USE='*' containerField = 'joints'/>)     =
> 146[/X3D/Scene/HAnimHumanoid, diagnostic]
>
> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
> count(<HAnimSegment USE='*' containerField = 'segments'/>)   =
> 146[/X3D/Scene/HAnimHumanoid, diagnostic]
>
> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
> count(<HAnimSite    USE='*' containerField = 'sites'/>)      =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
>
> <HAnimHumanoid DEF='hanim_JinLOA4' name='JinLOA4'/> node
> count(<HAnimSite    DEF='*' name ends with '_view'/>)        =
> 0[/X3D/Scene/HAnimHumanoid, diagnostic]
>
> ====================================================================================================================
> [/X3D/Scene/HAnimHumanoid, diagnostic]
>
> <HAnimJoint DEF='hanim_l_tarsal_distal_interphalangeal_1'
> name='l_tarsal_distal_interphalangeal_1'/> is not a recognized name for
> HAnim2 HAnimJoint
> [/X3D/Scene/HAnimHumanoid/HAnimJoint[1]/HAnimJoint/HAnimJoint[1]/HAnimJoint/HAnimJoint/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint/HAnimJoint/HAnimJoint,
> warning]
>
> <HAnimSegment DEF='hanim_l_tarsal_distal_phalanx_1'
> name='l_tarsal_distal_phalanx_1'/> has parent HAnimJoint
> name='l_tarsal_distal_interphalangeal_1' rather than expected parent
> name='l_tarsal_interphalangeal_1', recommend checking model
> [/X3D/Scene/HAnimHumanoid/HAnimJoint[1]/HAnimJoint/HAnimJoint[1]/HAnimJoint/HAnimJoint/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimSegment,
> warning]
>
> <HAnimJoint DEF='hanim_r_tarsal_distal_interphalangeal_1'
> name='r_tarsal_distal_interphalangeal_1'/> is not a recognized name for
> HAnim2 HAnimJoint
> [/X3D/Scene/HAnimHumanoid/HAnimJoint[1]/HAnimJoint/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint/HAnimJoint/HAnimJoint,
> warning]
>
> <HAnimSegment DEF='hanim_r_tarsal_distal_phalanx_1'
> name='r_tarsal_distal_phalanx_1'/> has parent HAnimJoint
> name='r_tarsal_distal_interphalangeal_1' rather than expected parent
> name='r_tarsal_interphalangeal_1', recommend checking model
> [/X3D/Scene/HAnimHumanoid/HAnimJoint[1]/HAnimJoint/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint[1]/HAnimJoint[1]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimSegment,
> warning]
>
> <HAnimJoint DEF='hanim_vl5' name='vl5'/> has parent HAnimJoint
> name='sacroiliac' rather than expected parent name='humanoid_root',
> recommend checking model
> [/X3D/Scene/HAnimHumanoid/HAnimJoint[1]/HAnimJoint/HAnimJoint[3], warning]
>
> <HAnimJoint DEF='hanim_l_carpometacarpal_5' name='l_carpometacarpal_5'/>
> has parent HAnimJoint name='l_radiocarpal' rather than expected parent
> name='l_midcarpal_4_5', recommend checking model
> [/X3D/Scene/HAnimHumanoid/HAnimJoint[1]/HAnimJoint/HAnimJoint[3]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[2]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[5],
> warning]
>
> <HAnimJoint DEF='hanim_r_carpometacarpal_5' name='r_carpometacarpal_5'/>
> has parent HAnimJoint name='r_radiocarpal' rather than expected parent
> name='r_midcarpal_4_5', recommend checking model
> [/X3D/Scene/HAnimHumanoid/HAnimJoint[1]/HAnimJoint/HAnimJoint[3]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[3]/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint/HAnimJoint[5],
> warning]
>
>
>
> --------- X3D Validator checks complete for JinLOA4.x3d ---------
>
>
>
>
>
> 2.      Andreas link to X3DOM Editor
>
>
>
> ·
> https://andreasplesch.github.io/Library/Viewer/index.html?url=https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.x3d
>
>
>
> provides following console:
>
>
>
> Error with Permissions-Policy header: Origin trial controlled feature not
> enabled: 'interest-cohort'.
>
> x3dom-full.debug.js:65740  Uncaught (in promise) TypeError: Cannot read
> properties of undefined (reading 'x')
>
>     at x3dom.registerNodeType.defineClass.nodeChanged.nodeChanged
> (x3dom-full.debug.js:65740:90)
>
>     at x3dom.NodeNameSpace.setupTree (x3dom-full.debug.js:12112:19)
>
>     at x3dom.NodeNameSpace.<anonymous> (x3dom-full.debug.js:12105:34)
>
>     at NodeList.forEach (<anonymous>)
>
>     at x3dom.NodeNameSpace.setupTree (x3dom-full.debug.js:12103:36)
>
>     at x3dom.NodeNameSpace.<anonymous> (x3dom-full.debug.js:12105:34)
>
>     at NodeList.forEach (<anonymous>)
>
>     at x3dom.NodeNameSpace.setupTree (x3dom-full.debug.js:12103:36)
>
>     at x3dom.NodeNameSpace.<anonymous> (x3dom-full.debug.js:12105:34)
>
>     at NodeList.forEach (<anonymous>)
>
> nodeChanged @ x3dom-full.debug.js:65740
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12112
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> (anonymous) @ x3dom-full.debug.js:12105
>
> x3dom.NodeNameSpace.setupTree @ x3dom-full.debug.js:12103
>
> x3dom.X3DDocument._setup @ x3dom-full.debug.js:21793
>
> next_step @ x3dom-full.debug.js:21731
>
> next_step @ x3dom-full.debug.js:21743
>
> x3dom.X3DDocument.load @ x3dom-full.debug.js:21747
>
> x3dom.X3DCanvas.load @ x3dom-full.debug.js:2121
>
> onload @ x3dom-full.debug.js:20366
>
> x3dom.reload @ x3dom-full.debug.js:20429
>
> x3dom.Runtime.replaceWorld @ x3dom-full.debug.js:20043
>
> updatex3d @ index.html?url=
> https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.x3d:228
>
> load @ index.html?url=
> https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.x3d:214
>
>
>
>
>
> 3. am getting similar browser console error if launched directly in X3DOM
>
>
>
> ·
> https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4X3dom.xhtml
>
>
>
>
>
> 4.      view3dscene (launched from X3D-Edit) reports
>
>
>
>
>
> Suggestion: add a button to view3dscene diagnostic that enables user to
> “Copy to clipboard” – usually this is provided.
>
>
>
> Closing the X3DOM editor did not fix this access problem.
>
>
>
> Closing the X3D-Edit pane for this problem did not fix this access
> problem, but closing X3D-Edit executable (surprisingly) did. Not sure why,
> will look further at that.
>
>
>
> Now view3dscene renders the model and provides 11 warnings:
>
>
>
> 11 warnings:
>
>
>
> X3D: Unknown X3D field name (unhandled X3D XML attribute) "loa" in node
> "HAnimHumanoid"
>
> X3D: Error when reading MFString field "value" value. Possibly missing
> double quotes (treating as a single string): Error at line 1 column 4:
> Expected string, got "Jin"
>
> X3D: Error when reading MFString field "value" value. Possibly missing
> double quotes (treating as a single string): Error at line 1 column 19:
> Expected string, got "myeongwonlee at gmail"
>
> X3D: X3D XML: More than one value specified for SFNode field
> MetadataSet.metadata
>
> X3D: Error when reading MFString field "value" value. Possibly missing
> double quotes (treating as a single string): Error at line 1 column 3:
> Expected string, got integer 31
>
> X3D: X3D XML: More than one value specified for SFNode field
> MetadataSet.metadata
>
> X3D: Error when reading MFString field "value" value. Possibly missing
> double quotes (treating as a single string): Error at line 1 column 7:
> Expected string, got "female"
>
> X3D: X3D XML: More than one value specified for SFNode field
> MetadataSet.metadata
>
> X3D: X3D XML: More than one value specified for SFNode field
> MetadataSet.metadata
>
> X3D: X3D XML: More than one value specified for SFNode field
> MetadataSet.metadata
>
> X3D: Invalid index for field TextureCoordinate.point (MFVec2f)
>
>
>
> Scene URL: file:///C:/x3d-code/
> www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.x3d
> .
>
> Use "File->View Warnings" menu to view these warnings again.
>
>
>
>
>
>
>
> 5.      Testing in X_ITE: renders fine, shows no errors in console.
>
>
>
> ·
> https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4X_ITE.html
>
>
>
> 6.      Xj3D has a verbose console without any errors apparent,  However
> only renders a black screen.
>
> 7.
>
> Xj3D Xj3dVersionInformation: v2.3-nps utilizing NPS Open DIS v7
>
> with 3D rendering by
>
>
> -----------------------------------------------------------------------------------------------------
>
> Package: org.j3d.aviatrix3d
>
> Extension Name: org.j3d.aviatrix3d
>
> Specification Title: Aviatrix3D 3.1.1-nps - NPS SF
>
> Specification Vendor: Justin Couch
>
> Specification Version: 3.1.1
>
> Implementation Title: Aviatrix3D 3.1.1-nps - NPS SF
>
> Implementation Vendor: Savage Research Group (SRG) of the Modeling,
> Virtual Environments and Simulation (MOVES) Institute at the Naval
> Postgraduate School (NPS), Monterey, CA
>
> Implementation Vendor ID: edu.nps.moves
>
> Implementation URL:
> https://svn.code.sf.net/p/xj3d/code/branches/Supporting_APIs/aviatrix3d
>
> Implementation Version: 3.1.1-nps built on Fri, 26 May 2023 1434 -0700
>
> Implementation Build: 3.1.1-nps
>
> Implementation Branch: branches/Supporting_APIs/aviatrix3d
>
> Implementation Commit: 12701
>
> Implementation SHA Sources: null
>
> Implementation SHA Classes: null
>
> Implementation SHA Classes-this: null
>
> Implementation SHA Natives: null
>
> Implementation SHA Natives-this: null
>
>
> -----------------------------------------------------------------------------------------------------
>
> on top of
>
>
> -----------------------------------------------------------------------------------------------------
>
> Package: com.jogamp
>
> Extension Name: com.jogamp
>
> Specification Title: JogAmp Java Bindings Specification
>
> Specification Vendor: JogAmp Community
>
> Specification Version: 2.5
>
> Implementation Title: JogAmp Java Bindings Fat Jar
>
> Implementation Vendor: JogAmp Community
>
> Implementation Vendor ID: com.jogamp
>
> Implementation URL: http://jogamp.org/
>
> Implementation Version: 2.5.0-rc-20230515
>
> Implementation Build: 2.5-b957-20230515
>
> Implementation Branch: origin/master
>
> Implementation Commit: 9301bf1854d91405319801b62c268e2ca09406e6
>
> Implementation SHA Sources: null
>
> Implementation SHA Classes: null
>
> Implementation SHA Classes-this: null
>
> Implementation SHA Natives: null
>
> Implementation SHA Natives-this: null
>
> -----------------------------------------------------------------------------------------------------
>
>
> Operating system: Windows 10 10.0
>
> Java environment: Oracle Corporation 20.0.1
>
>
>
> BuildStamp time and date: 1436 on May 26 2023
>
>
>
> Initializing OpenGL X3D browser in GLCanvas (AWT) mode.
>
>
>
> Graphics architecture will support 16 samples of full screen antialiasing.
>
> Warning: Native image loading unavailable, using default.
>
>
>
>
>
> 8.      Not seeing any texture coordinate arithmetic problems.  There is
> probably a rule in X3D Schematron (within X3D Validator) to test for that.
> Recommend checking further and we can define/implement further validation
> rules as needed.
>
>
>
> 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:* John Carlson <yottzumm at gmail.com>
> *Sent:* Wednesday, June 21, 2023 2:25 PM
> *To:* Andreas Plesch <andreasplesch at gmail.com>; Brutzman, Donald (Don)
> (CIV) <brutzman at nps.edu>; Joe D Williams <joedwil at earthlink.net>
> *Cc:* Michalis Kamburelis <michalis.kambi at gmail.com>; x3dom mlist <
> x3dom-users at lists.sourceforge.net>; x3dom-developer mlist <
> x3dom-developers at lists.sourceforge.net>
> *Subject:* Re: HAnim sample failing in X3DOM, error in view3dscene.
>
>
>
> Yes, good analysis Andreas and Michalis, I concluded the same thing.  I
> understand that i can bisect the file…easier said than done.  What i can do
> is write a program to find the bug and then extend output model with a key
> phrase in the TextureCoordinate point field.  That will be easier that
> searching by hand.
>
>
>
> I suggest a change to the x3d validator.
>
>
>
> John
>
>
>
> On Wed, Jun 21, 2023 at 10:45 AM Andreas Plesch <andreasplesch at gmail.com>
> wrote:
>
> I agree with Michalis' analysis and also remember a similar discussion, I
> think with regards to Joe's kick model.
>
>
>
>
> https://andreasplesch.github.io/Library/Viewer/index.html?url=https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Characters/JinLOA4.x3d
> <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fandreasplesch.github.io%2FLibrary%2FViewer%2Findex.html%3Furl%3Dhttps%3A%2F%2Fwww.web3d.org%2Fx3d%2Fcontent%2Fexamples%2FHumanoidAnimation%2FCharacters%2FJinLOA4.x3d&data=05%7C01%7Cbrutzman%40nps.edu%7C8b5b4f2f27684455446308db729dfd41%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C638229795120886399%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=LVKN%2BcRGX7NgY6H28BVXR7iSmCefJaYdX7W17qUVnlY%3D&reserved=0>
>
>
>
> lets you edit the xml interactively and perhaps can aid in finding the
> missing tex. coords.
>
>
>
> Cheers, Andreas
>
>
>
> On Wed, Jun 21, 2023 at 10:43 AM Michalis Kamburelis <
> michalis.kambi at gmail.com> wrote:
>
> There are not enough texture coordinates specified. The X3D model isn't
> valid.
>
>
>
> (We talked about this on x3d-public already some time ago, see thread
> "[x3d-public] New description fields".)
>
>
>
> Details:
>
>
>
> - Renderer doesn't have enough information what texture coordinate to
> assign to some vertexes. (And there's no reasonable fallback, e.g. "use
> last texture coordinate" wouldn't make sense -- that's not a useful thing
> to do with texture coordinates, at least in general models it wouldn't make
> sense, better to ask user to provide all texture coordinates.)
>
>
>
> - Spec:
> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD/Part01/components/geometry3D.html#IndexedFaceSet
> , texts like
>
>
>
>     - """If the greatest index in the texCoordIndex field is N, then there
> shall be N+1 texture coordinates in the X3DTextureCoordinateNode."""
>
>
>
>     - """If the greatest index in the coordIndex field is N, then there
> shall be N+1 texture coordinates in the X3DTextureCoordinateNode node."""
>
>
>
> I improved the view3dscene error message to say:
>
>
> X3D: Invalid index 44 (should be less than count 44) for field
> TextureCoordinate.point (type: MFVec2f)
>
>
>
> To pinpoint it (as I see there are many TextureCoodinate nodes), you can
> bisect the model (cut away this or that half, and see when it stops
> failing), or assign names to X3D names to pinpoint it, i.e. edit X3D to
> change
>
>
>
> <TextureCoordinate ...
>
>
>
> ->
>
>
>
> <TextureCoordinate DEF="something unique" ...
>
>
>
> Unfortunately in view3dscene we don't have at that point knowledge about
> exact line number from XML file -- I know, it would be useful in this case,
> to say "the problem is at TextureCoordinate at line 123 in X3D XML".
>
>
>
> Regards,
>
> Michalis
>
>
>
>
>
> śr., 21 cze 2023 o 15:15 John Carlson <yottzumm at gmail.com> napisał(a):
>
> I'm having issues with the attached file in X3DOM.  Thanks for any
> assistance!
>
>
>
> Here's what the errors show in view3dscene:
>
>
>
>
>
> x3dom-full.debug.js:65877  Uncaught TypeError: Cannot read properties of
> undefined (reading 'x')
>
>     at x3dom.registerNodeType.defineClass.nodeChanged.nodeChanged
> (x3dom-full.debug.js:65877:90)
>
>     at x3dom.NodeNameSpace.setupTree (x3dom-full.debug.js:12167:19)
>
>     at x3dom.NodeNameSpace.<anonymous> (x3dom-full.debug.js:12160:34)
>
>     at NodeList.forEach (<anonymous>)
>
>     at x3dom.NodeNameSpace.setupTree (x3dom-full.debug.js:12158:36)
>
>     at x3dom.NodeNameSpace.<anonymous> (x3dom-full.debug.js:12160:34)
>
>     at NodeList.forEach (<anonymous>)
>
>     at x3dom.NodeNameSpace.setupTree (x3dom-full.debug.js:12158:36)
>
>     at x3dom.NodeNameSpace.<anonymous> (x3dom-full.debug.js:12160:34)
>
>     at NodeList.forEach (<anonymous>)
>
>
>
>
> --
>
> Andreas Plesch
> Waltham, MA 02453
>
>
>
>
> --
>
> Andreas Plesch
> Waltham, MA 02453
>
>
>


-- 
Andreas Plesch
Waltham, MA 02453
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230624/9e441995/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 774AAD7D16FA47EB917EF22C219DF498.png
Type: image/png
Size: 55497 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230624/9e441995/attachment-0004.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D221D345040C4E87A553D1093BC8F25D.png
Type: image/png
Size: 150061 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230624/9e441995/attachment-0005.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: A2B67AFAC6244DD8BF90135FC050C6BD.png
Type: image/png
Size: 110095 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230624/9e441995/attachment-0006.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: B0E2396B7A8D4E0F8D125C347BFEFD03.png
Type: image/png
Size: 78422 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230624/9e441995/attachment-0007.png>


More information about the x3d-public mailing list