Ogc3d Header
Common header shared by every binary 3D Tiles container (b3dm / i3dm / pnts). 28 bytes:
Bytes 0..3 : magic (ASCII "b3dm" / "i3dm" / "pnts")
Bytes 4..7 : version (uint32 LE) = 1
Bytes 8..11 : byteLength (uint32 LE) — total payload length including header
Bytes 12..15 : featureTableJSONByteLength (uint32 LE)
Bytes 16..19 : featureTableBinaryByteLength (uint32 LE)
Bytes 20..23 : batchTableJSONByteLength (uint32 LE)
Bytes 24..27 : batchTableBinaryByteLength (uint32 LE)After the header come (in order): feature-table JSON, feature-table binary, batch-table JSON, batch-table binary. JSON sections are space-padded to 8-byte boundaries per spec. The format-specific payload (glTF for b3dm/i3dm, points binary for pnts) starts at the end of the batch-table binary.
Note: cmpt is the only container that has a different header layout — see CmptHeader. i3dm extends this layout with a trailing gltfFormat uint32 (parse it with extraHeaderBytes = 4), so its tables and payload start 4 bytes later.
Properties
Absolute offset (from the start of the input) of the feature-table JSON — just past the fixed header plus any format-specific extra header bytes (e.g. i3dm's gltfFormat).
Offset (from the start of the input) where the format-specific payload begins.