<div><div><div><div><div dir="auto">I am trying to be extremely clear in this message.</div><div dir="auto"><br></div><div dir="auto">The X3DOM documentation was confusing. The Shape.appearance field had a default value of [X3DAppearanceNode]. I don’t know if a default appearance field value is constructed or not, if the appearance node is missing (NULL) in the appearance field. Plus an abstract node cannot be instantiated so double whammy on X3DAppearanceNode not being the default value. I appreciate a double set of eyes on this.</div><div dir="auto"><br></div><div dir="auto">So no problem with finding default values in the specifications.</div><div dir="auto"><br></div><div dir="auto">An issue on iOS is finding whether a field is required. I did very quick scan in X3D Tooltips, but nothing popped out. I thought I had seen “required” in the past, but where I looked, I didn’t see anything obvious this time. I have been known to skip details. I assumed that the field above was not required, since it can be NULL in the X3D specifications, and the default “value” domain is abstract in the X3DOM documentation.</div><div dir="auto"><br></div><div dir="auto">I don’t know how a Shape node can have a Material node or material field, except via an intermediate Appearance node. Please correct my ignorance, so we all can learn. In particular, I have issue with this sentence from below “A <i style="font-family:aptos,aptos_embeddedfont,aptos_msfontservice,calibri,helvetica,sans-serif;font-size:14.666667px">Shape </i><span style="font-family:aptos,aptos_embeddedfont,aptos_msfontservice,calibri,helvetica,sans-serif;font-size:14.666667px">node having a null </span><i style="font-family:aptos,aptos_embeddedfont,aptos_msfontservice,calibri,helvetica,sans-serif;font-size:14.666667px">material </i><span style="font-family:aptos,aptos_embeddedfont,aptos_msfontservice,calibri,helvetica,sans-serif;font-size:14.666667px">field is a fairly common occurrence, particularly when constructing models.” Please double check the italicized words. I will proceed with my original idea if not corrected. I’ve also double checked the specifications.</span></div><div dir="auto"><br></div><div dir="auto">There’s no actionable issue with the X3D specification. There’s a possible update to the X3DOM Shape API documentation. If someone has an updated snapshot, cool beans!</div></div><div><div dir="auto"><br></div><div dir="auto">Note that I took some care to add a required fields property to X3D JSON Schema, so it’s very disappointing not to be able to search it properly on iOS Safari. My thought is to break the schema up by component.</div></div></div></div></div><div><div><div><div></div></div></div><div><div><div><div dir="auto"><br></div><div dir="auto">John</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Fri, Aug 2, 2024 at 8:42 AM Brutzman, Donald (Don) (CIV) via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Our X3D Architecture specification is the authoritative reference for what is supposed to happen.</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)" dir="auto">
We are careful to define expected functional results wherever possible. This guides both implementations of X3D and authors as well. A
<i>Shape </i>node having a null <i>material </i>field is a fairly common occurrence, particularly when constructing models.</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div>Extensible 3D (X3D) v4.0 Part 1: Architecture and base components, 12 Shape component, 12.4.2 Appearance</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div><a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#Appearance" target="_blank">https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#Appearance</a></div>
</li></ul>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div>The <i>material</i> field, if specified, shall contain a
<a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#Material" id="m_4606780604789080746m_3712661844205790136m_-2732843511207312227m_-3241055365192656085m_7758037681517989431OWA51a35133-f475-193c-ed74-985a2fcefc00" style="text-align:left" target="_blank">
Material</a>, <a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#PhysicalMaterial" id="m_4606780604789080746m_3712661844205790136m_-2732843511207312227m_-3241055365192656085m_7758037681517989431OWA23906340-796b-bc52-f1ce-d97204d13cba" style="text-align:left" target="_blank">
PhysicalMaterial</a>, <a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#TwoSidedMaterial" id="m_4606780604789080746m_3712661844205790136m_-2732843511207312227m_-3241055365192656085m_7758037681517989431OWA7a3c497c-5e8e-c177-6885-5ef8a1dc5445" style="text-align:left" target="_blank">
TwoSidedMaterial (deprecated)</a> or <a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#UnlitMaterial" id="m_4606780604789080746m_3712661844205790136m_-2732843511207312227m_-3241055365192656085m_7758037681517989431OWA823f367b-4dd8-6c36-aff6-8113e85f6004" style="text-align:left" target="_blank">
UnlitMaterial</a> node. If the <i>material</i> field is NULL or unspecified, lighting is off (all lights are ignored during rendering of the object that references this Appearance) and the unlit object colour is (1, 1, 1). Details of the X3D lighting model
are in <a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/lighting.html#PART8" id="m_4606780604789080746m_3712661844205790136m_-2732843511207312227m_-3241055365192656085m_7758037681517989431OWAca586287-1cce-c759-4fae-5399b4f8d471" style="text-align:left" target="_blank">
17 Lighting component</a>.</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div>The <i>backMaterial</i> field, if specified, shall contain a
<a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#Material" id="m_4606780604789080746m_3712661844205790136m_-2732843511207312227m_-3241055365192656085m_7758037681517989431OWA9b7696fe-1d88-47e0-7ab8-0d23f124b904" style="text-align:left" target="_blank">
Material</a>, <a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#PhysicalMaterial" id="m_4606780604789080746m_3712661844205790136m_-2732843511207312227m_-3241055365192656085m_7758037681517989431OWAca9e3cbe-14a0-6b68-4cd6-a6eb1d6151c5" style="text-align:left" target="_blank">
PhysicalMaterial</a> or <a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#UnlitMaterial" id="m_4606780604789080746m_3712661844205790136m_-2732843511207312227m_-3241055365192656085m_7758037681517989431OWA6ee4759a-8b25-b4d1-cc64-a5dac901a615" style="text-align:left" target="_blank">
UnlitMaterial</a> node. It is only allowed to define a <i>backMaterial</i> if the
<i>material</i> is also defined (not NULL). The node type provided to <i>backMaterial</i> (if any) shall match the node type provided to
<i>material</i>. This field allows to render back faces with a different material parameters than the front faces. The meaning and all constraints of this field are explained in the section
<a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#TwoSidedMaterials" id="m_4606780604789080746m_3712661844205790136m_-2732843511207312227m_-3241055365192656085m_7758037681517989431OWA8f894f3d-5d55-5c43-9085-254751f93217" style="text-align:left" target="_blank">
Two-sided materials</a>.</div>
</li></ul>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
We are careful to define default results for missing fields whenever practical. If the detection or correction of such edge cases remains ambiguous or poses an undesirable computational burden on browsers, then the specification typically states that expected
results are undefined (meaning author and user beware, a browser can handle it as they see fit).</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Clearly, guidance to authors and validation tools can help complement the specification.</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div>X3D Tooltips, Appearance, material</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div><a href="https://www.web3d.org/x3d/tooltips/X3dTooltips.html#Appearance.material" target="_blank">https://www.web3d.org/x3d/tooltips/X3dTooltips.html#Appearance.material</a></div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div><b>[material <a href="https://www.web3d.org/x3d/tooltips/X3dTooltips.html#accessType" id="m_4606780604789080746m_3712661844205790136m_-2732843511207312227m_-3241055365192656085m_7758037681517989431OWA1702277d-93dd-0520-86ed-38b0ff1b06d1" title="initializable field that can send or receive events at run time" target="_blank">
accessType inputOutput</a>, <a href="https://www.web3d.org/x3d/tooltips/X3dTooltips.html#SFNode" id="m_4606780604789080746m_3712661844205790136m_-2732843511207312227m_-3241055365192656085m_7758037681517989431OWA7f10c1ef-a4fd-18be-bef7-e5df48fbfb70" title="Single-Field node value" target="_blank">
type SFNode</a> singleton, NULL node] [<a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/nodeIndex.html#X3DMaterialNode" id="m_4606780604789080746m_3712661844205790136m_-2732843511207312227m_-3241055365192656085m_7758037681517989431OWA602aa731-2ffc-a119-c6d6-d4bd6f7eec01" title="X3D abstract node type" target="_blank">X3DMaterialNode</a>]</b><br>
Single contained Material node that can specify visual attributes for lighting response (color types, transparency, etc.) applied to corresponding geometry.<br>
<span style="color:rgb(243,144,29)"><b>Warning</b></span><b>:</b> if material is NULL or unspecified, lighting is off (all lights ignored) for this Shape and unlit object color is (1, 1, 1).</div>
</li></ul>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<ul style="margin-top:0px;margin-bottom:0px;list-style-type:disc">
<li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div>X3D Resources, Quality Assurance (QA)</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div><a href="https://www.web3d.org/x3d/content/examples/X3dResources.html#QualityAssurance" target="_blank">https://www.web3d.org/x3d/content/examples/X3dResources.html#QualityAssurance</a></div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div>X3D Quality Assurance (QA) identifies errors and warnings in order to make X3D scene content more portable and reliable. Improved Quality Assurance (QA) helps achieve intended results in X3D scenes and metadata.</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div>This is important. providing high confidence that when 3D modeling errors occur, they can be detected and then corrected. As a result, X3D models can run in many different file formats and programming languages, equivalently and correctly.</div>
</li></ul>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
If anyone finds an apparent "hole" in X3D architecture coverage, or contrary implementations, then such reports are always appreciated.</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
Have fun with X3D4! 🙂</div>
<div id="m_4606780604789080746m_3712661844205790136m_-2732843511207312227m_-3241055365192656085m_7758037681517989431Signature">
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt"><br>
</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">all the best, Don</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">--</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">Don Brutzman Naval Postgraduate School, Code USW/Br <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a></span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149</span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt">X3D graphics, virtual worlds, navy robotics <a href="https://faculty.nps.edu/brutzman" target="_blank">https://faculty.nps.edu/brutzman</a></span></p>
<p style="margin:0in;font-family:Calibri,sans-serif;font-size:11pt"><span style="font-family:"Courier New";font-size:9pt"> </span></p>
</div>
</div>
_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div></div>
</div>
</div>
</div>
</div>