Jump to content

glTF

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Ecloud (talk | contribs) at 12:59, 1 December 2022 (Adoption of glTF 2.0: the primary import format for Qt Quick 3D). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

glTF
Filename extension
.gltf, .glb
Internet media typemodel/gltf+json, model/gltf-binary
Developed byKhronos Group
Initial release19 October 2015; 9 years ago (2015-10-19)[1]
Latest release
2.0.0
11 July 2021; 3 years ago (2021-07-11)[2]
Type of format3D computer graphics
Websitekhronos.org/gltf

glTF (derivative short form of Graphics Language Transmission Format or GL Transmission Format) is a standard file format for three-dimensional scenes and models. A glTF file uses one of two possible file extensions: .gltf (JSON/ASCII) or .glb (binary). Both .gltf and .glb files may reference external binary and texture resources. Alternatively, both formats may be self-contained by directly embedding binary data buffers (as base64-encoded strings in .gltf files or as raw byte arrays in .glb files).[3][4][5] An open standard developed and maintained by the Khronos Group, it supports 3D model geometry, appearance, scene graph hierarchy, and animation.[4] It is intended to be a streamlined, interoperable format for the delivery of 3D assets, while minimizing file size and runtime processing by apps.[4][6] As such, its creators have described it as the "JPEG of 3D."[4]

Releases

glTF 1.0

The file format was conceived in 2012 by members of the COLLADA working group.[7] At SIGGRAPH 2012, Khronos presented a demo of glTF, which was then called WebGL Transmissions Format (WebGL TF).[5] On October 19, 2015, the glTF 1.0 specification was released.[5]

Adoption of glTF 1.0

At SIGGRAPH 2016, Oculus announced their adoption of glTF citing the similarities to their ovrscene format.[6][8] In October 2016, Microsoft joined the 3D Formats working group at Khronos to collaborate on glTF.[9]

glTF 2.0

The second version, glTF 2.0, was released in June 2017, and is a complete overhaul of the file format from version 1.0, with most tools adopting the 2.0 version.[4][5] Based on a proposal by Fraunhofer[10] originally presented at SIGGRAPH 2016, Physically based rendering (PBR) was added, replacing WebGL shaders used in glTF 1.0.[11] Other upgrades include sparse accessors and morph targets for techniques such as facial animation, and schema tweaks and breaking changes for corner cases or performance such as replacing top-level glTF object properties with arrays for faster index-based access.[12] There is ongoing work towards import and export in Unity[13] and an integrated multi-engine viewer / validator.[14]

Adoption of glTF 2.0

On March 3, 2017, Microsoft announced that they will be using glTF 2.0 as the 3D asset format across their product line, including Paint 3D, 3D Viewer, Remix 3D, Babylon.js, and Microsoft Office. Sketchfab also announced support for glTF 2.0. As of 2019, the glTF and GLB formats are used on and supported by companies including DGG, UX3D, Sketchfab, Facebook, Microsoft, Oculus, Google, Adobe, Box, TurboSquid, Unreal Engine and Qt Quick 3D.[6][5][15][16] The format has been noted as an important standard for augmented reality, integrating with modeling software such as Autodesk Maya, Autodesk 3ds Max, and Poly.[17][18]

In February 2020, the Smithsonian Institution launched their Open Access Initiative, releasing approximately 2.8 million 2D images and 3D models into the public domain, delivering the 3D models in glTF.[19]

In July 2022, glTF 2.0 was released as the ISO/IEC 12113:2022 International Standard.[20] Khronos stated they will make regular submissions to bring updates and new widely adopted glTF functionality into refreshed versions of ISO/IEC 12113 to ensure that there is no long-term divergence between the ISO/IEC and Khronos specifications.[21]

Extensions

A glTF file uses either a .gltf or .glb extension. PBR extensions model the physical properties of real-world objects, allowing developers to create realistic 3D assets that correspond to the actual materials in the object. As new PBR extensions are released, they continue to expand PBR capabilities within the glTF framework, allowing a wider range of scenes and objects to be realistically rendered as 3D assets.[22][23]

The KTX 2.0 extension for universal texture compression enables 3D models in the glTF format to be highly compressed and to use natively supported texture formats, reducing file size and boosting rendering speed.[24]

Draco is a glTF extension for mesh compression, to compress and decompress 3D meshes, to help reduce the size of 3D files. It compresses vertex attributes, normals, colors, and texture coordinates.[25]

GLB

The GLB file format is a binary form of glTF that includes textures instead of referencing them as external images. GLB was introduced as an extension to glTF 1.0 and incorporated directly into glTF 2.0.[4]

Derivative formats

On August 10, 2015, 3D Tiles, now a proposed OGC Community Standard, built on glTF to add a spatial data structure, metadata, and declarative styling for streaming massive heterogeneous 3D geospatial datasets.[26][27][28] VRM, a model format for VR, is built on the .glb format.[29] It is a 3D humanoid avatar specification and file format.[30]

Software ecosystem

The glTF Sample Viewer is maintained by Khronos, as part of the glTF ecosystem, along with the Validator, which validates glTF assets.[31]

glTF loaders are in open-source WebGL engines including PlayCanvas, Three.js, Babylon.js, Cesium, PEX, xeogl, and A-Frame. The Godot game engine also supports and recommends the glTF format.[32][33]

Open-source glTF converters are available from COLLADA, FBX, and OBJ. Assimp can import and export glTF.

glTF files can also be directly exported from a variety of 3D editors, such as Blender, Vectary, Autodesk 3ds Max (natively or using Verge3D exporter[34]), Autodesk Maya (using babylon.js exporter[35]), Autodesk Inventor, Modo, Houdini,[36] Paint 3D, and Substance Painter.[37]

