[x3d-public] HAnimDisplacer effect on coord.point

Andreas Plesch andreasplesch at gmail.com
Sun Feb 9 14:35:01 PST 2025


Having a coord field is wise as it makes it unambiguous how displacers are
applied.

The ManyClocks.x3d example has a lot of HAnimSegment nodes which are empty,
only have default values, and seem useless.

In particular a NULL coord field invites problems.

Probably such a node should be just ignored but it would be good to have
more specific spec. guidance, eg. allowing undefined browser behavior
similar to many other nodes.

There is also a weird Segment node (hanim___4) which does not have geometry
and a NULL coord field, but has a displacer. The displacer is even the
target of a route. It would be good if such self in-consistent content
would be allowed to lead to undefined browser behavior as well.

Andreas

On Sun, Feb 9, 2025, 2:34 PM John Carlson <yottzumm at gmail.com> wrote:

> Perhaps we should just make the coord field optional with Segment and Site
> displacers?  If not specified, look in HAnimHumanoid.skinCoord, or make the
> search for coords hierarchical.  As Joe says, a cascade.
>
> Wondering,
>
> John
>
> On Sun, Feb 9, 2025 at 12:33 PM Andreas Plesch <andreasplesch at gmail.com>
> wrote:
>
>> 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>
>> 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>
>>> Sent: Feb 9, 2025 4:25 AM
>>> To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
>>> Cc: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org>,
>>> Carol McDonald <cemd2 at comcast.net>, Joe D Williams <
>>> joedwil at earthlink.net>, John Carlson <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> 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
>>>>
>>>> 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 John
>>>> Carlson via x3d-public <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>; Carol McDonald <cemd2 at comcast.net>; Joe D
>>>> Williams <joedwil at earthlink.net>
>>>> *Cc:* John Carlson <yottzumm at gmail.com>; Andreas Plesch <
>>>> 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> 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
>>>> 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/20250209/7eaf1d94/attachment-0001.html>


More information about the x3d-public mailing list