<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>X3D4 and X3DUOM and JSON:</p>
    <p>Good news, this patch has been accepted!  We should be able to
      use it after acceptance testing!</p>
    <p>Reminder, you should be able to use either/both "back" and
      "backTexture,"  "bottom" and "bottomTexture," etc. in your X3D4
      ComposedCubeMapTexture's. The correct choice of output will depend
      on your version of X3D that you are outputting from X3DJSAIL. I
      will be testing X_ITE and X3DOM current (latest, dev) versions
      with X3DJSONLD soon.<br>
    </p>
    <p>Don, thank you for accepting the patch, and being patient with my
      exposition of it. Sometimes, things have to be done in person.<br>
    </p>
    <p>This should probably affect all XML and JSON output (and maybe
      more) from X3DJSAIL, with regards to MultiTextures (at least the
      6-sided ones).   MFNodes still use the "position() = 1" test case
      (Don, please confirm), as I don't know if I have any examples of
      that.</p>
    <p>Heads up to X3DOM folks--hope you fix the code to accept X3D4
      synonyms and the fields name changes!  I'll have to do some
      testing to see if this has been fixed in X3DJSONLD, which uses the
      X3DOM dev version.</p>
    <p>Looks like a new version of X3DUOM is out, and another possibly
      soon! So far, no changes to JSON Schema.  JSON schema has already
      implemented changes for synonyms, so your X3DJSON validation
      should work, assuming you've updated to the latest 4.0 JSON schema
      (found in X3DJSONLD/src/main/schema/)</p>
    <p>=============================================</p>
    <p>Python:<br>
    </p>
    <p>If you're trying to validate X3D JSON in your Python programs,
      remember that there's a validate.py available in
      X3DJSONLD/src/main/python.   This is pure python code--the JSON
      schema is converted to python, so instead of validation errors,
      you'll probably get some weird python error.  I pretty much prefer
      Ajv's error reports, but I'm used to them.  This is brought to you
      by fastjsonschema, me, and Jeff H.</p>
    <p>We'll be considering what approaches we'll take for reading
      encodings into x3d.py programs.   For now, consider some version
      of X3DJSAIL-Python, which uses the X3DJSAIL API (not the x3d.py
      version).   X3DJSAIL with python scripting has been deprecated in
      favor of x3d.py.  To achieve an XML to python conversion that will
      use x3d.py, try using X3dToPython.xslt found on the sourceforge
      x3d project site.</p>
    <p>**********This may be an opportunity for some in our python
      community to step up and provide appropriate encoding readers.<br>
    </p>
    <p>===================================================<br>
    </p>
    <p>C/C++/C#:</p>
    <p>I'll probably be writing the conversions between X3D JSON and
      C/C++/C# using templates of my JavaScript code, so-called
      "Serializers."  I'm currently working on a Dart version, but if I
      can get a bit of assistance on Dart, I may be able to move my
      efforts to C/C++/C# examples.</p>
    <p>NOTE****************</p>
    <p>The C bindings delivered to sourceforge currently contain what
      look like C++ classes in their .h files.   I don't think this is
      correct.  Is there an update?</p>
    <p>So probably I'll be working with C++ examples first.<br>
    </p>
    <p>Onward!<br>
    </p>
    <p>John<br>
    </p>
    <div class="moz-cite-prefix">On 7/2/21 7:29 AM, John Carlson wrote:</div>
    <blockquote type="cite"
      cite="mid:58effd48-f658-113b-832d-bcae43ce4415@gmail.com">
      <p>x3d/stylesheets$ svn diff
        CreateX3dSceneAccessInterfaceJava.xslt <br>
        Index: CreateX3dSceneAccessInterfaceJava.xslt<br>
