[x3d-public] CALL FOR: HAnim Level of Detail and other speed optimizations

GPU Group gpugroup at gmail.com
Sat Nov 11 07:14:19 PST 2023


LOD suggestions (all untested)

LOD Requirements:

a) route to persistant fields for motions because skeleton/joints and skin
are swapped

b) motions include routing from orientationInterpolators,  and routing
to.motions and .motionsEnabled fields

Main Options:

A. external HAnimLOD node

- with MFNode field of HanimHumanoid and range [] field from LOD node

- would expose .motions and .motionsEnabled fields and relay their values
to active LOD level Humanoid on each frame

B. extension to HanimHumanoid

- with MFFloat range [] and MFNode skeletons [] and MFNode skins []

- motions and motionsEnabled would be persistent

- on each frame motions are applied to the currently selected LOD level
skeleton joints


OrientationInterpolator – options for persistent field targets > new node
types

MotionRelay

- MFString jointNames

- MFRotation values

– takes orientationInterpolator values and expresses them as motions in
Humanoid.motions field

- so routing to multiple LOD levels is replaced by routing to a relay

- relay applies to LOD level skeleton joints by name lookup during motion
pass

x no way to convert SFRotation routes to MFRotation in web3d

MotionInterpolator

- MFString jointNames

- MFNode OrientationInterpolators

- MFBool replace

- no routing to skeleton joints needed, motion update code will match
jointname and scrape [out] value_changed

Neither MotionRelay nor MotionInterpolator have frameIndex, frameIncrement
they aren’t fully derived from Motion abstract type, Motion hierarchy would
need to be refactored

-Doug

On Sat, Nov 11, 2023 at 8:05 AM GPU Group <gpugroup at gmail.com> wrote:

> 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.
> 1. Requirements for Level of Detail LOD type optimizations for humanoids:
> a) coordinating change of skeleton / joints with change of skin and
> Coordinate node
> 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
> 2. other speed enhancements - methods to remove skin under clothing / swap
> clothing detail, use of buffers and GPU
>
> Please post suggestions, methods and state of trial / if it has been
> tested in a browser.
>
> -Doug
> (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)
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20231111/21e6eae6/attachment.html>


More information about the x3d-public mailing list