<div dir="auto">Here’s what HAnim spec says under Displacer: </div><div dir="auto"><br><div dir="auto"><a href="https://www.web3d.org/documents/specifications/19774/V2.0/index.html">https://www.web3d.org/documents/specifications/19774/V2.0/index.html</a></div><div dir="auto"><br></div><div dir="auto"><div dir="auto"><span style="font-family:verdana,arial,helvetica,sans-serif;font-size:26px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important;color:rgb(0,0,0)">“For the </span><span style="font-weight:bold;font-size:24px;font-family:verdana,arial,helvetica,sans-serif;font-style:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;color:rgb(0,0,0)">Displacer</span><span style="font-family:verdana,arial,helvetica,sans-serif;font-size:26px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important;color:rgb(0,0,0)"> objects that are contained in the </span><i style="font-family:verdana,arial,helvetica,sans-serif;font-size:26px;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;color:rgb(0,0,0)">displacers</i><span style="font-family:verdana,arial,helvetica,sans-serif;font-size:26px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important;color:rgb(0,0,0)"> field of the </span><span style="font-weight:bold;font-size:24px;font-family:verdana,arial,helvetica,sans-serif;font-style:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;color:rgb(0,0,0)">Segment</span><span style="font-family:verdana,arial,helvetica,sans-serif;font-size:26px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important;color:rgb(0,0,0)"> objects, the </span><i style="font-family:verdana,arial,helvetica,sans-serif;font-size:26px;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;color:rgb(0,0,0)">displacements</i><span style="font-family:verdana,arial,helvetica,sans-serif;font-size:26px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important;color:rgb(0,0,0)"> are defined and applied in the </span><span style="font-weight:bold;font-size:24px;font-family:verdana,arial,helvetica,sans-serif;font-style:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;color:rgb(0,0,0)">Segment</span><span style="font-family:verdana,arial,helvetica,sans-serif;font-size:26px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important;color:rgb(0,0,0)"> coordinate system. The base mesh for the morphed </span><span style="font-weight:bold;font-size:24px;font-family:verdana,arial,helvetica,sans-serif;font-style:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;color:rgb(0,0,0)">Segment</span><span style="font-family:verdana,arial,helvetica,sans-serif;font-size:26px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important;color:rgb(0,0,0)"> is the original mesh defined in the </span><span style="font-weight:bold;font-size:24px;font-family:verdana,arial,helvetica,sans-serif;font-style:normal;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;color:rgb(0,0,0)">Segment</span><span style="font-family:verdana,arial,helvetica,sans-serif;font-size:26px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important;color:rgb(0,0,0)">.”</span></div><div dir="auto"><span style="font-family:verdana,arial,helvetica,sans-serif;font-size:26px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important;color:rgb(0,0,0)"><br></span></div><div dir="auto"><span style="font-family:verdana,arial,helvetica,sans-serif;font-size:26px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important;color:rgb(0,0,0)">And here’s what it says under Segment:</span></div><div dir="auto"><span style="font-family:verdana,arial,helvetica,sans-serif;font-size:26px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important;color:rgb(0,0,0)"><br></span></div><div dir="auto"><span style="font-family:verdana,arial,helvetica,sans-serif;font-size:26px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important;color:rgb(0,0,0)">“<div style="font-family:verdana,arial,helvetica,sans-serif"><p style="font-size:26px;font-family:verdana,arial,helvetica,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;color:rgb(0,0,0)" dir="auto">The <i style="font-family:verdana,arial,helvetica,sans-serif">coord</i> field is used for <span style="font-weight:bold;font-size:24px;font-family:verdana,arial,helvetica,sans-serif">Segment</span> objects that have deformable meshes and shall contain coordinates referenced from the indexed mesh for the <span style="font-weight:bold;font-size:24px;font-family:verdana,arial,helvetica,sans-serif">Segment</span> object. The coordinates are given the same name as the <span style="font-weight:bold;font-size:24px;font-family:verdana,arial,helvetica,sans-serif">Segment</span> object, but with a <code style="font-family:monospace;font-size:20px">"_coords"</code> appended (e.g.,<code style="font-family:monospace;font-size:20px">"skull_coords"</code>).”</p></div></span></div>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 dir="auto"><br></div><div dir="auto">The Coordinate point is maintained to handle weight = 0. Weight ranges from 0 to 1, but double check.</div><div dir="auto"><br></div><div dir="auto">Joe or Carol might know where to find it in the HAnim spec.</div><div dir="auto"><br></div><div dir="auto">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 dir="auto"><br></div><div dir="auto">I have not read the spec.</div><div dir="auto"><br></div><div dir="auto">John</div><div dir="auto"><br></div><div dir="auto"><br></div></div><div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Sat, Feb 8, 2025 at 5:13 AM Andreas Plesch via x3d-public <<a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</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 dir="ltr"><div><a href="https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/hanim.html#HAnimDisplacer" target="_blank">https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/hanim.html#HAnimDisplacer</a></div><div><br></div><div>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><br></div><div>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><br></div><div>This is relevant if the coord.point field is accessed by routes or scripts, in addition to displacers.</div><div><br></div><div>Thanks for any feedback or ideas,</div><div><br></div><div>Andreas</div></div><div dir="ltr"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Andreas Plesch<br>Waltham, MA 02453</div></div></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>