ReadonlybyteBytes the three buffers hold (four with an indexed scene's positions).
ReadonlyclustersReadonlymaxDeepest 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.
A scene from clusterTraceScene: a normal
TraceSceneDataplus what was done.