<div dir="ltr"><div class="gmail_quote gmail_quote_container"><div><br></div><div>Responses below:<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Date: Tue, 11 Feb 2025 15:58:40 -0600<br>
From: John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br>
To: "Extensible 3D (X3D) Graphics public discussion"<br>
<<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br>
Subject: Re: [x3d-public] Displacer and normals ?<br><br>
Did you get the black tongue effect? I?ve seen that in Sunrize, and<br>
reported it there. Holger had a response about providing normals.<br></blockquote><div><br></div><div>I found <a href="https://github.com/create3000/sunrize/issues/9">https://github.com/create3000/sunrize/issues/9</a></div><div><br></div><div>Yes, I think this is similar. x-ite/sunrize just may not automatically recalculate normals for performance reasons which in some cases may be beneficial by avoiding the effects of degenerate triangles.<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
The displacers were taken from CoordinateInterpolators in the<br>
HumanoidAnimation/FacialAnimation X3D archive.<br>
<a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/FacialAnimation/index.html" rel="noreferrer" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/FacialAnimation/index.html</a><br>
Perhaps we could derive normals from those examples, realizing only one set<br>
of meshes is chosen for the final version.<br>
<br>
It?s relevant, because I will be providing a unified skin mesh for FACS,<br>
and it would be nice to provide normals.<br></blockquote><div><br></div><div>I noticed the effect actually only in combined displacers/morphers, eg. the Contempt combo. That brings up the future question of how pre-computed normals from multiple displacers may be combined, maybe just by averaging the slerped orientation from each.</div><div>There may have been studies on how to best recombine facial subexpressions for a valid result.<br></div><div><br></div><div>-Andreas<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
On Tue, Feb 11, 2025 at 3:41?PM Andreas Plesch via x3d-public <<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>> wrote:<br>
<br>
> I noticed that some displacers cause degenerate or flipped triangles which<br>
> may cause rendering problems, mostly due to problems calculating<br>
> automatically a good normal vector.<br>
><br>
> In general, for best rendering results, it is necessary to provide<br>
> precomputed normals. rather than rely on automatic normal calculations. Was<br>
> there a discussion on how to have displacers provide precomputed normals<br>
> along with the displacement of the vertices ? That would help with<br>
> rendering quality, and may be necessary for some use cases.<br>
><br>
> This may be deemed a long term feature to consider.<br>
><br>
> Perhaps an idea would be a MFRotation normalRotations field which has the<br>
> rotation required to rotate the normal (per vertex, or perhaps per face)<br>
> from the rest orientation to the final orientation. Weights are applied<br>
> with slerp. For animation authors it would be probably easier to be able to<br>
> just directly provide the final orientation.<br>
><br>
> Any feedback or comment much welcome, -Andreas<br>
><br>
><br>
> --<br>
> Andreas Plesch<br>
> Waltham, MA 02453<br>
> _______________________________________________<br>
> x3d-public mailing list<br>
> <a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
> <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
><br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250211/a4be3c1a/attachment-0001.html" rel="noreferrer" target="_blank">http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250211/a4be3c1a/attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
Message: 3<br>
Date: Wed, 12 Feb 2025 11:27:59 -0500<br>
From: Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank">andreasplesch@gmail.com</a>><br>
To: John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br>
Cc: Holger Seelig <<a href="mailto:holger.seelig@yahoo.de" target="_blank">holger.seelig@yahoo.de</a>>, X3D Graphics public<br>
mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>>, Joe D Williams<br>
<<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>><br>
Subject: Re: [x3d-public] Turning on and off simultaneous animations<br>
individually<br>
Message-ID:<br>
<<a href="mailto:CAKdk67vXRSz1pM4QLjcxuCQHfjY4LUT924cSmX7rPAasroPUCw@mail.gmail.com" target="_blank">CAKdk67vXRSz1pM4QLjcxuCQHfjY4LUT924cSmX7rPAasroPUCw@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
Hi,<br>
<br>
I took a first stab at Displacers in Segments for x3dom and use it now in<br>
the editor:<br>
<br>
<a href="https://andreasplesch.github.io/Library/Viewer/index.html?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/ManyClocks.x3d" rel="noreferrer" target="_blank">https://andreasplesch.github.io/Library/Viewer/index.html?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/ManyClocks.x3d</a><br>
<br>
This is experimental and mostly for testing purposes. If there is an<br>
example combining Displacers in both Joints and Segments that would be<br>
interesting as it is not necessarily expected to work.<br>
The experimental implementation is inefficient and expensive as it is<br>
weight_changed event driven. If you activate multiple displacers the frame<br>
rate starts to drop. It probably is not very useful at this point.<br>
<br>
Fee free to give it a try, -Andreas<br>
<br>
On Wed, Feb 5, 2025, 4:11?PM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank">andreasplesch@gmail.com</a>> wrote:<br>
<br>
> Hi John,<br>
><br>
> Thanks. I found the tongue.x3d example but if you can create another one<br>
> that would be helpful in general.<br>
><br>
> You vastly overestimate my ability and availability ;) This would be a<br>
> longer term project. I have an idea what to do.<br>
><br>
> Andreas<br>
><br>
><br>
> On Wed, Feb 5, 2025, 1:31?PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br>
><br>
>> I had one I sent to Holger, probably derived from this one:<br>
>><br>
>><br>
>> <a href="https://github.com/coderextreme/ci2had/blob/main/resources/JinMouthStretch.x3d" rel="noreferrer" target="_blank">https://github.com/coderextreme/ci2had/blob/main/resources/JinMouthStretch.x3d</a><br>
>><br>
>><br>
>> What I would do (again) is take out all the segments but the tongue.<br>
>><br>
>> There?s no menus involved in this one.<br>
>><br>
>> If you need further assistance, like a smaller example, I can help. Also<br>
>> all the Jin*.x3d FACS action units can also provide examples.<br>
>><br>
>> I?ll be pretty unbusy today. I can allocate some time for creating a<br>
>> model, make sure it animates, etc.<br>
>><br>
>> If you?re able to allocate some time today, great, we have an HAnim<br>
>> meeting tomorrow and showing off X3DOM editor using Displacers would be<br>
>> fantastic!<br>
>><br>
>> Remember there?s a coord field in HAnimSegment that the HAnimDisplacer<br>
>> operates on!<br>
>><br>
>> John<br>
>><br>
>> On Wed, Feb 5, 2025 at 12:01?PM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank">andreasplesch@gmail.com</a>><br>
>> wrote:<br>
>><br>
>>> Hi John,<br>
>>><br>
>>> The reason is that Displacers are currently implemented in x3dom only<br>
>>> for Joints, but not for Segments, unfortunately. Do you know of a simple<br>
>>> but instructive test case of Segments with Displacers ?<br>
>>><br>
>>> Andreas<br>
>>><br>
>>><br>
>>> On Tue, Feb 4, 2025, 2:33?PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br>
>>><br>
>>>> I will try to test this in castle model converter.<br>
>>>><br>
>>>> I did try setting a value for the outputOnly fields, but the converter<br>
>>>> wouldn?t shut up.<br>
>>>><br>
>>>> The model below doesn?t seem to animate when one presses the menu<br>
>>>> items. Did you get it to animate?<br>
>>>><br>
>>>> On Tue, Feb 4, 2025 at 12:27?PM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank">andreasplesch@gmail.com</a>><br>
>>>> wrote:<br>
>>>><br>
>>>>> Hi John, all,<br>
>>>>><br>
>>>>> It turns out that x3dom currently expects a default value for Proto<br>
>>>>> fields even for outputOnly fields. This is due to how Proto fields are<br>
>>>>> initialized. They always need to have a value. While the spec. does not<br>
>>>>> require this, it seems still good practice to always define a default value<br>
>>>>> in the ProtoInterface. There may be a case where an outputOnly field is<br>
>>>>> used in ISing where a valid value would be expected. There may be other<br>
>>>>> corner cases.<br>
>>>>><br>
>>>>> Here is your example with added default values for outputOnly fields:<br>
>>>>><br>
>>>>><br>
>>>>> <a href="https://andreasplesch.github.io/Library/Viewer/index.html?url=https://gist.githubusercontent.com/andreasplesch/af5ff3148c1159f71d34fb78c1f63024/raw/b3d4470107ab74e301ed48448ab2a4f4154672e0/ManyClocks_John.x3d" rel="noreferrer" target="_blank">https://andreasplesch.github.io/Library/Viewer/index.html?url=https://gist.githubusercontent.com/andreasplesch/af5ff3148c1159f71d34fb78c1f63024/raw/b3d4470107ab74e301ed48448ab2a4f4154672e0/ManyClocks_John.x3d</a><br>
>>>>><br>
>>>>> This could be fixed in x3dom, by always setting some default value. Is<br>
>>>>> there a list of recommended defaults for each data type if no other source<br>
>>>>> of defaults is available? For SFTime it seems to be -1.<br>
>>>>><br>
>>>>><br>
>>>>> -Andreas<br>
>>>>><br>
>>>>><br>
>>>>> On Mon, Feb 3, 2025 at 7:39?AM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank">andreasplesch@gmail.com</a>><br>
>>>>> wrote:<br>
>>>>><br>
>>>>>> Hi John,<br>
>>>>>><br>
>>>>>> On Mon, Feb 3, 2025 at 12:48?AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br>
>>>>>> wrote:<br>
>>>>>><br>
>>>>>>> Andreas, "startTime" is an accessType outputOnly field, so why do I<br>
>>>>>>> need to provide a value attribute in fieldValue? I'm kind of confused.<br>
>>>>>>> I'm probably missing something in the spec.<br>
>>>>>>><br>
>>>>>><br>
>>>>>> You are right, I only outlined scenarios where the accessType allows<br>
>>>>>> input or initialization..<br>
>>>>>> In the outputOnly case it is not necessary to provide a fieldValue<br>
>>>>>> node at all since there is no value which can be provided. Providing the<br>
>>>>>> node would indeed be confusing, to both the user code reader and any X3D<br>
>>>>>> browser.<br>
>>>>>> I believe the spec. is silent on this case in any encoding.<br>
>>>>>><br>
>>>>>> Best, Andreas<br>
>>>>>><br>
>>>>>> Thanks for any clarification.<br>
>>>>>>><br>
>>>>>>> I have finally enabled schematron on the project, but I'm finding it<br>
>>>>>>> hard to understand the messages, and modifications that I make, while<br>
>>>>>>> removing the immediate problems, seem to move the problems elsewhere.<br>
>>>>>>><br>
>>>>>>> Explaining why I need a "startTime" fieldValue value is my main lack<br>
>>>>>>> of understanding, but perhaps I need a whole review of accessType.<br>
>>>>>>><br>
>>>>>>> Castle Model Converter reports:<br>
>>>>>>><br>
>>>>>>> castle-model-converter: Warning: X3D: X3D XML: <fieldValue> element<br>
>>>>>>> references unknown field name "enabled"<br>
>>>>>>> castle-model-converter: Warning: X3D: X3D XML: <fieldValue> element<br>
>>>>>>> references unknown field name "startTime"<br>
>>>>>>> castle-model-converter: Warning: X3D: X3D XML: <fieldValue> element<br>
>>>>>>> references unknown field name "stopTime"<br>
>>>>>>><br>
>>>>>>> I will try providing a field value in the ProtoInterface<br>
>>>>>>><br>
>>>>>>> If I "cleanup" enabled, startTime and stopTime, I get:<br>
>>>>>>><br>
>>>>>>> castle-model-converter: Warning: VRML/X3D: Within prototype<br>
>>>>>>> "MenuItem", event "inputTrue" references (by "IS" clause) non-existing<br>
>>>>>>> event "enabled"<br>
>>>>>>> castle-model-converter: Warning: VRML/X3D: Within prototype<br>
>>>>>>> "MenuItem", event "triggerTime" references (by "IS" clause) non-existing<br>
>>>>>>> event "startTime"<br>
>>>>>>> castle-model-converter: Warning: VRML/X3D: Within prototype<br>
>>>>>>> "MenuItem", event "triggerTime" references (by "IS" clause) non-existing<br>
>>>>>>> event "stopTime"<br>
>>>>>>><br>
>>>>>>> I guess what I conclude at this point is, startTime and stopTime are<br>
>>>>>>> bad DEF names, but what about enabled as a field? The dominoes are falling.<br>
>>>>>>><br>
>>>>>>> About your two scenarios in the other message, perhaps this is<br>
>>>>>>> revealing.<br>
>>>>>>><br>
>>>>>>> See attached attempt to fix original issue, which resulted in the<br>
>>>>>>> above.<br>
>>>>>>><br>
>>>>>>> John<br>
>>>>>>><br>
>>>>>>> On Sun, Feb 2, 2025 at 3:59?PM Andreas Plesch <<br>
>>>>>>> <a href="mailto:andreasplesch@gmail.com" target="_blank">andreasplesch@gmail.com</a>> wrote:<br>
>>>>>>><br>
>>>>>>>> I think x3dom, reasonably, expects a value for the fieldValue nodes:<br>
>>>>>>>><br>
>>>>>>>> For example:<br>
>>>>>>>><br>
>>>>>>>> <fieldValue name="startTime" /><br>
>>>>>>>><br>
>>>>>>>> and others.<br>
>>>>>>>><br>
>>>>>>>> On Sun, Feb 2, 2025 at 5:42?AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br>
>>>>>>>> wrote:<br>
>>>>>>>><br>
>>>>>>>>> Andreas, Joe,<br>
>>>>>>>>><br>
>>>>>>>>> Reset Button, Reset_Clock added.<br>
>>>>>>>>><br>
>>>>>>>>> See attached zip for details, or visit link;<br>
>>>>>>>>><br>
>>>>>>>>><br>
>>>>>>>>> <a href="https://create3000.github.io/x_ite/playground/?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/CleanedYouClocks.x3d" rel="noreferrer" target="_blank">https://create3000.github.io/x_ite/playground/?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/CleanedYouClocks.x3d</a><br>
>>>>>>>>><br>
>>>>>>>>> For some reason, this link doesn't show the live scene?<br>
>>>>>>>>><br>
>>>>>>>>><br>
>>>>>>>>> <a href="https://andreasplesch.github.io/Library/Viewer/index.html?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/CleanedYouClocks.x3d" rel="noreferrer" target="_blank">https://andreasplesch.github.io/Library/Viewer/index.html?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/CleanedYouClocks.x3d</a><br>
>>>>>>>>><br>
>>>>>>>>> Puzzled, haven't researched it yet. Looks good in Sunrize and<br>
>>>>>>>>> X_ITE, will try FreeWRL next.<br>
>>>>>>>>><br>
>>>>>>>>> John<br>
>>>>>>>>><br>
>>>>>>>>>><br>
>>>>>>>><br>
>>>>>>>> --<br>
>>>>>>>> Andreas Plesch<br>
>>>>>>>> Waltham, MA 02453<br>
>>>>>>>><br>
>>>>>>><br>
>>>>>><br>
>>>>>> --<br>
>>>>>> Andreas Plesch<br>
>>>>>> Waltham, MA 02453<br>
>>>>>><br>
>>>>><br>
>>>>><br>
>>>>> --<br>
>>>>> Andreas Plesch<br>
>>>>> Waltham, MA 02453<br>
>>>>><br>
>>>><br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250212/6f37d6ce/attachment.html" rel="noreferrer" target="_blank">http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250212/6f37d6ce/attachment.html</a>><br>
<br>
------------------------------<br>
<br>
Subject: Digest Footer<br>
<br>
_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
<br>
<br>
------------------------------<br>
<br>
End of x3d-public Digest, Vol 191, Issue 57<br>
*******************************************<br>
</blockquote></div><div><br clear="all"></div><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Andreas Plesch<br>Waltham, MA 02453</div></div></div></div>