GlTF

Last updated
glTF
GlTF logo.svg
Filename extension
.gltf,.glb
Internet media type
model/gltf+json, model/gltf-binary
Developed by Khronos Group
Initial release19 October 2015;9 years ago (2015-10-19) [1]
Latest release
2.0.1
11 October 2021;3 years ago (2021-10-11) [2]
Type of format 3D computer graphics
Extended from JSON
Website khronos.org/gltf

glTF (Graphics Library Transmission Format or GL Transmission Format and formerly known as WebGL Transmissions Format or WebGL TF) 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]

Contents

Overview

The glTF format stores data primarily in JSON. The JSON may also contain blobs of binary data known as buffers, and refer to external files, for storing mesh data, images, etc. [7] The binary .glb format also contains JSON text, but serialized with binary chunk headers to allow blobs to be directly appended to the file.

The fundamental building blocks of a glTF scene are nodes. Nodes are organized into a hierarchy, such that a node may have other nodes defined as children. Nodes may have transforms relative to their parent. Nodes may refer to resources, such as meshes, skins, and cameras. Meshes may refer to materials, which refer to textures, which refer to images. Scenes are defined using an array of root nodes. [8]

Most of the top-level glTF properties use a flat hierarchy for storage. Nodes are saved in an array called "nodes", and are referred to by index, including by other nodes. A glTF scene refers to its root nodes by index. Furthermore, nodes refer to meshes by index, which refer to materials by index, which refer to textures by index, which refer to images by index. [7]

All glTF data structures support being extended using an "extensions" JSON property. This allows adding arbitrary JSON data to any data structure, defined using an extension specification that is built upon the base glTF spec. See the Extensions section for more information. [9]

Releases

glTF 1.0

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

Adoption of glTF 1.0

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

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 [13] originally presented at SIGGRAPH 2016, Physically based rendering (PBR) was added, replacing WebGL shaders used in glTF 1.0. [14] glTF 2.0 added the GLB binary format into the base specification. 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. [15] There is ongoing work towards import and export in Unity [16] and an integrated multi-engine viewer / validator. [17]

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 [18] and Qt Quick 3D. [6] [5] [19] [20] 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. [21] [22]

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, using glTF for the 3D models. [23]

In July 2022, glTF 2.0 was released as the ISO/IEC 12113:2022 International Standard. [24] 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. [25]

The open-source game engine Godot supports importing glTF 2.0 files since version 3.0 and export since version 4.0. [26]

Extensions

The glTF format can be extended with arbitrary JSON to add new data and functionality. Extensions can be placed on any part of a glTF, including nodes, animations, materials, textures, and on the entire document. Khronos keeps a non-comprehensive registry of glTF extensions on GitHub, including all official Khronos extensions and a few third-party extensions. [9]

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. [34] [35] [36]

VRM, a model format for VR, is built on the .glb format. [37] It is a 3D humanoid avatar specification and file format. [38]

Software ecosystem

Khronos maintains the glTF Sample Viewer for viewing glTF assets. Khronos also maintains the glTF Validator for validating if 3D models conform to the glTF specification. [39] [40]

glTF loaders are in open-source WebGL engines including PlayCanvas, Three.js, Babylon.js, Cesium, PEX, xeogl, and A-Frame. The Godot game engine supports and recommends the glTF format, with both import and export support. [41] [42]

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 [43] ), Autodesk Maya (using babylon.js exporter [44] ), Autodesk Inventor, Modo, Houdini, [45] Paint 3D, Godot, and Substance Painter. [46]

Open-source glTF utility libraries are available for programming languages including JavaScript, Node.js, C++, C#, Haskell, Java, Go, Rust, Haxe, Ada, and TypeScript. Khronos keeps a list of these libraries and other related applications on their ecosystem site.

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. [47] 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. [48] 3D Commerce's asset guidelines, released in 2020, include best practices for use of the glTF file format in 3D Commerce. [49]

See also

Related Research Articles

<span class="mw-page-title-main">VRML</span> File format for representing 3D interactive vector graphics

VRML is a standard file format for representing 3-dimensional (3D) interactive vector graphics, designed particularly with the World Wide Web in mind. It has been superseded by X3D.

X3D is a set of royalty-free ISO/IEC standards for declaratively representing 3D computer graphics. X3D includes multiple graphics file formats, programming-language API definitions, and run-time specifications for both delivery and integration of interactive network-capable 3D data. X3D version 4.0 has been approved by Web3D Consortium, and is under final review by ISO/IEC as a revised International Standard (IS).

The Khronos Group, Inc. is an open, non-profit, member-driven consortium of 170 organizations developing, publishing and maintaining royalty-free interoperability standards for 3D graphics, virtual reality, augmented reality, parallel computation, vision acceleration and machine learning. The open standards and associated conformance tests enable software applications and middleware to effectively harness authoring and accelerated playback of dynamic media across a wide variety of platforms and devices. The group is based in Beaverton, Oregon.

