Number of clusters (meshlets).
Interleaved vertex pool, VERTEX_STRIDE per vertex — the original mesh
vertices, shared by all clusters. Cluster local indices resolve into this
via meshletVertices.
Cluster-local → global vertex index, indexed by cluster.vertexOffset + localVertex.
The value indexes a vertex (not a float) in vertexData.
Triangle corner → cluster-local vertex index (0..vertexCount), indexed by
cluster.triangleOffset + tri*3 + corner. Widened from meshopt's u8 table
to u32 because WGSL storage buffers can't index sub-word.
Packed cluster descriptors, CLUSTER_DESC_FLOATS floats each.
Total triangles across all clusters (== input triangle count).
Overall local-space bounding sphere of the whole mesh.
CPU-side result of buildClusters — the flat arrays a vertex-pulling cluster shader needs, plus bookkeeping. Upload with ClusteredMesh.