===================================================================<br>
        --- CreateX3dSceneAccessInterfaceJava.xslt      (revision 32276)<br>
        +++ CreateX3dSceneAccessInterfaceJava.xslt      (working copy)<br>
        @@ -12960,13 +12960,13 @@<br>
                     <xsl:text><br>
                 String correctedContainerField;</xsl:text><br>
                     <xsl:for-each
        select="InterfaceDefinition/field[string-length(@synonym) >
        0][@type = 'SFNode']"><br>
        -                <xsl:if test="(position() = 1)"><br>
        +                <!--xsl:if test="(position() = 1)"--><br>
                             <xsl:text
        disable-output-escaping="yes"><![CDATA[<br>
                 if (hasAncestorX3D() &&
        findAncestorX3D().getVersion().startsWith("3"))<br>
                      correctedContainerField =
        "]]></xsl:text><xsl:value-of
        select="@synonym"/><xsl:text>";<br>
                 else correctedContainerField = "</xsl:text>  
        <xsl:value-of select="@name"/><xsl:text>";<br>
         </xsl:text><br>
        -                </xsl:if><br>
        +                <!--/xsl:if--><br>
                         <xsl:variable
        name="CamelCaseName"><!-- upper camel case --><br>
                             <xsl:value-of
select="translate(substring(@name,1,1),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/><br>
                             <xsl:value-of
        select="substring(@name,2)"/></p>
      <p><br>
      </p>
      <p><br>
      </p>
      <div class="moz-cite-prefix">On 7/2/21 7:25 AM, Holger Seelig
        wrote:<br>
      </div>
      <blockquote type="cite"
        cite="mid:DB9D8679-1625-41D5-80E4-3915CDB153E3@yahoo.de">
        <div class="">Updated X_ITE to have X3D V4 field names for
          ComposedCubeMapTexture.</div>
        <br class="">
        <div><br class="">
          <blockquote type="cite" class="">
            <div class="">Am 02.07.2021 um 13:51 schrieb John Carlson
              <<a href="mailto:yottzumm@gmail.com" class=""
                moz-do-not-send="true">yottzumm@gmail.com</a>>:</div>
            <br class="Apple-interchange-newline">
            <div class="">
              <div dir="auto" class="">X3D4 added Texture to back,
                front, … container fields in XML.   See X3DUOM 4.0,
                “backTexture” entries under ComposedCubeMapTexture.
                 back, front,  … are now synonyms for backTexture,
                frontTexture, etc.   just search for synonym may be
                easier.</div>
              <div dir="auto" class=""><br class="">
              </div>
              <div dir="auto" class="">I can’t change to back, front, …
                because my Java, NodeJs and Python serializers do not
                convert back to setBackTexture, instead they use
                setBack.   Guess what?  X3DJSAIL does not have a setBack
                with a signature I want.   Yes, I do have ways to
                override the method I haven’t deployed in
                mapToMethod2.js</div>
              <div dir="auto" class=""><br class="">
              </div>
              <div dir="auto" class="">Not only that, X3DOM expects
                back, front, etc.</div>
              <div dir="auto" class=""><br class="">
              </div>
              <div dir="auto" class="">So is someone trying to piss me
                off?  Idk.   I think I might be the only person who
                actually uses ComposedCubeMapTexture!</div>
              <div dir="auto" class=""><br class="">
              </div>
              <div dir="auto" class="">Thanks for the updates.  I will
                go to sleep less upset.</div>
              <div dir="auto" class=""><br class="">
              </div>
              <div dir="auto" class="">John</div>
              <div class=""><br class="">
                <div class="gmail_quote">
                  <div dir="ltr" class="gmail_attr">On Fri, Jul 2, 2021
                    at 6:02 AM Holger Seelig <<a
                      href="mailto:holger.seelig@yahoo.de" class=""
                      moz-do-not-send="true">holger.seelig@yahoo.de</a>>
                    wrote:<br class="">
                  </div>
                  <blockquote class="gmail_quote">
                    <div class="">
                      <div class=""><br class="">
                      </div>
                      <div class=""><br class="">
                      </div>
                      <div class="">Attached flower.zip with shaders
                        updated to WebGL2 also have a look at <a
href="https://webgl2fundamentals.org/webgl/lessons/webgl1-to-webgl2.html"
                          target="_blank" class=""
                          moz-do-not-send="true">https://webgl2fundamentals.org/webgl/lessons/webgl1-to-webgl2.html</a> how
                        to WebGL to WebGL2.</div>
                      <div class="">Also updated flowerproto.json.
                        ComposedCubeMap fields are actually back, front,
                        … not backTexture, frontTexture, …</div>
                      <div class=""><br class="">
                      </div>
                      <div class="">Best regards,</div>
                      <div class="">Holger</div>
                      <div class=""><br class="">
                      </div>
                      <div class=""><br class="">
                        <div class=""><br class="">
                        </div>
                      </div>
                    </div>
                    <div class="">
                      <div class="">
                        <div class="">
                          <blockquote type="cite" class="">
                            <div class="">Am 02.07.2021 um 11:23 schrieb
                              John Carlson <<a
                                href="mailto:yottzumm@gmail.com"
                                target="_blank" class=""
                                moz-do-not-send="true">yottzumm@gmail.com</a>>:</div>
                            <br class="">
                          </blockquote>
                        </div>
                      </div>
                    </div>
                    <div class="">
                      <div class="">
                        <div class="">
                          <blockquote type="cite" class="">
                            <div class="">
                              <div dir="auto" class="">I just looked at
                                the the flowers.xhtml page, and neither
                                the fragment nor the vertex shader are
                                working in X_ITE (should be similar to
                                X3DOM.)</div>
                              <div class=""><br class="">
                                <div class="gmail_quote">
                                  <div dir="ltr" class="gmail_attr">On
                                    Fri, Jul 2, 2021 at 12:17 AM John
                                    Carlson <<a
                                      href="mailto:yottzumm@gmail.com"
                                      target="_blank" class=""
                                      moz-do-not-send="true">yottzumm@gmail.com</a>>
                                    wrote:<br class="">
                                  </div>
                                  <blockquote class="gmail_quote">
                                    <div class="">
                                      <p class="">1.  Pages like: <a
                                          href="https://coderextreme.net/X3DJSONLD/src/main/html/flowers.xhtml"
                                          target="_blank" class=""
                                          moz-do-not-send="true">https://coderextreme.net/X3DJSONLD/src/main/html/flowers.xhtml</a>
                                        are half-broken with X_ITE
                                        objects showing up in white<br
                                          class="">
                                      </p>
                                      <p class="">2.  Apparently, X_ITE
                                        has upgraded it shading language
                                        to WebGL2/OpenGL ES 3.0</p>
                                      <p class="">3.  I don't want to go
                                        backwards and try to support an
                                        older version of X_ITE</p>
                                      <p class="">4.  X3DOM has some
                                        problems with X3D4
                                        containerField non-synonyms (not
                                        in shown in above example).</p>
                                      <p class="">This works in X3DOM
                                        (note 6 misspelled
                                        containerFields--they use
                                        synonyms in X3D4):<br class="">
                                      </p>
                                      <span class=""></span>
                                      <pre id="m_-8040978024055918942m_-7486909418376432302line1" class=""><span class=""><span id="m_-8040978024055918942m_-7486909418376432302line48" class=""></span>                              </span><span class=""><<span class="">ComposedCubeMapTexture</span> <span class="">DEF</span>="<a class="" moz-do-not-send="true">texture</a>"></span><span class="">
<span id="m_-8040978024055918942m_-7486909418376432302line49" class=""></span>                                  </span><span class=""><<span class="">ImageTexture</span> <span class="">url</span>='<a class="" moz-do-not-send="true">"../resources/images/all_probes/stpeters_cross/stpeters_back.png" "https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_back.png"</a>' <span class="">containerField</span>="<a class="" moz-do-not-send="true">back</a>"<span class="">/</span>></span><span class="">
<span id="m_-8040978024055918942m_-7486909418376432302line50" class=""></span>                                  </span><span class=""><<span class="">ImageTexture</span> <span class="">url</span>='<a class="" moz-do-not-send="true">"../resources/images/all_probes/stpeters_cross/stpeters_bottom.png" "https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_bottom.png"</a>' <span class="">containerField</span>="<a class="" moz-do-not-send="true">bottom</a>"<span class="">/</span>></span><span class="">
<span id="m_-8040978024055918942m_-7486909418376432302line51" class=""></span>                                  </span><span class=""><<span class="">ImageTexture</span> <span class="">url</span>='<a class="" moz-do-not-send="true">"../resources/images/all_probes/stpeters_cross/stpeters_front.png" "https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_front.png"</a>' <span class="">containerField</span>="<a class="" moz-do-not-send="true">front</a>"<span class="">/</span>></span><span class="">
<span id="m_-8040978024055918942m_-7486909418376432302line52" class=""></span>                                  </span><span class=""><<span class="">ImageTexture</span> <span class="">url</span>='<a class="" moz-do-not-send="true">"../resources/images/all_probes/stpeters_cross/stpeters_left.png" "https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_left.png"</a>' <span class="">containerField</span>="<a class="" moz-do-not-send="true">left</a>"<span class="">/</span>></span><span class="">
<span id="m_-8040978024055918942m_-7486909418376432302line53" class=""></span>                                  </span><span class=""><<span class="">ImageTexture</span> <span class="">url</span>='<a class="" moz-do-not-send="true">"../resources/images/all_probes/stpeters_cross/stpeters_right.png" "https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_right.png"</a>' <span class="">containerField</span>="<a class="" moz-do-not-send="true">right</a>"<span class="">/</span>></span><span class="">
<span id="m_-8040978024055918942m_-7486909418376432302line54" class=""></span>                                  </span><span class=""><<span class="">ImageTexture</span> <span class="">url</span>='<a class="" moz-do-not-send="true">"../resources/images/all_probes/stpeters_cross/stpeters_top.png" "https://coderextreme.net/X3DJSONLD/images/all_probes/stpeters_cross/stpeters_top.png"</a>' <span class="">containerField</span>="<a class="" moz-do-not-send="true">top</a>"<span class="">/</span>></span><span class="">
<span id="m_-8040978024055918942m_-7486909418376432302line55" class=""></span>                          </span><span class=""></<span class="">ComposedCubeMapTexture</span>>

However, containerFields with Texture trailing the side do not.

<u class=""><b class="">We need more work on backTexture, frontTexture, ... containerFields in X3DOM for X3D4. I use this quite a bit in my code.</b></u><u class=""><b class="">
</b></u>
5.  <u class=""><b class="">How do I implement chromatic aberration in X3D?</b></u>  (See PlayCanvas in flowers.xhtml above).  Preferably, not dropping into a shading language, so I can use an enduring standard.


</span>
<span class=""></span><span class=""></span></pre>
                                    </div>
                                  </blockquote>
                                </div>
                              </div>
                            </div>
                          </blockquote>
                        </div>
                      </div>
                    </div>
                    <div class="">
                      <div class="">
                        <div class="">
                          <blockquote type="cite" class="">
                            <div class="">
_______________________________________________<br class="">
                              x3d-public mailing list<br class="">
                              <a href="mailto:x3d-public@web3d.org"
                                target="_blank" class=""
                                moz-do-not-send="true">x3d-public@web3d.org</a><br
                                class="">
                              <a
                                href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org"
                                target="_blank" class=""
                                moz-do-not-send="true">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br
                                class="">
                            </div>
                          </blockquote>
                        </div>
                        <br class="">
                      </div>
                    </div>
                  </blockquote>
                </div>
              </div>
            </div>
          </blockquote>
        </div>
        <br class="">
      </blockquote>
    </blockquote>
  </body>
</html>