<span class="mw-page-title-main">Shader</span> Type of program in a graphical processing unit (GPU)

In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene—a process known as shading. Shaders have evolved to perform a variety of specialized functions in computer graphics special effects and video post-processing, as well as general-purpose computing on graphics processing units.

<span class="mw-page-title-main">OpenGL ES</span> Subset of the OpenGL API for embedded systems

OpenGL for Embedded Systems is a subset of the OpenGL computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-accelerated using a graphics processing unit (GPU). It is designed for embedded systems like smartphones, tablet computers, video game consoles and PDAs. OpenGL ES is the "most widely deployed 3D graphics API in history".

COLLADA is an interchange file format for interactive 3D applications. It is managed by the nonprofit technology consortium, the Khronos Group, and has been adopted by ISO as a publicly available specification, ISO/PAS 17506.

3DXML is a proprietary 3D file format developed by Dassault Systemes under its 3DVIA Brand. It uses an XML container whose specifications were published. It should not be confused with X3D, the ISO standard XML-based file format for representing 3D computer graphics.

PLY is a computer file format known as the Polygon File Format or the Stanford Triangle Format. It was principally designed to store three-dimensional data from 3D scanners. The data storage format supports a relatively simple description of a single object as a list of nominally flat polygons. A variety of properties can be stored, including color and transparency, surface normals, texture coordinates and data confidence values. The format permits one to have different properties for the front and back of a polygon.

Web3D, also called 3D Web, is a group of technologies to display and navigate websites using 3D computer graphics.

FBX is a proprietary file format developed by Kaydara and owned by Autodesk since 2006. It is used to provide interoperability between digital content creation applications. FBX is also part of Autodesk Gameware, a series of video game middleware.

<span class="mw-page-title-main">WebGL</span> JavaScript bindings for OpenGL in web browsers

WebGL is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins. WebGL is fully integrated with other web standards, allowing GPU-accelerated usage of physics, image processing, and effects in the HTML canvas. WebGL elements can be mixed with other HTML elements and composited with other parts of the page or page background.

<span class="mw-page-title-main">Three.js</span> JavaScript library for 3D graphics

Three.js is a cross-browser JavaScript library and application programming interface (API) used to create and display animated 3D computer graphics in a web browser using WebGL. The source code is hosted in a repository on GitHub.

<span class="mw-page-title-main">Flare3D</span>

Flare3D is a framework for developing interactive three-dimensional (3D) graphics within Adobe Flash Player, Adobe Substance and Adobe AIR, written in ActionScript 3. Flare3D includes a 3D object editor and a 3D graphics engine for rendering 3D graphics. Flare3D runs on current web browsers utilizing the Adobe Flash Player, and uses Stage3D for GPU-accelerated rendering. Flare3D has not been under active development since late 2014.

<span class="mw-page-title-main">Open Game Engine Exchange</span>

The Open Game Engine Exchange (OpenGEX) is a format that aids the application-agnostic transferring of complex scene data between 3D graphics apps including game engines and 3D modelling apps. It uses Open Data Description Language for data storage, a method for arbitrary data storage that maintains human readability. The OpenGEX file format is registered with the Internet Assigned Numbers Authority (IANA) as the model/vnd.opengex media type.

<span class="mw-page-title-main">Godot (game engine)</span> Cross-platform, open-source game engine

Godot is a cross-platform, free and open-source game engine released under the permissive MIT license. It was initially developed in Buenos Aires by Argentine software developers Juan Linietsky and Ariel Manzur for several companies in Latin America prior to its public release in 2014. The development environment runs on many platforms, and can export to several more. It is designed to create both 2D and 3D games targeting PC, mobile, and web platforms and can also be used to develop non-game software, including editors.

3D Manufacturing Format or 3MF is an open source file format standard developed and published by the 3MF Consortium.

OpenXR is an open-source, royalty-free standard for access to virtual reality and augmented reality platforms and devices. It is developed by a working group managed by the Khronos Group consortium. OpenXR was announced by the Khronos Group on February 27, 2017, during GDC 2017. A provisional version of the standard was released on March 18, 2019, to enable developers and implementers to provide feedback on it. On July 29, 2019, OpenXR 1.0 was released to the public by Khronos Group at SIGGRAPH 2019 and on April 15, 2024, OpenXR 1.1 was released by Khronos.

<span class="mw-page-title-main">Verge3D</span> Real-time renderer and toolkit software

Verge3D is a real-time renderer and a toolkit used for creating interactive 3D experiences running on websites.

Facebook 3D Posts was a feature on the social networking website Facebook. It was first enabled on October 11, 2017 by introducing a new native 3D media type in Facebook News Feed. Initially the users could only post 3D objects from Oculus Medium and marker drawings from Spaces directly to Facebook as fully interactive 3D objects. The feature was available for desktops and mobile phones that support the underlying WebGL API.

References

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