Various types of storage and indexing for voxels in 2 or 3 dimensions.
If you need to store signed distance values in your voxels, consider using the Sd8
and Sd16
fixed-precision types which
implement the SignedDistance
trait required for smooth meshing.
The core storage types are:
- Array: N-dimensional, single resolution, bounded, dense array
- ChunkMap: N-dimensional, multiple resolution, unbounded, sparse array
- Backed by generic chunk storage, with
HashMap
orCompressibleChunkStorage
implementations
Then there are "meta" lattice maps that provide some extra utility:
- TransformMap: a wrapper of any kind of lattice map that performs an arbitrary transformation
- Func: some lattice map traits are implemented for closures (like SDFs)
For hierarchical indexing and level of detail:
- OctreeSet: bounded bitset of points
- ChunkedOctreeSet: unbounded bitset of points
- OctreeChunkIndex: just a
ChunkedOctreeSet
that tracks chunks and provides clipmap functionality