glTF 2.0 is the primary tile format for 3D Tiles. glTF is an open specification designed for the efficient transmission and loading of 3D content. A glTF asset includes geometry and texture information for a single tile, and may be extended to include metadata, model instancing, and compression. glTF may be used for a wide variety of 3D content including:
-
Heterogeneous 3D models. E.g. textured terrain and surfaces, 3D building exteriors and interiors, massive models
-
Massive point clouds
-
3D model instances. E.g. trees, windmills, bolts
glTF provides flexibility for a wide range of mesh and material configurations, and is well suited for photogrammetry as well as stylized 3D models.
Photogrammetry | 3D Buildings |
---|---|
glTF supports point clouds with the 0
(POINTS
) primitive mode. Points can have positions, colors, normals, and custom attributes as specified in the primitive.attributes
field.
When using the EXT_mesh_features
extension points can be assigned feature IDs and these features can have associated metadata.
glTF can leverage GPU instancing with the EXT_mesh_gpu_instancing
extension. Instances can be given unique translations, rotations, scales, and other per-instance attributes.
When using the EXT_instance_features
extension instances can be assigned feature IDs and these features can have associated metadata.
EXT_mesh_features
provides a means of assigning identifiers to geometry and subcomponents of geometry within a glTF 2.0 asset. Feature IDs can be assigned to vertices or texels. EXT_instance_features
allows feature IDs to be assigned to individual instances.
EXT_structural_metadata
stores metadata at per-vertex, per-texel, and per-feature granularity and uses the type system defined in the 3D Metadata Specification. This metadata can be used for visualization and analysis.
glTF has several extensions for geometry and texture compression. These extensions can help reduce file sizes and GPU memory usage.
An explicit file extension is optional. Valid implementations may ignore it and identify a content’s format through other means, such as the magic
field in the binary glTF header or the presence of an asset
field in JSON glTF.