[x3d-public] X3D 4.0 specification problem: upVector field for TextureProjector, TextureProjectorParallel
Brutzman, Donald (Don) (CIV)
brutzman at nps.edu
Fri Dec 13 10:01:06 PST 2024
Following through on prior email discussion, here is summary of specification editors' review:
*
These changes are considered to be consistent with X3D 4.0, merely addition of identical upVector field with adjustment of default values and clarified prose.
This correction does no harm to existing X3D 4.0 content or players, and deserves to be a current recommended practice now. These changes can be considered errata in X3D 4.0 deserving correction in content and validation tools. Other changes in Mantis 1255 are deferred to X3D 4.1.
Changes have been applied satisfactorily: X3D 4.0 DTD, Schema, X3DUOM, Tooltips, and X3DJSAIL Java library. All relevant tools updated, following successful completion of test suites.
*
X3D Specifications: Schema and DOCTYPE Validation
*
https://www.web3d.org/specifications
*
X3D XML Schema x3d-4.0.xsd<https://www.web3d.org/specifications/x3d-4.0.xsd> and documentation<https://www.web3d.org/specifications/X3dSchemaDocumentation4.0.html>
*
https://www.web3d.org/specifications/X3dSchemaDocumentation4.0/x3d-4.0_TextureProjector.html
*
Https://www.web3d.org/specifications/X3dSchemaDocumentation4.0/x3d-4.0_TextureProjectorParallel.html
*
XML DOCTYPE x3d-4.0.dtd<https://www.web3d.org/specifications/x3d-4.0.dtd> and documentation<https://www.web3d.org/specifications/X3dDoctypeDocumentation4.0.html>
*
https://www.web3d.org/specifications/X3dDoctypeDocumentation4.0.html#TextureProjector
*
https://www.web3d.org/specifications/X3dDoctypeDocumentation4.0.html#TextureProjectorParallel
*
X3D Unified Object Model (X3DUOM)
*
The X3D Unified Object Model (X3DUOM) is a full set of object-oriented interfaces for all nodes, fields and statements in the X3D Architecture Specification.
*
https://www.web3d.org/specifications/X3DUOM.html
*
https://www.web3d.org/specifications/X3dUnifiedObjectModel-4.0.xml
*
X3D Tooltips: TextureProjector and TextureProjectorParallel
*
https://www.web3d.org/x3d/tooltips/X3dTooltips.html#TextureProjector
*
https://www.web3d.org/x3d/tooltips/X3dTooltips.html#TextureProjectorParallel
Prose and figures updated in X3D 4.1 Committee Draft, with changes shown in color-coded markup
*
X3D 4.1 Architecture, committee draft (CD)
*
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD
*
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/textureProjection.html#TextureProjector
*
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Images/ptmperspective2.png
[https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Images/ptmperspective2.png]
*
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Images/ptmparallel2.png
[https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Images/ptmparallel2.png]
Also tested satisfactorily for X3DPSAIL Python library, available in version control. (Am not yet releasing x3d.py on py.py until some other new features are ready.)
*
Python X3D Package x3d.py,
*
X3D Python Scene Access Interface Library (X3DPSAIL)
*
https://www.web3d.org/x3d/stylesheets/python/python.html
*
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/python/
*
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/python/x3d.py
All rationales and changes are documented in the Mantis Issue Tracker, which is available to Web3D Consortium members.
*
Mantis 1481: upVector field for TextureProjector, TextureProjectorParallel nodes
*
https://mantis.web3d.org/view.php?id=1481#c3721
*
Snapshot attached
Continuing implementation efforts to ensure this feature is fully deployed for X3D content is much appreciated.
Have fun with X3D! 🙂
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: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
Sent: Monday, December 9, 2024 9:39 AM
To: Holger Seelig <holger.seelig at yahoo.de>; X3D <x3d-public at web3d.org>
Cc: khyoo at chungbuk.ac.kr <khyoo at chungbuk.ac.kr>; Myeong Won Lee <myeongwonlee at gmail.com>
Subject: Re: [x3d-public] X3D 4.0 specification problem: upVector field for TextureProjector, TextureProjectorParallel
(corrected/completed version)
Hi Holger - great to hear of your interest and efforts, thank you.
Am thinking the default upVector ought to point in the "up" direction expected by users.
*
Wikipedia: Principle of least astonishment
*
https://en.wikipedia.org/wiki/Principle_of_least_astonishment
The following Web3D member-only resources for X3D 4.1 have been updated to track this issue.
*
Mantis 1481: upVector field for TextureProjector, TextureProjectorParallel nodes
*
https://mantis.web3d.org/view.php?id=1481
*
Github version control
*
https://github.com/Web3DConsortium/X3D/blob/master/ISO-IEC19775/ISO-IEC19775-1/ISO-IEC19775-1v4.1/ISO-IEC19775-1v4.1-CD/Part01/components/textureProjection.html
Also happy to announce that committee-draft X3D 4.1 (with initial component revisions) is visible online for best encouragement of interoperable adoption by implementers.
*
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD
*
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/textureProjection.html
Further improvements always welcome. Dick and I will carefully review these changes in our next X3D specification editors meeting.
Follow-on work to update validation tools and demonstration examples will continue once consensus is confirmed on the precise node syntax and semantics for TextureProjector and TextureProjectorParallel.
Web3D Consortium membership certainly has value. Am proud to recommend membership to everyone who wants to support 3D graphics on the Web.
*
Join the Web3D Consortium
*
https://www.web3d.org/membership/join
Have fun with X3D! 🙂
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: Holger Seelig <holger.seelig at yahoo.de>
Sent: Sunday, December 8, 2024 1:12 AM
To: X3D <x3d-public at web3d.org>
Cc: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>; khyoo at chungbuk.ac.kr <khyoo at chungbuk.ac.kr>; Myeong Won Lee <myeongwonlee at gmail.com>
Subject: Re: [x3d-public] X3D 4.0 specification problem: upVector field for TextureProjector, TextureProjectorParallel
That is very good news. I will update X_ITE accordingly.
Maybe now is also the time to change the *direction* vector to (-1 -1 -1) on the example page https://www.web3d.org/x3d/content/examples/Basic/X3dSpecifications/TextureProjectorComponentExampleIndex.html, then the projector would point exactly into the corner of the model.
Best regards,
Holger
--
Holger Seelig
Leipzig, Germany
holger.seelig at yahoo.de
https://create3000.github.io/x_ite/
Am 08.12.2024 um 05:21 schrieb Brutzman, Donald (Don) (CIV) via x3d-public <x3d-public at web3d.org>:
While performing regression testing using X3D Examples Archive, found several problems related to the upVector field.
First, upVector is defined in X3D Architecture specification for TextureProjector node but not TextureProjectorParallel node. However the corresponding figures illustrate that upVector is an integral part of each node's definition.
Second, the default value is "0 0 1" but this looks wrong (rotated confusingly), and a much-more intuitive value is "0 1 0" with y-axis up. In other words, the default upVector direction ought to point upwards. This is the default relationship is shown in both figures and the specification example for TextureProjector.
*
X3D 4.0 Architecture, clause 42 Texture projection component
*
https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/textureProjection.html
*
42.3.1 X3DTextureProjectorNode
*
42.4.1 TextureProjector
*
Figure 42.5 — Description of 3D perspective texture projection
*
"The upVector describes the roll of the camera by saying which point is "up" in the camera's orientation. The default value of this field is (0 0 1)."
*
https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/textureProjection.html#TextureProjector
*
42.4.2 TextureProjectorParallel
*
Figure 42.4 —Description of 3D parallel texture projection
*
https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/textureProjection.html#TextureProjectorParallel
Third, I am unable to find a working implementation for these nodes, though we have seen FreeWrl (at least) working in the past.
Recommended specification remedies:
*
Include upVector field in TextureProjectorParallel node and shared node type X3DTextureProjectorNode
*
Change default values to "0 1 0"
*
Include an example for TextureProjectorParallel node, similar to TextureProjector node
*
Fix erroneous figure labels so that they are properly numbered
*
Update Mantis error tracker, various validation tools, X3D Tooltips, X3DJSAIL and X3DPSAIL x3d.py, etc.
*
Encourage, hopefully ensure that multiple browser implementations are available.
Test scene:
*
X3D Example Archives: Basic, X3D Specifications, Texture Projector Component Example
*
https://www.web3d.org/x3d/content/examples/Basic/X3dSpecifications/TextureProjectorComponentExampleIndex.html
Thanks in advance for all feedback on these corrections, plus any implementation reports.
all the best, Don
--
Don Brutzman Naval Postgraduate School, Code USW/Br brutzman at nps.edu<mailto: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
_______________________________________________
x3d-public mailing list
x3d-public at web3d.org<mailto: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/20241213/0113e97c/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001481_ upVector field for TextureProjector, TextureProjectorParallel nodes - Web3D MantisBT.pdf
Type: application/pdf
Size: 90632 bytes
Desc: 0001481_ upVector field for TextureProjector, TextureProjectorParallel nodes - Web3D MantisBT.pdf
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20241213/0113e97c/attachment-0001.pdf>
More information about the x3d-public
mailing list