<div dir="auto"><div dir="auto">In Michalis mapping approach, what happens if the given mapping strings do not match up, eg. do not have the proper partner ? Presumably undefined behaviour, but probably hard to validate with a stylesheet. </div><div dir="auto"><br></div>Intuitively, it seems desirable to follow Don's explicit field naming approach, to allow for better validation and to keep with precedence of not having custom labels. This is just intuition, let's think about it.<div dir="auto"><br></div><div dir="auto">However, I think the explicit xxxTexCoord fields would need to stay in the geometry node (where it is now). This would then allow for reuse of Appearance (for example if it uses a texture catalog) for multiple geometries. But then the geometry (IFS) could not be reused with another Appearance (same officer but different uniform). I think there the solution is traditionally to indeed define a new Geometry but still reuse the 'meat' of the base Geometry, eg. the coordinate node and indices (indicating that they should perhaps be in their own node as well).</div><div dir="auto"><br></div><div dir="auto">Another option may be to put the explicit xxxTexCoord fields in Appearance but outside of Material. Then Geometry could be shared. New Appearances would be required for different Geometries but they could still reuse the same Material with all the textures. That option may have potential but would be a departure.</div><div dir="auto"><br></div><div dir="auto">Tricky business, Andreas</div><div dir="auto"><br><div data-smartmail="gmail_signature" dir="auto">---on the phone---</div></div><br><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>---------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Mon, 21 Sep 2020 21:09:42 +0200<br>
From: Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com" target="_blank" rel="noreferrer">michalis.kambi@gmail.com</a>><br>
To: Don Brutzman <<a href="mailto:brutzman@nps.edu" target="_blank" rel="noreferrer">brutzman@nps.edu</a>><br>
Cc: X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noreferrer">x3d-public@web3d.org</a>><br>
Subject: Re: [x3d-public] wondering about Texture mapping specified in<br>
        material nodes [corrected]<br>
Message-ID:<br>
        <CAKzBGZM=7pQPVS=ipkBy87GSUsN2qnkJ7jSve9s1SzXyav7U=<a href="mailto:g@mail.gmail.com" target="_blank" rel="noreferrer">g@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="UTF-8"<br>
