<div dir="auto">I tried to answer that I don’t think the point is actually changed.  It’s the weight that changes, and the final mesh.  I realize the desire to have a final point value visible in the debugger, but I don’t like the backward math to recompute the point, if the weight changes.  But yeah, if you want to add the math to compute the final mesh point from a previous final mesh point, each time, go for it.  I would batch all the changes into a single event per mesh.  I also realize a mesh uses a lot of space, and there’s a desire to optimize space.</div><div dir="auto"><br></div><div dir="auto">That’s my best guess.</div><div dir="auto"><br></div><div dir="auto">So yes, probably there’s a lot of multiplication and adding done during rendering each frame.</div><div dir="auto"><br></div><div dir="auto">Unless you can figure out how to restore the original point values when changing weights.  It might be possible, but it sounds possibly more expensive than the above.  I prefer simple straightforward solutions to complicated ones, realizing there’s a debugging need, and HTML provides that.</div><div dir="auto"><br></div><div dir="auto">I realize one needs to compute the final onscreen point each time, and it’s valuable to retain the final point for debugging.</div><div dir="auto"><br></div><div dir="auto">I don’t need an event if the point changes.  Maybe we should wait for a use case?  How many events would I get if a point changes?</div><div dir="auto"><br></div><div dir="auto">Is there any harm in assuming that no event is generated? Does something else need the event?  Is there any harm generating the event?  Can people listen for when the weight changes?</div><div dir="auto"><br></div><div dir="auto">I think more browser vendors should weigh in.  Frankly, I’m on the fence, and I don’t have a use case.  What did we do for Joint displacers?</div><div><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">There shouldn’t be surprises.</div><div dir="ltr" class="gmail_attr"><br></div><div dir="ltr" class="gmail_attr">John</div><div dir="ltr" class="gmail_attr"><br></div><div dir="ltr" class="gmail_attr">On Sun, Feb 9, 2025 at 6:25 AM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com">andreasplesch@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">Don, Joe and John<div dir="auto"><br></div><div dir="auto">Thanks for collecting these references.</div><div dir="auto"><br></div><div dir="auto">But I am not sure if there is an answer to my original question. Let me rephrase a bit the question:</div><div dir="auto"><br></div><div dir="auto">After a Displacer contained in a Segment node receives a set_weight input, should then the coord node emit a point_changed event ?</div><div dir="auto"><br></div><div dir="auto">I do not think HAnim is concerned about that, so it is really a X3D question.</div><div dir="auto"><br></div><div dir="auto">Thanks, Andreas </div></div><div dir="auto"><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Sun, Feb 9, 2025, 12:49 AM Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</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)">
Thanks for pointing in the right direction John.</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)">
Direct links to functional requirements for Displacer in HAnim 2.0 specification:</div>
<ul style="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>HAnim 2.0. Part 1:  Humanoid animation (HAnim) architecture, Clause 4 Concepts, 4.7 Displacer object</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/documents/specifications/19774/V2.0/Architecture/concepts.html#DisplacerObject" rel="noreferrer" target="_blank">https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#DisplacerObject</a></div>
<div><br>
</div>
</li><li style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<div>HAnim 2.0. Part 1:  Humanoid animation (HAnim) architecture, Clause 6 Object interfaces, 6.6 Displacer</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/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Displacer" rel="noreferrer" target="_blank">https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Displacer</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)">
and</div>
<ul style="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 4.0 Architecture, Clause 26 Humanoid Animation (HAnim) component, 26.3.1 HAnimDisplacer</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/hanim.html#HAnimDisplacer" rel="noreferrer" target="_blank">https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html#HAnimDisplacer</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)">
and informative</div>
<ul style="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, HAnimDisplacer</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/X3dTooltips.html#HAnimDisplacer" rel="noreferrer" target="_blank">https://www.web3d.org/x3d/content/X3dTooltips.html#HAnimDisplacer</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)">
Thanks for implementation efforts and careful scrutiny.</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)">
Questions and potential issues/clarifications/corrections are always welcome.</div>
<div style="font-family:"Courier New";font-size:9pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:"Courier New";font-size:9pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:"Courier New";font-size:9pt;color:rgb(0,0,0)">
all the best, Don</div>
<div id="m_-7682731886248397495m_3240166723513497384Signature">
<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" rel="noreferrer" 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" rel="noreferrer" 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 id="m_-7682731886248397495m_3240166723513497384appendonsend"></div>
<div style="font-family:Aptos,Aptos_EmbeddedFont,Aptos_MSFontService,Calibri,Helvetica,sans-serif;font-size:11pt;color:rgb(0,0,0)">
<br>
</div>
<hr style="display:inline-block;width:98%">
<div id="m_-7682731886248397495m_3240166723513497384divRplyFwdMsg" dir="ltr"><span style="font-family:Calibri,sans-serif;font-size:11pt;color:rgb(0,0,0)"><b>From:</b> x3d-public <<a href="mailto:x3d-public-bounces@web3d.org" rel="noreferrer" target="_blank">x3d-public-bounces@web3d.org</a>> on behalf of John Carlson via x3d-public <<a href="mailto:x3d-public@web3d.org" rel="noreferrer" target="_blank">x3d-public@web3d.org</a>><br>
<b>Sent:</b> Saturday, February 8, 2025 3:43 AM<br>
<b>To:</b> Extensible 3D (X3D) Graphics public discussion <<a href="mailto:x3d-public@web3d.org" rel="noreferrer" target="_blank">x3d-public@web3d.org</a>>; Carol McDonald <<a href="mailto:cemd2@comcast.net" rel="noreferrer" target="_blank">cemd2@comcast.net</a>>; Joe D Williams <<a href="mailto:joedwil@earthlink.net" rel="noreferrer" target="_blank">joedwil@earthlink.net</a>><br>
<b>Cc:</b> John Carlson <<a href="mailto:yottzumm@gmail.com" rel="noreferrer" target="_blank">yottzumm@gmail.com</a>>; Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" rel="noreferrer" target="_blank">andreasplesch@gmail.com</a>><br>
<b>Subject:</b> Re: [x3d-public] HAnimDisplacer effect on coord.point</span>
<div> </div>
</div>
<div style="direction:ltr">Here’s what HAnim spec says under Displacer: </div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr"><a href="https://www.web3d.org/documents/specifications/19774/V2.0/index.html" id="m_-7682731886248397495m_3240166723513497384OWA61427f53-f118-5bac-b102-08e400d8fb7d" rel="noreferrer" target="_blank">https://www.web3d.org/documents/specifications/19774/V2.0/index.html</a></div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr;font-family:verdana,arial,helvetica,sans-serif;color:rgb(0,0,0)">
<span style="font-size:26px">“For the </span><span style="font-size:24px"><b>Displacer</b></span><span style="font-size:26px"> objects that are contained in the
<i>displacers</i> field of the </span><span style="font-size:24px"><b>Segment</b></span><span style="font-size:26px"> objects, the
<i>displacements</i> are defined and applied in the </span><span style="font-size:24px"><b>Segment</b></span><span style="font-size:26px"> coordinate system. The base mesh for the morphed
</span><span style="font-size:24px"><b>Segment</b></span><span style="font-size:26px"> is the original mesh defined in the
</span><span style="font-size:24px"><b>Segment</b></span><span style="font-size:26px">.”</span></div>
<div style="direction:ltr;font-family:verdana,arial,helvetica,sans-serif;font-size:26px;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:verdana,arial,helvetica,sans-serif;font-size:26px;color:rgb(0,0,0)">
And here’s what it says under Segment:</div>
<div style="direction:ltr;font-family:verdana,arial,helvetica,sans-serif;font-size:26px;color:rgb(0,0,0)">
<br>
</div>
<div style="direction:ltr;font-family:verdana,arial,helvetica,sans-serif;font-size:26px;color:rgb(0,0,0)">
“</div>
<p style="direction:ltr;text-indent:0px;font-family:verdana,arial,helvetica,sans-serif;font-size:26px;color:rgb(0,0,0)">
The <i>coord</i> field is used for <span style="font-size:24px"><b>Segment</b></span> objects that have deformable meshes and shall contain coordinates referenced from the indexed mesh for the
<span style="font-size:24px"><b>Segment</b></span> object. The coordinates are given the same name as the
<span style="font-size:24px"><b>Segment</b></span> object, but with a <span style="font-family:monospace;font-size:20px">
<code>"_coords"</code></span> appended (e.g.,<span style="font-family:monospace;font-size:20px"><code>"skull_coords"</code></span>).”</p>
<div style="direction:ltr">displacements are an offset from the mesh,  with weight from 0 to 1.  So weight times displacement is total offset from base mesh.  0 weight = no offset, 1 weight = full displacements offset</div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr">The Coordinate point is maintained to handle weight = 0.  Weight ranges from 0 to 1, but double check.</div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr">Joe or Carol might know where to find it in the HAnim spec.</div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr">I believe the answer is, “during rendering,”. Since weight can vary with animation, and so can displacements, AFAIK.  More than one displacer can be applied to the mesh.</div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr">I have not read the spec.</div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr">John</div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr"><br>
</div>
<div><br>
</div>
<div style="direction:ltr">On Sat, Feb 8, 2025 at 5:13 AM Andreas Plesch via x3d-public <<a href="mailto:x3d-public@web3d.org" id="m_-7682731886248397495m_3240166723513497384OWAb86c4cd8-27f2-681e-bb7e-2732c863133b" rel="noreferrer" target="_blank">x3d-public@web3d.org</a>> wrote:</div>
<blockquote style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left:1px solid rgb(204,204,204)">
<div style="direction:ltr"><a href="https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/hanim.html#HAnimDisplacer" id="m_-7682731886248397495m_3240166723513497384OWA748f8f86-5a13-fcc4-378f-0e062af92d90" rel="noreferrer" target="_blank">https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/hanim.html#HAnimDisplacer</a></div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr">does not directly explain what the effect of the displacer on the coord.point field of the containing HAnimSegment is. But it mentions the coord.point field and seems to imply that the coord.point field is involved.</div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr">So the question is if the Displacer should alter the coord.point field in order to achieve a graphical displacement, or if the Browser should only apply the displacements during rendering without a change in the coord.point field
 ?</div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr">This is relevant if the coord.point field is accessed by routes or scripts, in addition to displacers.</div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr">Thanks for any feedback or ideas,</div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr">Andreas</div>
<div style="direction:ltr"><br>
</div>
<div style="direction:ltr">--</div>
<div style="direction:ltr">Andreas Plesch<br>
Waltham, MA 02453</div>
_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" id="m_-7682731886248397495m_3240166723513497384OWAdb1a012a-dd2e-6378-f309-7baffb783773" rel="noreferrer" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" id="m_-7682731886248397495m_3240166723513497384OWAf436619e-d094-4516-0cbc-f504294e755b" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote>
</div>

</blockquote></div></div>
</blockquote></div></div>