<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">LOD suggestions (all untested)<div><p class="MsoNormal">LOD Requirements:<span></span></p>

<p class="MsoNormal">a) route to persistant fields for motions because skeleton/joints
and skin are swapped<span></span></p>

<p class="MsoNormal">b) motions include routing from
orientationInterpolators,  and routing
to.motions and .motionsEnabled fields<span></span></p>

<p class="MsoNormal">Main Options:<span></span></p>

<p class="MsoNormal">A. external HAnimLOD node <span></span></p>

<p class="MsoNormal">- with MFNode field of HanimHumanoid and range [] field from
LOD node<span></span></p>

<p class="MsoNormal">- would expose .motions and .motionsEnabled fields and relay
their values to active LOD level Humanoid on each frame<span></span></p>

<p class="MsoNormal">B. extension to HanimHumanoid<span></span></p>

<p class="MsoNormal">- with MFFloat range [] and MFNode skeletons [] and MFNode
skins []<span></span></p>

<p class="MsoNormal">- motions and motionsEnabled would be persistent <span></span></p>

<p class="MsoNormal">- on each frame motions are applied to the currently
selected LOD level skeleton joints<span></span></p><p class="MsoNormal"><br></p><p class="MsoNormal">OrientationInterpolator – options for persistent field
targets > new node types<span></span></p><p class="MsoNormal">MotionRelay<br></p><p class="MsoNormal"><span></span></p><p class="MsoNormal">- MFString jointNames<span></span></p><p class="MsoNormal">- MFRotation values<span></span></p><p class="MsoNormal">– takes orientationInterpolator values and expresses them as
motions in Humanoid.motions field<span></span></p><p class="MsoNormal">- so routing to multiple LOD levels is replaced by routing
to a relay<span></span></p><p class="MsoNormal">- relay applies to LOD level skeleton joints by name lookup
during motion pass<span></span></p><p class="MsoNormal">x no way to convert SFRotation routes to MFRotation in web3d</p><p class="MsoNormal">MotionInterpolator<span></span></p><p class="MsoNormal">- MFString jointNames<span></span></p><p class="MsoNormal">- MFNode OrientationInterpolators<span></span></p><p class="MsoNormal">- MFBool replace<span></span></p><p class="MsoNormal">





















<span style="font-size:10pt;font-family:Verdana,sans-serif">- no routing to
skeleton joints needed, motion update code will match jointname and scrape [out]
value_changed </span><br></p><p class="MsoNormal">Neither MotionRelay nor MotionInterpolator have frameIndex, frameIncrement they
aren’t fully derived from Motion abstract type, Motion hierarchy would need to be refactored<span></span></p><p class="MsoNormal">-Doug</p></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Nov 11, 2023 at 8:05 AM GPU Group <<a href="mailto:gpugroup@gmail.com">gpugroup@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Issue: Unlike offline raytracing, realtime graphics looks best with fast frame rates. There is some desire to go beyond cartoon-like characters and achieve more realism in HAnim. Detailed HAnimHumanoid models designed for raytracing can slow frame rates. Scenes with multiple Humanoids and crowds with humanoids at different distances, and clothing details over skin on humanoids may benefit from speed optimizations. <div>1. Requirements for Level of Detail LOD type optimizations for humanoids:</div><div>a) coordinating change of skeleton / joints with change of skin and Coordinate node</div><div>b) persistent fields to route to, in particular motions, motionsEnabled when using Motion nodes, and method to use OrientationInterpolators on persistent fields as the skeleton / joint nodes change</div><div>2. other speed enhancements - methods to remove skin under clothing / swap clothing detail, use of buffers and GPU</div><div><br></div><div>Please post suggestions, methods and state of trial / if it has been tested in a browser.</div><div><br></div><div>-Doug</div><div>(PS I have no authority to do a CALL FOR anything. But want to see if web3d and hanim working groups should be doing/ can benefit from calls for)</div></div>
</blockquote></div>