[x3d-public] HAnimDisplacer effect on coord.point

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Mon Feb 17 21:17:34 PST 2025


Wondering, do we have a simple excerpted example that we can look at yet?  That will help guide these discussions.

Don't need a full human body animation in all its displaceable glory...


all the best, Don

--

Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman at nps.edu

Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149

X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman



________________________________
From: x3d-public <x3d-public-bounces at web3d.org> on behalf of Joe D Williams via x3d-public <x3d-public at web3d.org>
Sent: Saturday, February 15, 2025 6:55 PM
To: Holger Seelig <holger.seelig at yahoo.de>; Andreas Plesch <andreasplesch at gmail.com>
Cc: joedwil at earthlink.net <joedwil at earthlink.net>; X3D <x3d-public at web3d.org>; Carol McDonald <cemd2 at comcast.net>
Subject: Re: [x3d-public] HAnimDisplacer effect on coord.point


 > coord.point changes are very very expensive quickly,



Right, the processing time gets expensive as the number of points moved.

If level 1 segment geometry where the mesh is driven directly by a joint, then it easier since weight is always 1.

For level 2 skin, the the weight (radial movement) applied by maybe multiple joints needs to be computed for each point.

Finally, for both levels, the displacements for selected set of points needs to be applied.

This implies multiple passes on the subject coordinates?

Whatever, these operations are common where the applications deal with

a complete mesh and with sparse points of a mesh for blending.  .



> with reference to CoordinateInterpolator,



These are useful when controlling all points of a target mesh.

All points of a mesh must be included and same number of points at each keyframe.

This style was used in first step of the current example x3d FACS because

face geometry is made from multiple shapes. CoordinateInterpolater sets

for each shape for each elemental action moved the points.

This was simplified to using the same face for each action example

and then replaced the CIs with sets of Displacers.

Now have developed further to combine individual actions to make a

specific expression which consists of multiple elemental movements.

However, I think we want to evolve towards a basic single mesh face

with some individual shapes for like teeth, hair, eyeballs, eyelids, tongue, maybe ears?

and using joint nodes to control, where appropriate.



Regardless of how the points are moved for the next frame, it has to be

considered that geometry points will be moved directly by joint rotations,

by a weighting algorithm using multiple joint rotation inputs,

and by one or more scalar-driven Displacer inputs.



Thanks for HAnim,

Joe



















-----Message-----

From: Holger Seelig <holger.seelig at yahoo.de>
Sent: Feb 9, 2025 11:23 AM
To: Andreas Plesch <andreasplesch at gmail.com>
Cc: X3D <x3d-public at web3d.org>, Joseph D Williams <joedwil at earthlink.net>, Carol McDonald <cemd2 at comcast.net>
Subject: Re: [x3d-public] HAnimDisplacer effect on coord.point



I don't think so, coord.point changes are very very expensive quickly, and as Michalis said earlier, with reference to CoordinateInterpolator, we should get rid of them.

Holger
--
Holger Seelig
Leipzig, Germany

holger.seelig at yahoo.de
https://create3000.github.io/x_ite/

Am 09.02.2025 um 19:44 schrieb Andreas Plesch <andreasplesch at gmail.com>:
Yes, that is an option. However,coord.point changes are very very expensive quickly, and as Michalis said earlier, with reference to CoordinateInterpolator, we should get rid of them.

Andreas

On Sun, Feb 9, 2025, 1:40 PM Holger Seelig <holger.seelig at yahoo.de<mailto:holger.seelig at yahoo.de>> wrote:
X_ITE applies the HAnimDisplacers in the shader, thus no coord.point field has to be changed.
Maybe that helps.

Best regards,
Holger

--
Holger Seelig
Leipzig, Germany

holger.seelig at yahoo.de<mailto:holger.seelig at yahoo.de>
https://create3000.github.io/x_ite/

Am 09.02.2025 um 19:33 schrieb Andreas Plesch via x3d-public <x3d-public at web3d.org<mailto:x3d-public at web3d.org>>:

That would be the point field of a Coordinate node

https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#Coordinate

which is used by the coord field of

https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html#HAnimSegment

Andreas

On Sun, Feb 9, 2025, 12:36 PM Joe D Williams <joedwil at earthlink.net<mailto:joedwil at earthlink.net>> wrote:
>  coord node emit a point_changed event



sorry,I don't see a field anywhere with that event. Displacer is likely to change several points when new weight is sent. All part of the cascade to produce the changed mesh?
Thanks,
Joe





