ReadonlybyteReadonlymaxDeepest mesh tree among the meshes the instances use.
ReadonlymergedThe merged meshes, one per StaticMergePlan group, after the
input meshes in the buffers; empty without mergeStaticInstances. With
merged groups, topLevel.recordOrder gives the input position for a
normal instance, and instances.length + group for a group's record.
ReadonlymeshesWhere each input mesh landed. The scene holds copies of the meshes'
records: to change a mesh's triangle flags after assembly, write
triangles with the mesh's entry as the range. A mesh only merged
sources use has an empty entry with mergedInto: flag its triangles on
that merged group's range instead, by source instance.
Optional ReadonlynodeHow nodes stores them. Assembly always sets it: 'quantized' by default, 'f32' when assembled with nodeFormat: 'f32'. Absent (a scene written by other code) means 'f32'.
ReadonlynodesEvery mesh's nodes, one after another (quantized: each mesh's frame slot, then its nodes).
ReadonlypositionHow positions stores a vertex: 'vec4' (16 bytes) or 'packed' (12).
ReadonlypositionsIndexed scenes: every mesh's positions (welded unless weld: false),
one after another at each mesh's vertex base, in positionLayout.
Empty for records.
ReadonlyrequiredStack entries the worst case needs: top-level depth + one marker + mesh depth.
ReadonlytopReadonlytriangleHow triangles stores them. 'records' unless assembled with triangleLeaves: 'indexed'.
ReadonlytrianglesEvery mesh's triangles, one after another. Indexed scenes: 16-byte
units, and each mesh's region starts with its header (and a merged
mesh's side tables) before triangleOffset.
ReadonlyvertexVertices in positions. 0 for records.
Bytes the three buffers hold (four with an indexed scene's positions).