[x3d-public] HAnimDisplacer effect on coord.point
Andreas Plesch
andreasplesch at gmail.com
Tue Feb 18 11:44:28 PST 2025
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/20250218/7be2ab63/attachment-0001.html>
More information about the x3d-public
mailing list