<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Segoe UI Emoji";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.gmail-m3887828701916938765m8568867805482185535msolistparagraph, li.gmail-m3887828701916938765m8568867805482185535msolistparagraph, div.gmail-m3887828701916938765m8568867805482185535msolistparagraph
        {mso-style-name:gmail-m_3887828701916938765m_8568867805482185535msolistparagraph;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1096635059;
        mso-list-template-ids:-1;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1
        {mso-list-id:1966152409;
        mso-list-template-ids:-1;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Shadow DOM perhaps?   Regular techniques for looking for elements don’t penetrate Inlines, as far as I can tell.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Wednesday, January 30, 2019 12:29 PM<br><b>To: </b><a href="mailto:andreasplesch@gmail.com">Andreas Plesch</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a>; <a href="mailto:holger.seelig@yahoo.de">Holger Seelig</a><br><b>Subject: </b>glTF DOM! JSON rocks when it's DOM!</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Curious, did you convert the non-binary glTF JSON to DOM to get the power of the DOM events, etc?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Congratulations!<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I may be able to help more in the future.  I realized that getting off medications for a couple of days helped my work ethic.  However, I have to convince my doctor to modify my medication dosage. Hmm.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>What happens to X3D JSON when we’ve got integrated glTF JSON?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>It would be extremely hilarious/surprising if X3DJSONLD.js/JSONParser.js were only used to convert glTF JSON to DOM and not X3D JSON to DOM. Ha Ha Ha.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Leonard, does XSeen use my JSON to DOM to convert glTF as well?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Anyone want to use my DOM to JSON converter? It’s got shiny hubcaps, and works in the browser. One might imagine using it for Proto Expansion.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Does anyone want to propose an XML encoding for glTF? Or is that COLLADA? Or a VRML encoding for glTF?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-family:"Segoe UI Emoji",sans-serif'>😊😊😊</span><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From: </b><a href="mailto:andreasplesch@gmail.com">Andreas Plesch</a><br><b>Sent: </b>Wednesday, January 30, 2019 11:09 AM<br><b>To: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] beyond Blinn-Phong: PBR<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><div><div><div><p class=MsoNormal>Since we are getting closer to x3dom merging in gltf2 inline support in its dev. version, here a first example of multiple gltf inlines, using an older x3dom scene:<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><a href="https://rawcdn.githack.com/andreasplesch/x3dom/b34506419c8877884501143b122cbcbd287abb43/test/regression-suite/test/cases/routes/routes.html">https://rawcdn.githack.com/andreasplesch/x3dom/b34506419c8877884501143b122cbcbd287abb43/test/regression-suite/test/cases/routes/routes.html</a><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Using multiple levels of instancing, the scene has ca. 180 shapes consisting of ca. 500K triangles. It plays well on my desktop but I did not try on mobile.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>It also shows a regular x3d material (the x3d box) next to gltf PBR materials (the duck, fish, boombox and avocado).<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>-Andreas<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Sat, Jan 26, 2019 at 3:39 PM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com">andreasplesch@gmail.com</a>> wrote:<o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><div><p class=MsoNormal style='margin-left:9.6pt'>On Sat, Jan 26, 2019, 8:14 AM Joseph D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a> wrote:<o:p></o:p></p></div><div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><div><ul type=disc><li class=gmail-m3887828701916938765m8568867805482185535msolistparagraph style='mso-list:l0 level1 lfo1'>All glTF syntax have a large binary component (the 'buffer') which contains the bulk of the data (geometry, animation, textures).<o:p></o:p></li></ul><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>Thanks Andreas, all real nice coverage. <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p><ul type=disc><li class=gmail-m3887828701916938765m8568867805482185535msolistparagraph style='mso-list:l1 level1 lfo2'>Should there be a way for a X3D scene to control animations in an inline glTF ? <o:p></o:p></li></ul><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>Is there an inline gltf that contains enough data to generate and control animations? <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>How about if the inline can perform like a video, start/stop/showmetadata?<o:p></o:p></p></div></div></blockquote></div><div><p class=MsoNormal style='margin-left:9.6pt'>I think the video clip analogy could be a useful concept. In fact, gltf viewers often have the typical media controls to play animations. There may be additional interface to select which clip is played (run, jump .., pumping, circling), and at which speed (overriding the authored speed).<o:p></o:p></p></div><div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>An inline gltf may be a container consisting of several gltf files made up from a list somewhere?<o:p></o:p></p></div></div></blockquote></div><div><p class=MsoNormal style='margin-left:9.6pt'>A gltf currently cannot reference or include other gltfs. I think I saw that suggested for the future, but the general feel is that it is focused on single assets rather than complex scenes.<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:9.6pt'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:9.6pt'>hm, what would be the difference of having multiple inlines with single gltfs ?<o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:9.6pt'><o:p> </o:p></p></div><div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>Then this gltf mass also skips validation and has its own runtime?<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>And can talk to the parent scene using data and commands with standard and custom interfaces? <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>Do some gltf need its own sandbox? <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>I think I still look at gltf resources simply as inert data containers you are using for some sort of convenience or protection in your application of realtime interactive immersive 3D for the WorldWildWeb. .<o:p></o:p></p></div></div></blockquote></div><div><p class=MsoNormal style='margin-left:9.6pt'>Yes, a 3d image or video. There should not be an expectation to modify the gltf content, just control included animations.<o:p></o:p></p></div><div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>Some gltf structures are appropriate for identification as being usable as x3d native binary assets because the data can be identified as a trusted external asset by x3d authortime and possibly used directly without further processing by runtime. When those overlap you can at least get tooltips and hopefully actual feedback.  <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>At the first level the gltf must be a convenient highly optimized container for one or more strongly typed x3d field values to be plugged directly into one or more basic x3d containers. In this, the gltf is available at authortime, just that it is a ‘external’ binary thing that does not need to be human-readable. Well, sure, some metadata. <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>But hey, the big problem is not that the data structures of the authortime and runtime has diverged, just that they may be basically different due to different considerations. Maybe see Humanoid where the x3d authortime uses each joint as a container for the skin animation vertex bindings, while a gltf may seem to prefer using each skin vertex as the container for the bound joints at one step which gives no indication concerning from where the instant data was derived. The first is in this case a clear authortime consideration, the second may be a preferred best practice data structure implemented by a ‘standard’ or consensus runtime. The first is based on how a human can organize a complex interactive object from the top down while the second may expose one deep aspect of one discrete step in a complex process the vizualization machine takes to produce one tiny part of one flash of one frame. <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>However, when data is the same, why not transport some of it between the gltf environment which is optimized for runtime and x3d which is optimized for authortime? Fine, when the data fits. Let’s do it.  <o:p></o:p></p></div></div></blockquote></div><div><p class=MsoNormal style='margin-left:9.6pt'>Much of gltf can be translated into x3d plus pbr material with an offline translator (to be). Direct gltf support for Inline raises questions which can be separated out.  <o:p></o:p></p></div><div><p class=MsoNormal style='margin-left:9.6pt'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:9.6pt'>Now that x3dom has pretty good gltf inline support I am interested to see how it integrates with interactive and scene x3d features. First would be just having multiple gltfs in a scene.<o:p></o:p></p></div></div></blockquote><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><div><p class=MsoNormal style='margin-left:9.6pt'><o:p> </o:p></p></div><div><p class=MsoNormal style='margin-left:9.6pt'>Andreas<o:p></o:p></p></div><div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>Best Regards,<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>Joe<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'><b> </b><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'><b>Subject: </b>Re: [x3d-public] beyond Blinn-Phong: PBR<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p><div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>A response below<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p></div><div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:38.4pt'>Message: 2<br>Date: Mon, 21 Jan 2019 02:27:53 -0800<br>From: Joseph D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>><br>To: Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank">andreasplesch@gmail.com</a>>,  Michalis Kamburelis<br>        <<a href="mailto:michalis.kambi@gmail.com" target="_blank">michalis.kambi@gmail.com</a>><br>Cc: X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br>Subject: Re: [x3d-public] beyond Blinn-Phong: PBR<br>Message-ID: <<a href="mailto:E1glWo5-0007qm-6l@elasmtp-dupuy.atl.sa.earthlink.net" target="_blank">E1glWo5-0007qm-6l@elasmtp-dupuy.atl.sa.earthlink.net</a>><br>Content-Type: text/plain; charset="utf-8"<br><br><br>? ? glTF supports animation of transformation components but does not define exactly when an animation is played,<br><br>So, if I remember, as if I just awoke from a long sleep, then the gltf is to provide a secure and reliable way to transport carefully defined data structures into and out of either an unknown authortime or a known runtime. Maybe I am focusing of the binary forms for various gltf syntax.<o:p></o:p></p></blockquote><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>Yes, glTF is supposed to be transport format to be used inbetween authortime and runtime. Its design goal is to avoid friction for the runtime to render on the screen using a limited subset of OpenGL (webGL) at the expense of authortime legibility. All glTF syntax have a large binary component (the 'buffer') which contains the bulk of the data (geometry, animation, textures).<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>glTF can be validated. But it does not have built-in security to guard against tampering and such. Systems need to provide their own security layer around glTF where required. <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:38.4pt'>gltf took collada and the rest into the deepest parts of best practice highly optimized data structures of mesh and field simulations in a form the best practice realtime 3D graphics processing tools wanted to get it -- Validated trusted secure binary the runtime can swallow without chewing. <br><br>The runtime can import this binary directly because the runtime is a ?standard? runtime using  ?standard? known best-practice runtime data structures. These data structures are defined by the preferred forms for binary data used directly by geometry and animation processors. The gltf incidentally has an authortime text form to provide systematic human-readable editing and validation, but the human-readable form is just to allow data specialists to define carefully denominated strongly typed definitions for the binary form actually used by features of the runtime.<o:p></o:p></p></blockquote><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>The geometry, animation and shading processor targeted are GPU shading programs. Although initially targeted at GLSL, wide support has shown that there is enough abstraction to allow other platforms as well although I do not know how much effort this required.<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:38.4pt'>The x3d deals mainly with the authortime form and does not define any runtime data structures except for runtime external and internal scenegraph event flows. An x3d tool would be expected to produce its internal runtime structures from the ?standard? x3d user code according to its needs. The great purpose of gltf is to provide a known binary form that accurately reflects known expectations of the runtime.<br><br>A comprehensive x3d authortime tool might have an accessory to directly import and use certain text forms of gltf if the data types and structures are the same. Likewise, an x3d runtime might be able to directly import and use certain binary forms. Or, any combination thereof.<o:p></o:p></p></blockquote><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>There are the parallel options of translating glTF to x3d which is currently possible for geometry and transform animations, and treating glTF as inline, inert, jpg-like content. A translator could always be used at authortime and provides most flexibility. glTF inline has the advantage that it can be easier to implement and preserves 'swallowing without chewing'. New x3d nodes such as PhysicalMaterial or BufferView/Accessor for binary data can be imagined as internal helpers or as spec. worthy x3d additions.<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:38.4pt'>Since the gltf is defined and supported by the same folks who developed the concepts behind realistic accelerated realtime 3D Graphics, from which x3d is derived, then we might expect that gltf would be of great use to x3d.<o:p></o:p></p></blockquote><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>glTF has wide industry support. Incidentally, PBR was not part of glTF 1.0, which required content to provide its own shaders.<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:38.4pt'>? ? but does not define exactly when an animation is played,<br><br>So far, the gltf does not define an interactive runtime that I have seen (please send a link if there is), although I think I have seen authoring that defines sets of gltf data and seen runtimes that use sets of gltf files to produce an animated scene.<o:p></o:p></p></blockquote><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>You are right. Animation is seen as clips made available to the runtime in the context of a larger scene. glTF just provides the storage. The runtime needs to provide interactivity and logic.<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>Should there be a way for a X3D scene to control animations in an inline glTF ? If so how ? Using standardized DEF  names for (virtual) TimeSensor, Interpolator nodes from the glTF ?<o:p></o:p></p></div></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'> <o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:38.4pt'>Thanks and Best, <br>Joe<br><br><br><br><br><br>From: Andreas Plesch<br>Sent: Sunday, January 20, 2019 6:31 PM<br>To: Michalis Kamburelis<br>Cc: X3D Graphics public mailing list<br>Subject: Re: [x3d-public] beyond Blinn-Phong: PBR<br><br>Timo Sturm provided these nodes. The main work is to get to the gltf data to a special shader which in itself is not complex. I think the goal is to proceed to an overdue x3dom release after consolidating into development release with what we have. There would be some time to make adjustments to node signatures perhaps focusing on PhysicalMaterial.<br><br>The flipped Y axis for texture coordinate is handled in the fragment shader:<br><br><a href="https://github.com/x3dom/x3dom/blob/webVR/src/shader/ShaderPBRMaterial.js#L124" target="_blank">https://github.com/x3dom/x3dom/blob/webVR/src/shader/ShaderPBRMaterial.js#L124</a><br><br>The 1 - coord.y should not have a noticeable performance impact. There is currently no way to access the gltf texture coordinates from the x3d scene.<br><br>glTF supports animation of transformation components but does not define exactly when an animation is played, just how long a cycle is. x3dom just plays and loops them but could opt to play once or not play and just provide the equivalent Timesensor, Interpolator and ROUTE nodes for the scene to use as it wants. On the other hand there is no way to EXPORT from a gltf inline.<br><br>-Andreas<br><br>On Sun, Jan 20, 2019 at 3:21 PM Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com" target="_blank">michalis.kambi@gmail.com</a>> wrote:<br>Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank">andreasplesch@gmail.com</a>> wrote:<br>><br>> For glTF inline support, PBR shading will be required. The glTF spec. has an example implementation for PBR but for anybody who wants to dive in more, there is the free<br>><br>> <a href="http://www.pbr-book.org" target="_blank">http://www.pbr-book.org</a><br>><br>> It seems somewhat artificially inflated and is based on ray tracing but explains the foundational PBR concepts in depth, and in code.<br>><br>> I just wanted to share that resource but will point out that x3dom will have a PhysicalMaterial node and an EnvironmentLight node which are used by the glTF loader.<br>><br><br>Cool! I also want to define PhysicalMaterial and EnvironmentLight in<br>Castle Game Engine, for interoperability with glTF. It will be good to<br>converge on a single specification for these nodes, and eventually add<br>it to the X3D 4 specification :) We have the same goals (achieve PBR<br>in X3D, and achieve it in a way that makes glTF 2.0 -> X3D conversion<br>straightforward), so I'm sure this will be possible.<br><br>I don't have an exact specification yet (my rough ideas are on<br><a href="https://github.com/michaliskambi/x3d-tests/wiki/How-to-add-PBR-to-X3D%3F" target="_blank">https://github.com/michaliskambi/x3d-tests/wiki/How-to-add-PBR-to-X3D%3F</a><br>, this page collects thoughts and info from our talks on x3d-public :)<br>).<br><br>Regards,<br>Michalis<br><br><br><br>-- <br>Andreas Plesch<br>Waltham, MA 02453<br><br>-------------- next part --------------<br>An HTML attachment was scrubbed...<br>URL: <<a href="http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20190121/2066856d/attachment.html" target="_blank">http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20190121/2066856d/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" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br><br><br>------------------------------<br><br>End of x3d-public Digest, Vol 118, Issue 60<br>*******************************************<o:p></o:p></p></blockquote></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'><br clear=all><br>-- <o:p></o:p></p></div></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:19.2pt'>Andreas Plesch<br>Waltham, MA 02453<o:p></o:p></p><p class=MsoNormal style='margin-left:19.2pt'><o:p> </o:p></p></div></div></blockquote></div></div></blockquote></div><p class=MsoNormal><br clear=all><o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><p class=MsoNormal>-- <o:p></o:p></p></div></div><p class=MsoNormal>Andreas Plesch<br>Waltham, MA 02453<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>