Sparse Voxel DAGs
This thesis investigates a memory-efficient representation of highly detailed geometry in 3D voxel grids. The memory consumption of a plain dense grid scales too fast as the resolution increases to be feasible at very high resolutions. In computer graphics, the geometry is often surface geometry, and representing the data in a sparse voxel octree exploits the sparsity, making the memory consumption scale much better than for a dense grid. The size of sparse voxel octrees is still significant at high resolutions, and this thesis consists of four papers addressing the memory consumption by also exploiting coherence in the data. The coherence is detected automatically in voxel data sets and encoded losslessly in a directed acyclic graph as nodes sharing descendants, as opposed to a tree where all descendants are unique.
The sparse voxel DAG is used to encode hard shadows and static and time-varying opaque surface geometry, and offers just as fast access as trees, at a fraction of the memory consumption. While 1 bit per leaf node implies a lowest memory consumption of 1 bit per occupied voxel in a tree, the sparse voxel DAG repeatedly achieves much lower memory consumptions, e.g., 0.08 bits per voxel. The sparse voxel DAG is not just a single data layout for a single purpose, but a way of encoding coherence in voxel grids. The thesis shows that the limits of tree representations are not the fundamental, nor the practical, limits of how efficiently voxel grids can be represented and used, and advances the limit of grid resolutions to be considered practical in real-time rendering.
Directed acyclic graph