<div dir="auto">It may be useful to copy some of this email to the issue on <a href="http://github.com">github.com</a>?</div><div dir="auto"><br></div><div dir="auto"><div><a href="https://github.com/castle-engine/castle-engine/issues/446">https://github.com/castle-engine/castle-engine/issues/446</a></div><br></div><div dir="auto">Thanks!</div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Feb 12, 2023 at 12:44 PM Joseph D Williams <<a href="mailto:joedwil@earthlink.net">joedwil@earthlink.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div lang="EN-US" link="blue" vlink="#954F72" style="overflow-wrap: break-word;"><div class="m_2127492182363474570WordSection1"><p class="MsoNormal">First, please get Displacer running. I can’t or haven’t been able to test some others. All I really have is old BS Contact demo </p><p class="MsoNormal">Thank You for fine Hanim, except Displacer:) </p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Please try to get one working with one segment or site geometry. </p><p class="MsoNormal">The coordIndex is the order of points as appears in the user code. </p><p class="MsoNormal">The Displacer is operating in coordinate space of target geometry of parent Transform. </p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Humanoid </p><p class="MsoNormal">.Skeleton</p><p class="MsoNormal">..Joint </p><p class="MsoNormal">...Segment </p><p class="MsoNormal">....Geometry </p><p class="MsoNormal">....Displacer </p><p class="MsoNormal">....Site </p><p class="MsoNormal">.....Geometry </p><p class="MsoNormal">.....Displacer </p><p class="MsoNormal">...Joint …</p><p class="MsoNormal">.Skin </p><p class="MsoNormal">..Geometry </p><p class="MsoNormal">..Displacer </p><p class="MsoNormal">  (coded as direct child of controlling Joint)</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">As a simple pattern, since Displacer is not a container and does not carry a reference to the target geometry. </p><p class="MsoNormal">From that, please insert the Displacer immediately following the target geometry. </p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">If the Displacer is acting upon skin vertices, there is indication that the Displacer should be direct child of Joint with control of all or subset of vertices also controlled by the Joint. That would make the Displacer as allowed child of Joint, an honor otherwise shared only by Segment and Joint.  </p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Somewhere in the past it was set that the Displacer is not a container and does not need a coded reference </p><p class="MsoNormal">to the target geometry. So, each Displacer must be associated with specific vertices </p><p class="MsoNormal">of a particular geometry by its location in the user code. </p><p class="MsoNormal"> </p><p class="MsoNormal">Thus, it seems reasonable to define that for Segment or Site geometry, </p><p class="MsoNormal">the Displacer should be child in the same coordinate space as the geometry. </p><p class="MsoNormal">Sibling of Segment geometry or Transform holding Segment geometry.</p><p class="MsoNormal">Sibling of Site geometry or Transform holding Site geometry. </p><p class="MsoNormal">Likewise, it seems natural that for skeleton-driven skin animation the </p><p class="MsoNormal">Displacer is used to enhance control of points associated with </p><p class="MsoNormal">a certain Joint, so we want to closely associate a Displacer with a Joint.    </p><p class="MsoNormal">   </p><p class="MsoNormal">Overall, the Displacer is expected to actuate after skeleton-driven animation </p><p class="MsoNormal">for the frame is complete. </p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">HAnimDisplacer : X3DGeometricPropertyNode {</p><p class="MsoNormal">  MFInt32  [in,out] coordIndex    []   [0,∞) or -1</p><p class="MsoNormal">  MFVec3f  [in,out] displacements []</p><p class="MsoNormal">  SFNode   [in,out] metadata      NULL [X3DMetadataObject]</p><p class="MsoNormal">  SFString [in,out] name          ""</p><p class="MsoNormal">  SFFloat  [in,out] weight        0.0  [0,∞)</p><p class="MsoNormal">}</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">So, you supply index of the vertex you wish to displace </p><p class="MsoNormal">and the maximum displacement along a 3D vector you wish to move it. </p><p class="MsoNormal">Then when you wish to move it, you send the Displacer a weight event, float 0 to 1. </p><p class="MsoNormal">If the new weight is 0 then nothing is added. </p><p class="MsoNormal">If the weight is 1, then the vertex is moved the full displacement along the 3D vector. </p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Of course this is eversoslightlycomplicated by the fact that displacements are </p><p class="MsoNormal">3D vectors relative to the specified vertex in default pose coordinate space</p><p class="MsoNormal">of the target geometry. </p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">As an example, here is the JoeKick example simplified to one vertex, </p><p class="MsoNormal">the skull apex point. </p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><HAnimDisplacer </p><p class="MsoNormal">DEF='Joe_skull_tip_raiser_action' </p><p class="MsoNormal">name='skull_tip_raiser_action'</p><p class="MsoNormal">coordIndex='0' </p><p class="MsoNormal">displacements='0 0.15 0' /></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">This displacements value says create a 3D vector </p><p class="MsoNormal">from 0 0 0 at the current vertex location to 0 0.15 0. </p><p class="MsoNormal">Move that vertex along that Y-axis vector 0 to 100 percent, </p><p class="MsoNormal">depending upon the 0 to 1 floating point weight event </p><p class="MsoNormal">I will send. The reference coordinate system of the </p><p class="MsoNormal">vertex in the default position is retained even if the </p><p class="MsoNormal">vertex has been moved by other actions. </p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Of course this is eversoslightly complicated by </p><p class="MsoNormal">the fact that the each displacement is actually a 3D vector. </p><p class="MsoNormal">The 0 0 0 base and 0 0 1 0 orientation is relative to the </p><p class="MsoNormal">default pose and is retained for displacer animation. </p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Wait, do I need to consider vertex coordinate space and orientation of a vertex? </p><p class="MsoNormal">Well, Yes, but just like Joint nodes, We will best be served when we understand the default, before animation pose and the default orientation of each item we wish to animate. So, for Joint nodes of the skeleton we orient the Joint to transform default, meaning if you are sitting on the Joint, then +Y is Up and left is +x, and you are facing +z. Regardless of how the parent joint is animated, the child joint retains its reference orientation. </p><p class="MsoNormal">So, yes, you navigate 3D space the same for Joint(s) and vertices controlled by Displacer. </p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Now, when I send 'Joe_skull_tip_raiser_action' the weight event, </p><p class="MsoNormal">the vertex 0 of the geometry will be moved along the 3D vector </p><p class="MsoNormal">defined by the displacements value. </p><p class="MsoNormal">Notice that if, for instance the vertex has been moved due to skeleton animation, </p><p class="MsoNormal">the displacement will be as expected because the vertex remembers its default orientation. </p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">About placement of the ROUTE statement. Expected something got something else.</p><p class="MsoNormal">I thought we agreed that the grammar shows ROUTE can be free and as a field in a node.</p><p class="MsoNormal">So, I still get those errors where you tell me my node markup is wrong. </p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Thanks, Again,</p><p class="MsoNormal">Joe</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><div style="border-style:solid none none;border-top-width:1pt;padding:3pt 0in 0in;border-top-color:rgb(225,225,225)"><p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:michalis.kambi@gmail.com" target="_blank">Michalis Kamburelis</a><br><b>Sent: </b>Thursday, February 9, 2023 2:48 PM<br><b>To: </b><a href="mailto:joedwil@earthlink.net" target="_blank">Joseph D Williams</a><br><b>Cc: </b><a href="mailto:yottzumm@gmail.com" target="_blank">John Carlson</a>; <a href="mailto:brutzman@nps.edu" target="_blank">Don Brutzman</a>; <a href="mailto:gpugroup@gmail.com" target="_blank">GPU Group</a>; <a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: New description fields</p></div><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">1.</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">> Just reuse the last set on the list to fill out the list.</p><p class="MsoNormal">> What is so bad about that?</p><p class="MsoNormal">> Do you fail if not enough colors?</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Reusing the last value of a per-vertex attribute (like texture</p><p class="MsoNormal">coordinate) would be a bit useless, at least in most cases.</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Yes, we also throw a warning when there are not enough colors.</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">This is also following X3D specification, see e.g. IndexedFaceSet:</p><p class="MsoNormal"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD/Part01/components/geometry3D.html#IndexedFaceSet" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD/Part01/components/geometry3D.html#IndexedFaceSet</a></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">"""</p><p class="MsoNormal">If the greatest index in the coordIndex field is N, the Coordinate</p><p class="MsoNormal">node shall contain N+1 coordinates (indexed as 0 to N).</p><p class="MsoNormal">...</p><p class="MsoNormal">If the greatest index in the colorIndex field is N, then there shall</p><p class="MsoNormal">be N+1 colours in the X3DColorNode node.</p><p class="MsoNormal">...</p><p class="MsoNormal">If the greatest index in the texCoordIndex field is N, then there</p><p class="MsoNormal">shall be N+1 texture coordinates in the X3DTextureCoordinateNode.</p><p class="MsoNormal">...</p><p class="MsoNormal">If the texCoordIndex field is empty, then the coordIndex array is used</p><p class="MsoNormal">to choose texture coordinates from the X3DTextureCoordinateNode node.</p><p class="MsoNormal">If the greatest index in the coordIndex field is N, then there shall</p><p class="MsoNormal">be N+1 texture coordinates in the X3DTextureCoordinateNode node.</p><p class="MsoNormal">"""</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">All these sentences say a similar thing: if you provide a per-vertex</p><p class="MsoNormal">data, we expect you to provide as much data as you want to index.</p><p class="MsoNormal">Adding a processing on browser side to "reuse the last data" would be</p><p class="MsoNormal">extra work, not necessary in many cases, and it is actually better in</p><p class="MsoNormal">many cases to throw an error in this case. It is better to consider</p><p class="MsoNormal">this "not valid file".</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Note that view3dscene still displays the mesh, this is just a warning.</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">It's not an X3D invention either. glTF, Collada follow this too.</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">If you want to just reuse the last coordinate, then I guess duplicate</p><p class="MsoNormal">it in TextureCoordinate. But is this really what you want? You want to</p><p class="MsoNormal">have 3 vertexes with texture coordinates like this:</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">- 0 0</p><p class="MsoNormal">- 0.5 0.5</p><p class="MsoNormal">- 0.5 0</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">... and then 300+ vertexes with equal texture coordinate 0 0.5 ? This</p><p class="MsoNormal">seems a bit weird texture mapping. If most of vertexes have the same</p><p class="MsoNormal">texture coordinate then most faces will just display a single color</p><p class="MsoNormal">from the texture. This would be valid but rather non-standard use of</p><p class="MsoNormal">textures.</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">2. HAnimDisplacer is indeed simply not implemented in</p><p class="MsoNormal">view3dscene/Castle Game Engine for now.</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">3. As for routes, you mention """Also, the item about the route</p><p class="MsoNormal">statements being in a place you don’t like did not get fixed in</p><p class="MsoNormal">4.3.0.""" -- sorry, I do not recall the issue. But I have too many</p><p class="MsoNormal">TODO lists, maybe something slipped my mind. Please refresh my memory,</p><p class="MsoNormal">point me to the thread or bugreport about it.</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Regards,</p><p class="MsoNormal">Michalis</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">czw., 9 lut 2023 o 19:44 Joseph D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>> napisał(a):</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> Otherwise X3D browser doesn't know what do you mean --</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> what texture coordinate is supposed to be associated with vertex with</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> index 9.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> Yes it does, or it should. Just reuse the last set on the list to fill out the list.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> What is so bad about that?</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">>  Do you fail if not enough colors?</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> Anyway, the Displacer is not working in 4.3.0 with no errors on that.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickIndex.html" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKickIndex.html</a></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> Also, the item about the route statements being in a place you don’t like did not get fixed in 4.3.0.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> Can you or someone please help me with <TextureCoordinate point='0 0 0.5 0.5 0.5 0 0 0.5'/> since I an’t seem to get the right number for happiness even when it seems right and works elsewhere.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> X3D: Invalid number of items in a normal or texture coordinate array for shape "Joe_Humanoid:Joe_Kick:Joe_Shape:IndexedFaceSet(Joe_skin_IndexedFaceSet)": Invalid index: 141, but we have 139 items</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> Even when the numbers match at the correct numver ofverts it fails.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> Is this finding something in the texture transform?</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> Sure would like to see Displacer working.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> Thanks,</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> Joe</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> From: Michalis Kamburelis</p><p class="MsoNormal">> Sent: Thursday, February 9, 2023 7:30 AM</p><p class="MsoNormal">> To: Joseph D Williams</p><p class="MsoNormal">> Cc: John Carlson; Don Brutzman; GPU Group; X3D Graphics public mailing list</p><p class="MsoNormal">> Subject: Re: New description fields</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> Yes :) I know we had a few communications about this already, so maybe</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> you already fixed it in some version of the file and it is just not</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> updated on that page.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> I just report that</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">>   <a href="http://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3d" target="_blank">http://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3d</a></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> still has this error. Specifically, it contains geometry like this:</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">>           <IndexedFaceSet DEF='Joe_skin_IndexedFaceSet' coordIndex='0</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> 9 5 -1 0 7 9 ...' creaseAngle='3.14'></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">>             <Coordinate DEF='Joe_SkinCoord' point='0.0 1.77 ..../></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">>             <TextureCoordinate point='0 0 0.5 0.5 0.5 0 0 0.5'/></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">>           </IndexedFaceSet></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> So you use coordinate index "9" (and larger, later, like 386) ... but</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> your "TextureCoordinate.point" has only 4 items. So you can only use</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> indexes 0..3. Otherwise X3D browser doesn't know what do you mean --</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> what texture coordinate is supposed to be associated with vertex with</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> index 9.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> Regards,</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> Michalis</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> czw., 9 lut 2023 o 14:48 Joseph D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>> napisał(a):</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > X3D: Invalid number of items in an attribute array for shape</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > "Joe_Humanoid/Joe_Kick/Joe_Shape/IndexedFaceSet(Joe_skin_IndexedFaceSet)":</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > Invalid index: 9, but we have 4 items in 2D texture coordinates</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > ... and the error is valid from what I can see. TextureCoordinate has</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > too few points.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > Is this back to telling me I have to have all texcoords for all points?</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > Thanks,</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > Joe</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > From: Michalis Kamburelis</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > Sent: Thursday, February 9, 2023 5:23 AM</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > To: John Carlson</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > Cc: Don Brutzman; GPU Group; Joe D Williams; X3D Graphics public mailing list</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > Subject: Re: New description fields</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > To other X3D browser implementors adding "description":</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > If you also have been implementing RenderedTexture node (not in X3D</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > spec, but common extension, at least in InstantReality, Xj3d, and</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > CGE/view3dscene), note that you should remove the</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > "RenderedTexture.description" field. It can (and should) now inherit</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > "X3DSingleTextureNode.description".</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > Sometimes automatic tests catch real errors :) (This nuance was caught</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > by CGE automatic tests.)</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > Regards,</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > Michalis</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > czw., 9 lut 2023 o 14:04 Michalis Kamburelis</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > <<a href="mailto:michalis.kambi@gmail.com" target="_blank">michalis.kambi@gmail.com</a>> napisał(a):</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > I added to view3dscene/Castle Game Engine handling of "description" field on</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > - X3DSingleTextureNode</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > - HAnimDisplacer</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > - HAnimHumanoid</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > - HAnimJoint</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > - HAnimSegment</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > - HAnimSite</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > I also added HAnimHumanoid.loa .</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > As usual, the fix will be available in snapshot view3dscene versions</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > on <a href="https://castle-engine.io/view3dscene.php" target="_blank">https://castle-engine.io/view3dscene.php</a> (also part of larger CGE</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > download, <a href="https://castle-engine.io/download" target="_blank">https://castle-engine.io/download</a> ). Please give Jenkins a</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > 6-8 hours to process it and run all automated tests.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > Note that these "description" fields seem unrelated to</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > <a href="http://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3d" target="_blank">http://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3d</a></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > . That file only used "description" on Viewpoint, which we already</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > handled.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > After adding "HAnimHumanoid.loa", this file reports just this error</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > (many times) in view3dscene:</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > X3D: Invalid number of items in an attribute array for shape</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > "Joe_Humanoid/Joe_Kick/Joe_Shape/IndexedFaceSet(Joe_skin_IndexedFaceSet)":</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > Invalid index: 9, but we have 4 items in 2D texture coordinates</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > ... and the error is valid from what I can see. TextureCoordinate has</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > too few points.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > Regards,</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > Michalis</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > śr., 8 lut 2023 o 03:45 John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> napisał(a):</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > > I'm trying to collect information into one message.  Michalis, please check view3dscene 4.3, I believe ImageTexture and HAnimDisplacer were missing description field in view3dscene 4.2 and 4.3. See links below for X3D4 tooltips specifics.  The issue with view3dscene stems from adding a description fields in X3D4 using X3D-Edit (for the most part).  There are also schema issues with the file in question (JohnJoint18.x3d).</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > > I’ll double check the tooltips while I am at it.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > > <a href="https://www.web3d.org/x3d/content/X3dTooltips.html#ImageTexture.description" target="_blank">https://www.web3d.org/x3d/content/X3dTooltips.html#ImageTexture.description</a></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > > (Yellow)</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > > <a href="https://www.web3d.org/x3d/content/X3dTooltips.html#HAnimDisplacer.description" target="_blank">https://www.web3d.org/x3d/content/X3dTooltips.html#HAnimDisplacer.description</a></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > > (Yellow)</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > > If there are examples of HAnimDisplacer in the community, consider donating them to our testing effort.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > > The good news is we have one good HAnimDisplacer node from <a href="http://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3d" target="_blank">www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/JoeKick.x3d</a> (in the file system on the x3d project our sourceforge).   Michalis, Joe, the issue is that view3dscene throws all kinds of issues with the file.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > > I was able to add the HAnimDisplacer in JoeKick to my JohnJoint18.x3d and not increase the number of errors reported by view3dscene (HAnimDisplacer without description seems to be working).</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > > Thanks!</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > > John</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > > On Tue, Feb 7, 2023 at 2:18 PM GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>> wrote:</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > >></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > >> No. I'm finished with that project, its somewhere in web3d. I think I referred to tooltips, which has v4 added fields in yellow.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > >> -Doug</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > >></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > >></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > >> On Tue, Feb 7, 2023 at 12:40 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > >>></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > >>> Doug,</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > >>></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > >>> could you add nodes which have a new description field to your browser builder guide?</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > >>></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > >>> Thanks!</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > >>></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> > > >>> John and Don</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> ></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p></div></div></blockquote></div></div>