The 3D Handbook
Key term

glTF

The open, royalty-free 3D format from the Khronos Group. What .gltf and .glb files contain, how the metallic-roughness material maps to your textures, what extensions add, and how Blender, Godot, Unreal and Unity handle it.

foundationsexportpipelinefile-formatspbr

glTF (GL Transmission Format) is an open 3D file format from the Khronos Group, described as a "royalty-free specification for the efficient transmission and loading of 3D scenes and models" (khronos.org: glTF Overview). In 2022, glTF 2.0 became the international standard ISO/IEC 12113:2022 (khronos.org: glTF Overview).

For game artists, glTF matters in three places: it is Godot's recommended format, it is the usual format for web and real-time viewers, and it is the main open alternative to FBX (see 3D file formats).

#.gltf and .glb

A glTF asset is a JSON scene description plus binary data and images. The same content can be stored in two ways (khronos.org: glTF Overview; Blender Manual: glTF 2.0):

  • glTF Separate: a .gltf text file, a .bin file with the mesh data, and the textures as ordinary image files (Blender Manual: glTF 2.0).
  • glTF Binary: one .glb file "with all mesh data, image textures, and related information packed into a single binary file" (Blender Manual: glTF 2.0).

Blender also offers glTF Embedded, which encodes the data as Base64 text inside the .gltf. It is hidden until you enable it in the add-on preferences, and the manual calls it the least efficient form (Blender Manual: glTF 2.0).

Left, three kinds of file for one crate - a .gltf JSON file, a .bin file and three PNG textures. Right, a single orange .glb file containing a JSON chunk and a binary chunk. Below, a packed texture split into R occlusion, G roughness and B metallic.
The same crate as glTF Separate and as GLB, and the channel layout glTF expects for the packed occlusion, roughness and metallic texture.Diagram by the handbook author

Godot's documentation gives a practical rule: use .glb by default because it is smaller, and use .gltf with separate files when you want the scene in a text format for version control or want the textures kept outside the file (Godot Engine documentation: Available 3D formats). See source control for artists.

#The material model

glTF's core material is a physically based metallic-roughness model, described by Khronos as "a set of parameters that are used within glTF to simulate real-world lighting interactions" (khronos.org: glTF Overview). In practice it carries a base colour, metallic, roughness, normal, occlusion and emissive map.

The packed texture follows a fixed channel order. Blender's manual explains that "glTF expects the metallic values to be encoded in the blue (B) channel", roughness goes in green, and "glTF stores occlusion in the red (R) channel", so all three can share one image (Blender Manual: glTF 2.0). That is the order the name ORM describes; see channel packing.

Some data does not survive export. Curves and other non-mesh data "must be converted to meshes prior to export", quads and n-gons are triangulated, and animation of lights, materials or physics is ignored (Blender Manual: glTF 2.0). Procedural shader networks are not a glTF feature; bake them to images first (see baking).

#Extensions

Anything beyond the core specification is added through extensions. The Khronos registry lists 24 ratified KHR_ extensions, including KHR_materials_clearcoat, KHR_materials_transmission, KHR_materials_emissive_strength, KHR_materials_variants, KHR_lights_punctual, KHR_mesh_quantization, KHR_draco_mesh_compression, KHR_texture_basisu and KHR_texture_transform (GitHub: glTF Extension Registry). KHR_materials_diffuse_transmission was still a release candidate when this page was written (GitHub: glTF Extension Registry).

KHR_texture_transform is a good example of why extensions exist. It adds offset, rotation and scale to a texture reference, plus an optional texCoord override, so a material can sample part of an image without changing the mesh's UVs (GitHub: KHR_texture_transform). Its main use case is texture atlases (GitHub: KHR_texture_transform). The specification notes that UV rotation is not yet widely supported (GitHub: KHR_texture_transform). Blender exports its Mapping node through this extension: X and Y location, Z rotation and X and Y scale (Blender Manual: glTF 2.0).

#Support in tools and engines

Tool glTF support Extensions noted in the docs
Blender Import and export of .glb, Separate and Embedded (Blender Manual) Imports and exports most KHR_materials_*, KHR_lights_punctual, KHR_texture_transform; Draco compression on export
Godot "glTF 2.0 (recommended)"; .blend files are imported by calling Blender to export glTF, which needs Blender 3.0 or later (Godot Engine documentation) Not listed on the formats page
Unreal Engine Imports and exports .gltf and .glb, glTF 2.0 only (Unreal Engine documentation) Exporter: KHR_lights_punctual, KHR_materials_unlit, KHR_materials_clearcoat, KHR_materials_variants, KHR_mesh_quantization, KHR_texture_transform
Unity Through the glTFast package: runtime and editor import; editor export is experimental (Unity Package documentation) KTX/Basis Universal, Draco and meshoptimizer compression on load; URP, HDRP and Built-in pipelines

Blender's exporter changes between releases. Blender 4.5, for example, added an option to export named vertex colours (Blender Developer Documentation: Blender 4.5 LTS: Pipeline & I/O). See vertex colours.

#Further reading and watching

References

  1. The Khronos Group · glTF Overview · khronos.org, 2026 · web · accessed 2026-10-21
  2. Blender Foundation · glTF 2.0 · Blender Manual, 2026 · docs · accessed 2026-10-21
  3. Godot Engine contributors · Available 3D formats · Godot Engine documentation (source on GitHub), 2026 · docs · accessed 2026-10-21
  4. The Khronos Group · glTF Extension Registry · GitHub (KhronosGroup/glTF), 2026 · docs · accessed 2026-10-21
  5. The Khronos Group · KHR_texture_transform · GitHub (KhronosGroup/glTF), 2026 · docs · accessed 2026-10-21
  6. Epic Games · glTF File Format Support in Unreal Engine · Unreal Engine documentation, 2026 · docs · accessed 2026-10-21
  7. Unity Technologies · Unity glTFast · Unity Package documentation, 2026 · docs · accessed 2026-10-21
  8. Blender Foundation · Blender 4.5 LTS: Pipeline & I/O · Blender Developer Documentation (release notes), 2025 · docs · accessed 2026-10-20
  9. Aras Pranckevičius · Blender FBX importer via ufbx · aras-p.info, 2025 · article · accessed 2026-10-20

Last updated 2026-10-22