<br>
Don,<br>
<br>
AD 1 - I have labeled the examples A B C D E F on<br>
<a href="https://github.com/michaliskambi/x3d-tests/wiki/How-to-add-PBR-to-X3D%3F#can-we-make-texture-mapping-using-def--use" rel="noreferrer noreferrer" target="_blank">https://github.com/michaliskambi/x3d-tests/wiki/How-to-add-PBR-to-X3D%3F#can-we-make-texture-mapping-using-def--use</a><br>
.<br>
<br>
    Four of them (the ones that present design that works IMO, with<br>
mapping as SFString) are inside<br>
<a href="https://github.com/michaliskambi/x3d-tests/tree/master/pbr/enhanced_phong_material" rel="noreferrer noreferrer" target="_blank">https://github.com/michaliskambi/x3d-tests/tree/master/pbr/enhanced_phong_material</a><br>
, in files mapping_single_shape.x3dv, and<br>
mapping_second_shape_reusing_*.x3dv . They already work with<br>
view3dscene.<br>
<br>
AD 2 - As you know, all my examples are public (and open-source,<br>
license is in the repo) since day one of my work of PBR + X3Dv4. They<br>
are all on <a href="https://github.com/michaliskambi/x3d-tests/tree/master/pbr/" rel="noreferrer noreferrer" target="_blank">https://github.com/michaliskambi/x3d-tests/tree/master/pbr/</a><br>
.<br>
<br>
AD 3 - The xxxTextureMapping fields and how it matches with<br>
TextureCoordinate.mapping / TextureTransform.mapping is explained at<br>
the very link you mention:<br>
<a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD2/Part01/components/shape.html#TextureMapping" rel="noreferrer noreferrer" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD2/Part01/components/shape.html#TextureMapping</a><br>
. The field "mapping" itself is mentioned at the nodes where it is<br>
present ( <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD2/Part01/components/texturing.html#X3DSingleTextureCoordinateNode" rel="noreferrer noreferrer" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD2/Part01/components/texturing.html#X3DSingleTextureCoordinateNode</a><br>
, <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD2/Part01/components/texturing.html#X3DSingleTextureTransformNode" rel="noreferrer noreferrer" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD2/Part01/components/texturing.html#X3DSingleTextureTransformNode</a><br>
). Indeed there should be a link from X3DSingleTextureCoordinateNode /<br>
X3DSingleTextureTransformNode -> """12.2.4 Texture mapping specified<br>
in material nodes""".<br>
<br>
To answer the rest of your message:<br>
<br>
I'm afraid you didn't understand where the issue is.<br>
<br>
You presented how to express my "example A" using a different approach<br>
(where you put the texture coordinate nodes inside Material).<br>
<br>
But in your approach, texture coordinates are now inside a Material<br>
node. Which goes contrary to the design of meshes/materials in all<br>
other software and formats (glTF, Blender, Unity, X3D 3...). And in<br>
your approach, you cannot express things like:<br>
<br>
- another shape uses the same Appearance node, but with different<br>
IndexedFaceSet (my example B)<br>
<br>
- another shape uses the same Material node, but with different<br>
IndexedFaceSet (my example C)<br>
<br>
And "sharing" an Appearance and/or Material is a very common thing,<br>
available across various 3D authoring tools and formats. This<br>
"sharing" is also very useful also to browsers to optimize loading /<br>
rendering. So we want to keep this sharing possible, just as it was in<br>
X3D 3.<br>
<br>
In my text on <a href="https://github.com/michaliskambi/x3d-tests/wiki/How-to-add-PBR-to-X3D%3F#can-we-make-texture-mapping-using-def--use" rel="noreferrer noreferrer" target="_blank">https://github.com/michaliskambi/x3d-tests/wiki/How-to-add-PBR-to-X3D%3F#can-we-make-texture-mapping-using-def--use</a><br>
, I already tried to do what you did, in examples E and F. Yes, it<br>
works for one shape. But it breaks as soon as someone tries to reuse<br>
- Appearance (which is possible in my example B) or<br>
- Material (which is possible in my example C) or<br>
- IndexedFaceSet (which is possible in my example D).<br>
<br>
Regards,<br>
Michalis<br>
<br>
sob., 19 wrz 2020 o 19:55 Don Brutzman <<a href="mailto:brutzman@nps.edu" target="_blank" rel="noreferrer">brutzman@nps.edu</a>> napisa?(a):<br>
><br>
> continuing just a little more.<br>
><br>
> [...]<br>
><br>
> On 9/19/2020 7:59 AM, Don Brutzman wrote:<br>
> > If we are converging, then identical field pattern for PhysicalMaterial above would be similarly applied to Material and UnlitMaterial in X3D4 specification.<br>
><br>
> [3] 12.4.5 Material<br>
>      <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD2/Part01/components/shape.html#Material" rel="noreferrer noreferrer" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD2/Part01/components/shape.html#Material</a><br>
><br>
> ============================================<br>
> # Current WD2 Material with mapping fields, backwards compatible with X3D3<br>
><br>
> Material : X3DOneSidedMaterialNode {<br>
>    SFFloat  [in,out] ambientIntensity          0.2          [0,1]<br>
>    SFNode   [in,out] ambientTexture            NULL         [X3DSingleTextureNode]<br>
>    SFString [in,out] ambientTextureMapping     ""<br>
><br>
>    SFColor  [in,out] diffuseColor              0.8 0.8 0.8  [0,1]<br>
>    SFNode   [in,out] diffuseTexture            NULL         [X3DSingleTextureNode]<br>
>    SFString [in,out] diffuseTextureMapping     ""<br>
><br>
>    SFColor  [in,out] emissiveColor             0 0 0        [0,1]<br>
>    SFNode   [in,out] emissiveTexture           NULL         [X3DSingleTextureNode]<br>
>    SFString [in,out] emissiveTextureMapping    ""<br>
><br>
>    SFNode   [in,out] metadata                  NULL         [X3DMetadataObject]<br>
><br>
>    SFNode   [in,out] normalTexture             NULL         [X3DTexture2DNode]<br>
>    SFString [in,out] normalTextureMapping      ""<br>
>    SFFloat  [in,out] normalScale               1            [0, ?]<br>
><br>
>    SFFloat  [in,out] occlusionStrength         1            [0,1]<br>
>    SFNode   [in,out] occlusionTexture          NULL         [X3DTexture2DNode]<br>
>    SFString [in,out] occlusionTextureMapping   ""<br>
><br>
>    SFFloat  [in,out] shininess                 0.2          [0,1]<br>
>    SFNode   [in,out] shininessTexture          NULL         [X3DSingleTextureNode]<br>
>    SFString [in,out] shininessTextureMapping   ""<br>
><br>
>    SFColor  [in,out] specularColor             0 0 0        [0,1]<br>
>    SFNode   [in,out] specularTexture           NULL         [X3DSingleTextureNode]<br>
>    SFString [in,out] specularTextureMapping    ""<br>
><br>
>    SFFloat  [in,out] transparency              0            [0,1]<br>
> }<br>
> ============================================<br>
><br>
> to follow the explicit-field pattern shown in PhysicalMaterial would replace "mapping" fields to become something like<br>
><br>
> ============================================<br>
> # Suggested Material without mapping fields, backwards compatible with X3D3<br>
><br>
> Material : X3DOneSidedMaterialNode {<br>
>    SFFloat  [in,out] ambientIntensity          0.2          [0,1]<br>
>    SFNode   [in,out] ambientTexture            NULL         [X3DSingleTextureNode]<br>
>    SFNode   [in,out] ambientTexCoord           NULL         [X3DSingleTextureCoordinateNode]<br>
>    SFNode   [in,out] ambientTextureTransform   NULL         [X3DSingleTextureTransformNode]<br>
><br>
>    SFColor  [in,out] diffuseColor              0.8 0.8 0.8  [0,1]<br>
>    SFNode   [in,out] diffuseTexture            NULL         [X3DSingleTextureNode]<br>
>    SFNode   [in,out] diffuseTexCoord           NULL         [X3DSingleTextureCoordinateNode]<br>
>    SFNode   [in,out] diffuseTextureTransform   NULL         [X3DSingleTextureTransformNode]<br>
><br>
>    SFColor  [in,out] emissiveColor             0 0 0        [0,1]<br>
>    SFNode   [in,out] emissiveTexture           NULL         [X3DSingleTextureNode]<br>
>    SFNode   [in,out] emissiveTexCoord          NULL         [X3DSingleTextureCoordinateNode]<br>
>    SFNode   [in,out] emissiveTextureTransform  NULL         [X3DSingleTextureTransformNode]<br>
><br>
>    SFNode   [in,out] metadata                  NULL         [X3DMetadataObject]<br>
><br>
>    SFNode   [in,out] normalTexture             NULL         [X3DTexture2DNode]<br>
>    SFNode   [in,out] normalTexCoord            NULL         [X3DSingleTextureCoordinateNode]<br>
>    SFNode   [in,out] normalTextureTransform    NULL         [X3DSingleTextureTransformNode]<br>
><br>
>    SFFloat  [in,out] occlusionStrength         1            [0,1]<br>
>    SFNode   [in,out] occlusionTexture          NULL         [X3DTexture2DNode]<br>
>    SFNode   [in,out] occlusionTexCoord         NULL         [X3DSingleTextureCoordinateNode]<br>
>    SFNode   [in,out] occlusionTextureTransform NULL         [X3DSingleTextureTransformNode]<br>
><br>
>    SFFloat  [in,out] shininess                 0.2          [0,1]<br>
>    SFNode   [in,out] shininessTexture          NULL         [X3DSingleTextureNode]<br>
>    SFString [in,out] shininessTexCoord         NULL         [X3DSingleTextureCoordinateNode]<br>
>    SFNode   [in,out] shininessTextureTransform NULL         [X3DSingleTextureTransformNode]<br>
><br>
>    SFColor  [in,out] specularColor             0 0 0        [0,1]<br>
>    SFNode   [in,out] specularTexture           NULL         [X3DSingleTextureNode]<br>
>    SFNode   [in,out] specularTexCoord          NULL         [X3DSingleTextureCoordinateNode]<br>
>    SFNode   [in,out] specularTextureTransform  NULL         [X3DSingleTextureTransformNode]<br>
><br>
>    SFFloat  [in,out] transparency              0            [0,1]<br>
> }<br>
> ============================================<br>
><br>
> ... so for proper spelling of field names ("*TexCoord" vice "*TextureCoord"), consistency correction to previous Version 3-fieldnames-verbose and Version 4-fieldnames-terse examples:<br>
><br>
>        diffuseTextureCoord  USE TEXTURECOORDINATE_6<br>
>        normalTextureCoord   USE TEXTURECOORDINATE_6<br>
>        specularTextureCoord USE TEXTURECOORDINATE_7<br>
><br>
> should be<br>
><br>
>        diffuseTexCoord      USE TEXTURECOORDINATE_6<br>
>        normalTexCoord       USE TEXTURECOORDINATE_6<br>
>        specularTexCoord     USE TEXTURECOORDINATE_7<br>
><br>
> No change to logic or topology here, just getting precise on spelling.<br>
><br>
> all the best, Don<br>
> --<br>
> Don Brutzman  Naval Postgraduate School, Code USW/Br       <a href="mailto:brutzman@nps.edu" target="_blank" rel="noreferrer">brutzman@nps.edu</a><br>
> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149<br>
> X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman" rel="noreferrer noreferrer" target="_blank">http://faculty.nps.edu/brutzman</a><br>
<br>
<br>
<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Mon, 21 Sep 2020 21:17:10 +0200<br>
From: Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com" target="_blank" rel="noreferrer">michalis.kambi@gmail.com</a>><br>
To: Don Brutzman <<a href="mailto:brutzman@nps.edu" target="_blank" rel="noreferrer">brutzman@nps.edu</a>><br>
Cc: X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noreferrer">x3d-public@web3d.org</a>><br>
Subject: Re: [x3d-public] Presentation about View3dScene and Castle<br>
        Game Engine for X3D4<br>
