3D Tiles 2.0 Direct glTF Integration
The 3D Tiles 2.0 specification marks a major evolutionary step in streaming massive 3D geospatial datasets by natively adopting glTF 2.0 as its core content format. In previous versions, geospatial content was trapped within proprietary tile containers that added unnecessary parsing overhead and fragmented tooling. By moving to direct glTF integration, 3D Tiles 2.0 eliminates legacy binary wrappers, standardizes metadata through official glTF extensions, unifies instancing and point cloud data models, and dramatically improves interoperability with modern 3D software ecosystems.
Elimination of Legacy Tile Formats
In 3D Tiles 1.0, content payloads relied on specialized container formats:
- b3dm (Batched 3D Model): Used for heterogeneous 3D models like buildings.
- i3dm (Instanced 3D Model): Used for repeating structures like trees or street furniture.
- pnts (Point Cloud): Used for LiDAR and photogrammetry point clouds.
- cmpt (Composite): A container allowing multiple formats within a single tile.
3D Tiles 2.0 officially deprecates these legacy formats. Instead,
tile content URIs point directly to standard .gltf or
.glb files. This architectural change simplifies runtime
engines, as client applications no longer need to implement custom
parsers to unpack binary wrappers before feeding geometry to the
graphics pipeline.
Standardized Metadata with glTF Extensions
Legacy formats stored per-feature properties (such as building IDs,
materials, or zoning data) inside proprietary Batch Tables and Feature
Tables. 3D Tiles 2.0 formalizes metadata handling directly inside the
glTF asset using the
EXT_structural_metadata extension.
This extension provides:
- Schema Definition: Strongly typed property schemas defined per dataset or per tile.
- Property Tables: Binary-packed columnar storage for structured attribute data.
- Property Attributes and Textures: Direct assignment of metadata to vertices or encoded as textures, allowing dynamic styling, feature picking, and shader-driven filtering entirely within glTF primitives.
Native
Hardware Instancing via EXT_mesh_gpu_instancing
The functionality formerly provided by .i3dm is now
natively handled by the Khronos-standard
EXT_mesh_gpu_instancing glTF extension.
Instead of parsing a custom coordinate table from an instanced tile
format, runtime engines can dispatch draw calls directly to modern GPU
instancing APIs. This reduces CPU overhead and memory footprint while
making instanced datasets fully compatible with standard glTF
viewers.
Native Point Clouds as glTF Primitives
Instead of the isolated .pnts container, point clouds in
3D Tiles 2.0 are represented as native glTF meshes using the
POINTS primitive mode. Properties traditionally attached to
point cloud data—such as RGB color, intensity, classification, and
normal vectors—are mapped to standard vertex attributes or handled via
structural metadata. This unification means that compression schemes and
rendering paths for point clouds share the exact same infrastructure as
triangular meshes.
Unified Compression and Tooling Ecosystem
Because 3D Tiles 2.0 relies directly on glTF, it inherits the broader Khronos compression ecosystem:
KHR_draco_mesh_compression: For compact geometry and attribute transmission.KHR_meshopt_compression: For ultra-fast decoding performance and optimal GPU upload speeds.EXT_texture_webpandKHR_texture_basisu: Standardized texture compression pipelines.
Content creators can now use standard 3D modeling tools, digital content creation (DCC) software, and validation tools without converting back and forth through intermediate, geospatial-specific container layers.