[x3d-public] X3D glTF feature comparison [was: X3D Working Group Minutes, 2 SEP ...]

Leonard Daly Leonard.Daly at realism.com
Thu Sep 8 16:20:41 PDT 2022


These messages were all on the public list and referenced glTF.

I passed on to 3D Formats WG of Khronos (manages glTF Specification) for 
comments and provided a summary and links to the relevant messages from 
the mailing list and documents. There were links to 3 messages (the 
initial message, the updated PDF, and Michalis' comments.] and the 
Google Sheet document. I gave a chance for people to comment, especially 
on features of glTF.

The comments from one individual follow.

Some feedback from my side:(unfortunately I only checked the comments in 
[3] after writing this - there's definitely some overlap)

  * It looks like while the X3D side counts their annexes in, glTF
    extension mechanism is ignored for the glTF side (otherwise a good
    amount of the "NO"s would either be "YES" or "possible through
    extensions"). I think an equal comparison would either exclude X3D
    annexes or include glTF extensions.

  * While it's mentioned that X3D is an ISO standard it's omitted that
    glTF is also an ISO standard.

  * I'm not sure what /Metadata structures: partial, in separate files/
    means for glTF - there's at least one extension for that.

  * /glTF: Transmission format designed for applications rendering using
    WebGL or OpenGLES./ is incorrect in my opinion, I think glTF is
    explicitly not tied to a specific rendering backend, quite the contrary.

  * /glTF: Always changing to support the fast changing GPU, a delivery
    system for highly optimized mesh data for rendering. /kind of
    omits that glTF is also an ISO standard and not "always changing".
    The extension mechanism allows for flexibility but the core is
    (rightfully) rigid.

  * One thing that bothers me in a lot of Khronos communication around
    glTF is the focus on "efficient transmission from server to client"
    and similar. Alternate wordings are "The JPEG of 3D" and so on. Lots
    of companies have started to adopt glTF as an interchange format as
    well (including us), not just for last-mile delivery. I don't think
    it strengthens glTF as a whole to "fight against that" in
    communication and continually emphasizing that the format is somehow
    only suitable for last-mile delivery.
    (compare also lots of the USDZ vs. glTF discussions at this year's
    Siggraph)
    I understand this is a bigger discussion but wanted to mention it
    here nonetheless. Almost all of the "Technology Comparison
    Summaries" entries revolve around that, hinting at glTF not being a
    good format for anything else.

  * Related to the above and some more of the "NO"s: we're happily using
    glTF extensions for composition of files, inline use of glbs inside
    glbs, and so on, there's nothing blocking extensions from doing
    that. (I understand glXF tries to specify that as separate format
    but still don't fully understand why)


Leonard Daly


> Michalis thank you for your note. Please be assured we that we have 
> zero desire to overstate or incorrectly characterize anything. Our 
> previously sent draft did not receive any responses. You saw our best 
> effort update to it. Happy to continue improving. Can we meet during 
> this Friday’s meeting?
>
> Thanks, Don
>
> Search for my handheld device
>
>
> ------------------------------------------------------------------------
> *From:* Michalis Kamburelis <michalis.kambi at gmail.com>
> *Sent:* Tuesday, September 6, 2022 6:47:04 AM
> *To:* Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
> *Cc:* X3D Public Mailing List (x3d-public at web3d.org) 
> <x3d-public at web3d.org>
> *Subject:* Re: [x3d-public] X3D Working Group Minutes, 2 SEP 2022: X3D 
> glTF feature comparison
> NPS WARNING: *external sender* verify before acting.
>
>
> Hello,
>
> I read the 
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.google.com%2Fspreadsheets%2Fd%2F1x0DnRtg33AuOA_aSl70L41Gq5m6TFt4t%2Fedit%23gid%3D1010586376&data=05%7C01%7Cbrutzman%40nps.edu%7Cb04d8dc972cb4f8430be08da900e5efe%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637980688655942200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=IqmTBR8XcyQT4f3uVk0Gp8rJJb7PvLoB7PcnVg5kiqw%3D&reserved=0 
> <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.google.com%2Fspreadsheets%2Fd%2F1x0DnRtg33AuOA_aSl70L41Gq5m6TFt4t%2Fedit%23gid%3D1010586376&data=05%7C01%7Cbrutzman%40nps.edu%7Cb04d8dc972cb4f8430be08da900e5efe%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637980688655942200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=IqmTBR8XcyQT4f3uVk0Gp8rJJb7PvLoB7PcnVg5kiqw%3D&reserved=0>
> and have a number of comments. (sorry -- this is another of Michalis'
> long emails :) ).
>
> My main objections are to the initial sections "Value Proposition" and
> "Technology Comparison Summaries".  To be frank, a lot of the content
> there seems to be written with the mindset "X3D is better than glTF,
> so let's list all the ways how it is better". Some statements are
> unclear (and the lack of clarity seems to suggest that X3D is better),
> some are just untrue IMHO. To be clear, in my opinion, indeed X3D
> *has* some strengths over glTF, and same goes for the other way
> around, glTF did some stuff better than X3D.
>
> A fair comparison of X3D vs glTF would be helpful (I have written it
> myself too, but never published :) ). But the table above is not very
> fair, it tries to push the agenda "X3D is better" a bit too much. Let
> me point out what I think should be improved:
>
> 1. "Value Proposition" - in general, the goals listed for X3D are
> broad (wide variety of applications...), while the goals and use-cases
> listed for glTF are narrow (efficient transmission, appropriate if you
> want to view in web browser).
>
> This does not reflect reality in my experience. Neither does it
> reflect glTF mission statements at the beginning of
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fregistry.khronos.org%2FglTF%2Fspecs%2F2.0%2FglTF-2.0.html&data=05%7C01%7Cbrutzman%40nps.edu%7Cb04d8dc972cb4f8430be08da900e5efe%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637980688655942200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=BRIUyLBNBkdzH7%2BEE9UDB73gL4NmcVEiErOn%2FU01WLg%3D&reserved=0 
> <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fregistry.khronos.org%2FglTF%2Fspecs%2F2.0%2FglTF-2.0.html&data=05%7C01%7Cbrutzman%40nps.edu%7Cb04d8dc972cb4f8430be08da900e5efe%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637980688655942200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=BRIUyLBNBkdzH7%2BEE9UDB73gL4NmcVEiErOn%2FU01WLg%3D&reserved=0> 
> , "glTF is
> an API-neutral runtime asset delivery format. glTF bridges the gap
> between 3D content creation tools and modern graphics applications by
> providing an efficient, extensible, interoperable format for the
> transmission and loading of 3D content.".
>
> The practical fact, IMHO, is that glTF is here exactly like X3D. It's
> just a format for 3D models, it can be used with a variety of
> applications, on any platforms (certainly not only to view the models
> in web browser; e.g. game engines, including Castle Game Engine, allow
> to use glTF as 3D model format on desktops).
>
> So I would suggest to place there the glTF statement I cited above
> ("glTF is an API-neutral runtime asset delivery format. glTF
> bridges..."), and in general make this section simply honestly state:
> the goals and usecases of X3D and glTF largely overlap. They are both
> open standards for 3D models and can be used in a variety of
> applications, use-cases, platforms.
>
> 2. "Technology Comparison Summaries" - in general, statements there
> again suffer from "a bit unclear, in favor of X3D and disfavor of
> glTF".
>
> - X3D advantage: "X3D: Full Inline support for glTF features,
> especially compressed geometry plus advanced lighting model planned
> for X3D version 4." - in X3D we have it, but it is not complete as
> this statement suggests. In particular we don't yet have in X3D spec
> any way to specify binary per-vertex data or "compressed geometry".
> This is a work in progress, with some browser-specific extensions, not
> more yet ( 
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmichaliskambi%2Fx3d-tests%2Fwiki%2FBinary-meshes&data=05%7C01%7Cbrutzman%40nps.edu%7Cb04d8dc972cb4f8430be08da900e5efe%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637980688655942200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=0fQBGBo5fLqiC%2Fr73X%2B9ucLw7ihfq4oDT1L9pTowmHw%3D&reserved=0 
> <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmichaliskambi%2Fx3d-tests%2Fwiki%2FBinary-meshes&data=05%7C01%7Cbrutzman%40nps.edu%7Cb04d8dc972cb4f8430be08da900e5efe%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637980688655942200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=0fQBGBo5fLqiC%2Fr73X%2B9ucLw7ihfq4oDT1L9pTowmHw%3D&reserved=0>
> ). We have not yet figured out how 100% of glTF features express as
> X3D (as I say explicitly on
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmichaliskambi%2Fx3d-tests%2Fwiki%2FConverting-glTF-to-X3D&data=05%7C01%7Cbrutzman%40nps.edu%7Cb04d8dc972cb4f8430be08da900e5efe%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637980688655942200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Reum%2Bn0%2F8i5AnwiANMh%2BAJwct5u6OIyX7ErmGrif414%3D&reserved=0 
> <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmichaliskambi%2Fx3d-tests%2Fwiki%2FConverting-glTF-to-X3D&data=05%7C01%7Cbrutzman%40nps.edu%7Cb04d8dc972cb4f8430be08da900e5efe%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637980688655942200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=Reum%2Bn0%2F8i5AnwiANMh%2BAJwct5u6OIyX7ErmGrif414%3D&reserved=0>
> ).
>
>     I would suggest to change it to "X3D: Inline support for many glTF
> features, especially advanced physically-based materials."
>
> - "glTF: Transmission format designed for applications rendering using
> WebGL or OpenGLES." This tries to suggest that glTF usefullness is
> narrow. It is in conflict with actual glTF statement I cited above,
> "glTF is an API-neutral runtime asset delivery format.". glTF makes
> sense regardless if you use WebGL or OpenGLES. Yes, it used some
> constants / naming from WebGL / OpenGLES, but it's fully implementable
> and understandable in the context of any graphics API - including e.g.
> Vulkan and Direct3D.
>
>     I would suggest to change it to "glTF is an API-neutral runtime
> asset delivery format."
>
> - "glTF: Always changing to support the fast changing GPU, a delivery
> system for highly optimized mesh data for rendering." - not true, or
> at least unclear statement. glTF is not "always changing". They care
> about backward compatibility a *lot* and glTF 2.0 has been stable for
> many years, without any breaking changes.
>
>     I would suggest to just remove this statement.
>
> - "glTF: Backward compatibility, archivability, are not listed as
> specification goals." - not true. In practice, of course they care
> about backward compatibility. And it is mentioned in spec explicitly:
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fregistry.khronos.org%2FglTF%2Fspecs%2F2.0%2FglTF-2.0.html%23versioning&data=05%7C01%7Cbrutzman%40nps.edu%7Cb04d8dc972cb4f8430be08da900e5efe%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637980688655942200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=%2BxtVPG9WjSSqdnQFEZ%2FjLo%2F03m7IawhJ%2FDDrodLxMkc%3D&reserved=0 
> <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fregistry.khronos.org%2FglTF%2Fspecs%2F2.0%2FglTF-2.0.html%23versioning&data=05%7C01%7Cbrutzman%40nps.edu%7Cb04d8dc972cb4f8430be08da900e5efe%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637980688655942200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=%2BxtVPG9WjSSqdnQFEZ%2FjLo%2F03m7IawhJ%2FDDrodLxMkc%3D&reserved=0> 
> ,
> "Any updates made to the glTF Specification in a minor version MUST be
> backward and forward compatible....."
>
>     I would suggest to change this statement: "glTF: Backward
> compatibility is addressed by the spec, any updates made to the glTF
> Specification in a minor version MUST be backward and forward
> compatible."
>
> 3. "Picking (touch/over TouchSensor, PickableGroup)" - glTF should
> have "No". (So this part is wrong in favor of glTF). There's work to
> introduce such features on top of glTF, but glTF spec does not have
> it.
>
> 4. "Clipping planes" - glTF should have "No".
>
> 5. "Metadata Structures" - glTF does have it, in much the same way as X3D.
>
> - Essentially anything can have additional informatiom, with key-value
> or deeper structure:
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fregistry.khronos.org%2FglTF%2Fspecs%2F2.0%2FglTF-2.0.html%23reference-extras&data=05%7C01%7Cbrutzman%40nps.edu%7Cb04d8dc972cb4f8430be08da900e5efe%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637980688655942200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=4RrMuXIvbjbaDpH80Dm2bKkgzlg7%2BoXunm9iSe3gNgY%3D&reserved=0 
> <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fregistry.khronos.org%2FglTF%2Fspecs%2F2.0%2FglTF-2.0.html%23reference-extras&data=05%7C01%7Cbrutzman%40nps.edu%7Cb04d8dc972cb4f8430be08da900e5efe%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637980688655942200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=4RrMuXIvbjbaDpH80Dm2bKkgzlg7%2BoXunm9iSe3gNgY%3D&reserved=0>
> . This is quite similar in practice to how X3D MetadataXxx nodes are
> used.
>
> - There's also "asset" for per-file properties:
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fregistry.khronos.org%2FglTF%2Fspecs%2F2.0%2FglTF-2.0.html%23asset&data=05%7C01%7Cbrutzman%40nps.edu%7Cb04d8dc972cb4f8430be08da900e5efe%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637980688655942200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=dmY4m20QxOcWIh4gMU3TVlpWX0AjRRfwTqqK6SiW3D8%3D&reserved=0 
> <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fregistry.khronos.org%2FglTF%2Fspecs%2F2.0%2FglTF-2.0.html%23asset&data=05%7C01%7Cbrutzman%40nps.edu%7Cb04d8dc972cb4f8430be08da900e5efe%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637980688655942200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=dmY4m20QxOcWIh4gMU3TVlpWX0AjRRfwTqqK6SiW3D8%3D&reserved=0> 
> . This
> is quite similar to common usage of X3D "META" statements.
>
> - And the "extras" are mentioned above are really used in practice.
> Blender exports Blender's "Custom properties" to glTF "extras". (Which
> is actually better than Blender->X3D exporter, that doesn't write X3D
> MetadataXxx, although it could.)
>
> 6. "Inline" - this is correct, glTF doesn't have it. But you can
> mention 
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FKhronosGroup%2FglXF&data=05%7C01%7Cbrutzman%40nps.edu%7Cb04d8dc972cb4f8430be08da900e5efe%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637980688655942200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=M1zkHjoZUoGzC0HGZNkba2HAcOXmAMfszDR8Rdr9Fv8%3D&reserved=0 
> <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FKhronosGroup%2FglXF&data=05%7C01%7Cbrutzman%40nps.edu%7Cb04d8dc972cb4f8430be08da900e5efe%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637980688655942200%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=M1zkHjoZUoGzC0HGZNkba2HAcOXmAMfszDR8Rdr9Fv8%3D&reserved=0> 
> -- it's not yet
> officially endorsed, but it's an idea to address exactly this, i.e.
> compose world from multiple glTF files.
>
> 7. Let me add some things I consider missing to have a good picture:
>
> "Efficient representation of mesh in binary format"
> X3D: not (yet!)
> glTF: yes
>
> "Cubemap textures, including generated cubemaps"
> X3D: yes
> glTF: no
>
> "Lights"
> X3D: yes
> glTF: not in core spec (but in extensions)
>
> "Environmental effects, like fog and background"
> X3D: yes
> glTF: no
>
> "Full-featured and actively maintained Blender exporter, with support
> for PBR materials, animations, skinned animations"
> X3D: not (yet!)
> glTF: yes
>
> Regards,
> Michalis
>
> sob., 3 wrz 2022 o 01:10 Brutzman, Donald (Don) (CIV)
> <brutzman at nps.edu> napisał(a):
> >
> > Spreadsheet PDF with corrected date (for today) attached.
> >
> >
> >
> > 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
> >
> >
> >
> > _______________________________________________
> > 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


-- 
*Leonard Daly*
3D Systems & Cloud Consultant
President, Daly Realism - /Creating the Future/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20220908/476f1eee/attachment-0001.html>


More information about the x3d-public mailing list