glTF files can be directly edited in Gestaltor.

Open-source glTF utility libraries are available for programming languages including JavaScript, Node.js, C++, C#, Java, Go, Rust, Haxe, Ada, and TypeScript.

An open-source glTF validator can validate if 3D models conform to the glTF specification.[38]

3D Commerce, a working group of universal guidelines, standards and certifications for 3D content creation and distribution in e-commerce, incorporates glTF for transmission of photorealistic 3D assets.[39] In June 2021, the 3D Commerce viewer certification program was launched, enabling 3D viewers to demonstrate they can accurately and reliably display 3D products using the glTF file format.[40] 3D Commerce's asset guidelines, released in 2020, include best practices for use of the glTF file format in 3D Commerce.[41]

See also

References

  1. ^ "Khronos Finalizes glTF 1.0 Specification - Khronos Group Press Release".
  2. ^ "KhronosGroup/glTF".
  3. ^ "glTF 2.0". blender.org. Retrieved 29 October 2020.
  4. ^ a b c d e f "glTF (GL Transmission Format) Family". loc.gov. Retrieved 29 October 2020.
  5. ^ a b c d e Simkin, Aliaksei. "Behind the scene of 3D Magic". globant.com. Retrieved 29 October 2020.
  6. ^ a b c Hamilton, Ian. "Oculus Executive Calls For 3D Equivalent Of JPEG To Build The Metaverse". uploadvr.com. Retrieved 29 October 2020.
  7. ^ Houston, Ben. "glTF: Everything You Need to Know". threekit.com. Retrieved 29 October 2020.
  8. ^ "Update" (PDF). www.khronos.org. 2016. Retrieved 2019-06-19.
  9. ^ "Bringing 3D to everyone through open standards". Windows Developer Blog. 28 October 2016.
  10. ^ "Physically Based Materials in glTF - Current State. M. Limper, T. Sturm, SIGGRAPH 2016 WebGL & glTF BOF (July 27, 2016)".
  11. ^ "glTF 2.0". augmania.com. Retrieved 29 October 2020.
  12. ^ "glTF 2.0 syntax changes and JSON encoding restrictions · Issue #831 · KhronosGroup/glTF". GitHub. Retrieved 2017-09-26.
  13. ^ UnityGLTF: Runtime GLTF Loader for Unity3D, The Khronos Group, 2017-09-26, retrieved 2017-09-26
  14. ^ "Web-based client-side preview and validation · Issue #1081 · KhronosGroup/glTF". GitHub. Retrieved 2017-09-26.
  15. ^ "Introducing new APIs to improve augmented reality development with ARCore". Google Developers Blog. Retrieved 2018-09-28.
  16. ^ Haslam, Oliver. "Adobe's new Aero app lets you create AR experiences on iPhone and iPad". imore.com. Retrieved 29 October 2020.
  17. ^ "glTF is a huge deal for VR + AR". worldviz.com. Retrieved 29 October 2020.
  18. ^ Nichols, Andy. "What is new in Qt Quick 3D 6.0". Qt Blog. The Qt Company. Retrieved 1 December 2022.
  19. ^ Burns, Chris. "Smithsonian Open Access initiative releases loads of 3D models to public domain". slashgear.com. Retrieved 29 October 2020.
  20. ^ "ISO/IEC 12113:2022 Information technology". International Organization for Standardization (ISO). 2022-07-26.
  21. ^ "Khronos glTF 2.0 released as an ISO/IEC International Standard". develop3d.com.
  22. ^ "The glTF ecosystem adds further PBR realism for web renders". Develop 3D. 3 December 2020. Retrieved 20 December 2021.
  23. ^ "New glTF Extensions for 3D Asset Visual Realism". Embedded Computing. 16 July 2021. Retrieved 20 December 2021.
  24. ^ "Khronos KTX 2.0 Ratified: Compress Your Textures with RapidCompact". Rapid Compact. 21 April 2021. Retrieved 20 December 2021.
  25. ^ "Draco Compressed Meshes with glTF and 3D Tiles". Cesium. 9 April 2018. Retrieved 20 December 2021.
  26. ^ "Cesium 3D Tiles".
  27. ^ "OGC is considering a proposed work item for 3D Tiles as a Community Standard".
  28. ^ "3D Tiles Community Standards Justification".
  29. ^ "VRM specification". github.com. Retrieved 29 October 2020.
  30. ^ "VRM" (PDF). khronos.org. Retrieved 29 October 2020.
  31. ^ "Khronos 3D Viewer Program". Graphic Speak. 16 June 2021. Retrieved 20 December 2021.
  32. ^ "Importing 3D scenes". Godot Engine documentation. Retrieved 2021-09-27.
  33. ^ Engine, Godot. "Godot Engine - Why we should all support glTF 2.0 as THE standard asset exchange format for game engines". Godot Engine. Retrieved 2021-09-27.
  34. ^ "How to make Facebook 3D posts". 3D Print Tech Design. Retrieved 2018-05-07.
  35. ^ "Export Maya scene as glTF". Retrieved 2021-02-01.
  36. ^ "glTF ROP output driver". Side FX.
  37. ^ "GLB Tutorials". Facebook Developers. Retrieved May 7, 2018.
  38. ^ "Overview" (PDF). www.khronos.org. Retrieved 2019-06-19.
  39. ^ "Think 3D". Leading Print. 20 July 2020. Retrieved 21 June 2022.
  40. ^ "Khronos launches certification for 3D-animated online shopping". Venture Beat. 9 June 2021. Retrieved 21 June 2022.
  41. ^ "How 3D Standards Will Simplify Image Creation And Usage In Retail". Retail Touch Points. 19 August 2020. Retrieved 21 June 2022.