[x3d-public] HAnimDisplacer effect on coord.point
John Carlson
yottzumm at gmail.com
Wed Feb 19 15:24:20 PST 2025
Attached is an example with a Hud. I can't get the menu (with the Hud
ProximitySensor and Transforms) to move differently than Jin, so I'm kind
of stuck.
There's probably some silly problem that I missed. The menus move with the
mouse.
Thanks for looking,
John
On Tue, Feb 18, 2025 at 6:49 PM John Carlson <yottzumm at gmail.com> wrote:
> Thanks for code samples, Joe. It looks like I can take out my
> Layering/Layout code and just focus on the menu. Sorry I am so slow on
> this, I think I might be hibernating.
>
> I’m looking at my GitHub commits and they have dropped drastically. This
> might be because I am spending more time helping others with recovery or
> just using social media too much.
>
> I will try to get to the HUD in the next two days. It was so cold, we
> didn’t even go to the dentist 45 miles away. We got out today though.
>
> John
>
> On Tue, Feb 18, 2025 at 6:38 PM Joe D Williams <joedwil at earthlink.net>
> wrote:
>
>> > a HUD for Joe
>>
>>
>>
>> A hud for the FACS example is needed because any navigation causes the
>> menu to disappear. The menu can be just like used on the Jin scaled with
>> animation example. However that uses a ProximitySensor which x3dom does not
>> support, for some reason. We use that a lot for start timers, timers,
>> etc.as well as being the typical way to keep a menu or scene data in
>> view.
>>
>> If HTML/SVG is better, I have not seen it. I don't think Stacking canvas
>> is appropriate. Fine to think of XR for in-world 2d or3d HUDS but does that
>> sort ofdisplay really work any different than using prox sensor?
>> ProximitySensor is just so basic.
>>
>>
>>
>> <ProximitySensor DEF='HudProx' size='50 50 50'/>
>>
>> <Transform DEF='HudXform' rotation='0 1 0 0.78' translation='2 1 2'>
>>
>> <Transform DEF='Menu' scale='0.02 0.02 0.02' translation='-0.38
>> 0.05 -0.75'>
>>
>> rest of menu
>>
>> <ROUTE fromField='position_changed' fromNode='HudProx'
>> toField='set_translation' toNode='HudXform'/>
>> <ROUTE fromField='orientation_changed' fromNode='HudProx'
>> toField='set_rotation' toNode='HudXform'/>
>>
>>
>>
>> Thanks and Best,
>>
>> Joe
>>
>>
>>
>> huds3d
>>
>> XR
>>
>> -----Original Message-----
>> From: Andreas Plesch <andreasplesch at gmail.com>
>> Sent: Feb 18, 2025 11:45 AM
>> To: John Carlson <yottzumm at gmail.com>
>> Cc: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org>,
>> Holger Seelig <holger.seelig at yahoo.de>, Joseph D Williams <
>> joedwil at earthlink.net>, Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>,
>> Carol McDonald <cemd2 at comcast.net>
>> Subject: Re: [x3d-public] HAnimDisplacer effect on coord.point
>>
>>
>> Please do not wait for x3dom. Both ProximitySensor and the Layering
>> component are lower priority. HTML/SVG is better suited for 2D HUDs and
>> layering can be approximated by stacking multiple X3D canvases/scenes. You
>> may also consider XR where immersion typically strongly favors in-world 3d
>> HUDs.
>>
>> Best, -Andreas
>>
>> On Tue, Feb 18, 2025 at 2:25 PM John Carlson <yottzumm at gmail.com> wrote:
>>
>>> Don, we’re currently working on a HUD for Joe, I don’t currently have an
>>> online example of that.
>>>
>>> Otherwise, I’m waiting on someone deciding which meshes to merge. I
>>> could take the lead on this.
>>>
>>> I could use a tutorial on the Layering and Layout components, examples
>>> don’t seem to help. I may try to adopt a 3D HUD based on examples.
>>> Something with the 2D overlay in WORLD space would help tremendously, or
>>> some conversion from WORLD space.
>>>
>>> We already have 3D menus, so a 3D HUD might be easiest.
>>>
>>> Thanks,
>>>
>>> John
>>> On Mon, Feb 17, 2025 at 11:18 PM Brutzman, Donald (Don) (CIV) via
>>> x3d-public <x3d-public at web3d.org> wrote:
>>>
>>>> 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>
>>>> 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
>>>> https://create3000.github.io/x_ite/
>>>>
>>>> Am 09.02.2025 um 19:33 schrieb Andreas Plesch via x3d-public <
>>>> 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>
>>>> 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
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> x3d-public mailing list
>>>> x3d-public at web3d.org
>>>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>>>
>>>>
>>>> _______________________________________________
>>>> x3d-public mailing list
>>>> x3d-public at web3d.org
>>>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>>
>>>
>>
>> --
>> Andreas Plesch
>> Waltham, MA 02453
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250219/e34b2c41/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Clocks6.zip
Type: application/x-zip-compressed
Size: 251599 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250219/e34b2c41/attachment-0001.bin>
More information about the x3d-public
mailing list