-----Original Message-----
From: Andreas Plesch <andreasplesch at gmail.com<mailto:andreasplesch at gmail.com>>
Sent: Feb 9, 2025 4:25 AM
To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu<mailto:brutzman at nps.edu>>
Cc: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org<mailto:x3d-public at web3d.org>>, Carol McDonald <cemd2 at comcast.net<mailto:cemd2 at comcast.net>>, Joe D Williams <joedwil at earthlink.net<mailto:joedwil at earthlink.net>>, John Carlson <yottzumm at gmail.com<mailto:yottzumm at gmail.com>>
Subject: Re: [x3d-public] HAnimDisplacer effect on coord.point



Don, Joe and John

Thanks for collecting these references.

But I am not sure if there is an answer to my original question. Let me rephrase a bit the question:

After a Displacer contained in a Segment node receives a set_weight input, should then the coord node emit a point_changed event ?

I do not think HAnim is concerned about that, so it is really a X3D question.

Thanks, Andreas

On Sun, Feb 9, 2025, 12:49 AM Brutzman, Donald (Don) (CIV) <brutzman at nps.edu<mailto:brutzman at nps.edu>> wrote:
Thanks for pointing in the right direction John.

Direct links to functional requirements for Displacer in HAnim 2.0 specification:

  *
HAnim 2.0. Part 1:  Humanoid animation (HAnim) architecture, Clause 4 Concepts, 4.7 Displacer object
  *
https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#DisplacerObject

  *
HAnim 2.0. Part 1:  Humanoid animation (HAnim) architecture, Clause 6 Object interfaces, 6.6 Displacer
  *
https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Displacer

and

  *
X3D 4.0 Architecture, Clause 26 Humanoid Animation (HAnim) component, 26.3.1 HAnimDisplacer
  *
https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html#HAnimDisplacer

and informative

  *
X3D Tooltips, HAnimDisplacer
  *
https://www.web3d.org/x3d/content/X3dTooltips.html#HAnimDisplacer

Thanks for implementation efforts and careful scrutiny.

Questions and potential issues/clarifications/corrections are always welcome.


all the best, Don
--
Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman at nps.edu<mailto:brutzman at nps.edu>
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149
X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman




________________________________
From: x3d-public <x3d-public-bounces at web3d.org<mailto:x3d-public-bounces at web3d.org>> on behalf of John Carlson via x3d-public <x3d-public at web3d.org<mailto:x3d-public at web3d.org>>
Sent: Saturday, February 8, 2025 3:43 AM
To: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org<mailto:x3d-public at web3d.org>>; Carol McDonald <cemd2 at comcast.net<mailto:cemd2 at comcast.net>>; Joe D Williams <joedwil at earthlink.net<mailto:joedwil at earthlink.net>>
Cc: John Carlson <yottzumm at gmail.com<mailto:yottzumm at gmail.com>>; Andreas Plesch <andreasplesch at gmail.com<mailto:andreasplesch at gmail.com>>
Subject: Re: [x3d-public] HAnimDisplacer effect on coord.point

Here’s what HAnim spec says under Displacer:

https://www.web3d.org/documents/specifications/19774/V2.0/index.html

“For the Displacer objects that are contained in the displacers field of the Segment objects, the displacements are defined and applied in the Segment coordinate system. The base mesh for the morphed Segment is the original mesh defined in the Segment.”

And here’s what it says under Segment:

“

The coord field is used for Segment objects that have deformable meshes and shall contain coordinates referenced from the indexed mesh for the Segment object. The coordinates are given the same name as the Segment object, but with a "_coords" appended (e.g.,"skull_coords").”

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

The Coordinate point is maintained to handle weight = 0.  Weight ranges from 0 to 1, but double check.

Joe or Carol might know where to find it in the HAnim spec.

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.

I have not read the spec.

John



On Sat, Feb 8, 2025 at 5:13 AM Andreas Plesch via x3d-public <x3d-public at web3d.org<mailto:x3d-public at web3d.org>> wrote:
https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/hanim.html#HAnimDisplacer

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.

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 ?

This is relevant if the coord.point field is accessed by routes or scripts, in addition to displacers.

Thanks for any feedback or ideas,

Andreas

--
Andreas Plesch
Waltham, MA 02453
_______________________________________________
x3d-public mailing list
x3d-public at web3d.org<mailto:x3d-public at web3d.org>
http://web3d.org/mailman/listinfo/x3d-public_web3d.org



_______________________________________________
x3d-public mailing list
x3d-public at web3d.org<mailto:x3d-public at web3d.org>
http://web3d.org/mailman/listinfo/x3d-public_web3d.org


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250218/10349a60/attachment-0001.html>


More information about the x3d-public mailing list