Extract a triangle mesh from a BlockAccumulator using marching cubes.
Each voxel is treated as a cell in the marching cubes grid. Corner values
are binary (0 = empty, 1 = occupied) with a 0.5 threshold. Vertices are
placed at edge midpoints, producing a mesh that follows voxel boundaries.
Extract a triangle mesh from a BlockAccumulator using marching cubes.
Each voxel is treated as a cell in the marching cubes grid. Corner values are binary (0 = empty, 1 = occupied) with a 0.5 threshold. Vertices are placed at edge midpoints, producing a mesh that follows voxel boundaries.