Message-ID:<br>
        <<a href="mailto:CAKzBGZPUTSgmLgU2_KUuPV1rb5zS3to95YV4oMshy34AuqXNXQ@mail.gmail.com" target="_blank" rel="noreferrer">CAKzBGZPUTSgmLgU2_KUuPV1rb5zS3to95YV4oMshy34AuqXNXQ@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
Don,<br>
<br>
Thank you for the good words but this is probably not the video you think<br>
about :)<br>
<br>
On<br>
<a href="https://castle-engine.io/wp/2020/09/06/presentation-about-view3dscene-and-castle-game-engine/" rel="noreferrer noreferrer" target="_blank">https://castle-engine.io/wp/2020/09/06/presentation-about-view3dscene-and-castle-game-engine/</a><br>
I merely reshared the presentation about view3dscene from<br>
<a href="https://www.youtube.com/c/Web3DConsortium" rel="noreferrer noreferrer" target="_blank">https://www.youtube.com/c/Web3DConsortium</a> channel. It is a talk that I gave<br>
for the Web3D webinar about X3D Browsers. This wasn't a talk focused on PBR<br>
in X3Dv4, although I certainly mentioned it by the way :) I show there<br>
various view3dscene features.<br>
<br>
I also gave a presentation at Web3D teleconference about PBR and X3Dv4. We<br>
had 2 such sessions, they were recorded by Zoom. You mentioned you'll put<br>
them online after some cuts, but they are not online yet, as far as I know.<br>
<br>
Regards,<br>
Michalis<br>
<br>
<br>
niedz., 20 wrz 2020 o 21:02 Don Brutzman <<a href="mailto:brutzman@nps.edu" target="_blank" rel="noreferrer">brutzman@nps.edu</a>> napisa?(a):<br>
<br>
> Michalis, thanks 1M for your recent post.  Your video given to X3D Working<br>
> Group is essential viewing for anyone seeking to understand how X3D4 is<br>
> upgrading to include Physically Based Rendering (PhysicalMaterial),<br>
> advanced Material capabilities, and non-photorealistic rendering<br>
> (UnlitMaterial).  These major improvements also allow X3D scenes to inline<br>
> glTF scenes compatibly.<br>
><br>
> =====================================================<br>
> Presentation about View3dScene and Castle Game Engine<br>
><br>
><br>
> <a href="https://castle-engine.io/wp/2020/09/06/presentation-about-view3dscene-and-castle-game-engine/" rel="noreferrer noreferrer" target="_blank">https://castle-engine.io/wp/2020/09/06/presentation-about-view3dscene-and-castle-game-engine/</a><br>
><br>
> At the beginning of August, I made a presentation about View3dScene and<br>
> Castle Game Engine, for Web3D webinar about X3D Browsers. The presentation<br>
> is now publicly available:<br>
><br>
> <a href="https://www.youtube.com/watch?v=-Ku143SI2zA" rel="noreferrer noreferrer" target="_blank">https://www.youtube.com/watch?v=-Ku143SI2zA</a><br>
><br>
> Enjoy ? I focus in the presentation on View3dscene features, which you<br>
> get just by opening some X3D and glTF files, no coding (or knowledge of CGE<br>
> API in Pascal) required. For CGE developers, all these features are<br>
> available as part of our TCastleScene class, documented in a few chapters<br>
> of the manual.<br>
> =====================================================<br>
><br>
> Apologies that I wasn't able to turn around video postproduction sooner,<br>
> am very glad you have done this.  Have also retweeted and cross-linked your<br>
> presentation in Web3D Consortium Twitter and YouTube sites.<br>
><br>
> The X3D Working Group has adopted Michalis design for X3D version 4.<br>
> Working draft 2 of X3D4 is published online, Michalis Dick and I are<br>
> fine-tuning prose and field signatures in full sight of the x3d-public<br>
> mailing list, ensuring the best possible specification that the working<br>
> group is capable of producing.<br>
><br>
> * X3D4 Architecture, Shape component<br>
><br>
> <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD2/Part01/components/shape.html" rel="noreferrer noreferrer" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD2/Part01/components/shape.html</a><br>
><br>
> We are on track to have X3D4 ready for public review and Web3D member<br>
> advancement to ISO at the upcoming Web3D 2020 Conference November 9-13,<br>
> online at<br>
><br>
> * <a href="https://web3d.siggraph.org" rel="noreferrer noreferrer" target="_blank">https://web3d.siggraph.org</a><br>
><br>
> Once again, thanks Michalis for magnificent achievements.  For everyone:<br>
> have fun with advanced X3D4 rendering!  8)<br>
><br>
> all the best, Don<br>
> --<br>
> Don Brutzman  Naval Postgraduate School, Code USW/Br<br>
> <a href="mailto:brutzman@nps.edu" target="_blank" rel="noreferrer">brutzman@nps.edu</a><br>
> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149<br>
> X3D graphics, virtual worlds, navy robotics<br>
> <a href="http://faculty.nps.edu/brutzman" rel="noreferrer noreferrer" target="_blank">http://faculty.nps.edu/brutzman</a><br>
><br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20200921/f2869b87/attachment-0001.html" rel="noreferrer noreferrer" target="_blank">http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20200921/f2869b87/attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
Message: 3<br>
Date: Mon, 21 Sep 2020 16:25:18 -0500<br>
From: John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank" rel="noreferrer">yottzumm@gmail.com</a>><br>
To: X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank" rel="noreferrer">x3d-public@web3d.org</a>><br>
Subject: [x3d-public] SAI to native<br>
Message-ID:<br>
        <CAGC3UEkLkkHrDrMQzpAP-RzsgJY+4U6gZ64vHtSOEO=<a href="mailto:iC1iORg@mail.gmail.com" target="_blank" rel="noreferrer">iC1iORg@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
I am wondering if we have any working SAI to native example conversions?<br>
I know we have bytecoded conversions.<br>
<br>
Thanks!<br>
<br>
John<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20200921/1482becd/attachment.html" rel="noreferrer noreferrer" target="_blank">http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20200921/1482becd/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" rel="noreferrer">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
<br>
<br>
------------------------------<br>
<br>
End of x3d-public Digest, Vol 138, Issue 65<br>
*******************************************<br>
</blockquote></div></div>