A sparse voxel octree (SVO) is a hierarchical octree data structure in which voxels recursively subdivide space into octants, storing only occupied or surface-intersecting regions, making it compact for raycasting and sometimes ray tracing in 3D computer graphics rendering.[1][2]
The technique generally relies on generating and processing the hull of points (sparse voxels) which are visible, or may be visible, given the resolution and size of the screen.[1] There are two main advantages to the technique. The first is that only pixels that will be displayed are computed, with the screen resolution limiting the level of detail required; this limits computational cost during rendering. The second is that interior voxels (those fully enclosed by other voxels) need not be included in the 3D data set; this limits the amount of 3D voxel data (and thus storage space) required for realistic, high-resolution digital models and/or environments.
The basic advantage of octrees is that, as a hierarchical data structure, they need not be explored to their full depth. This means that a system can extract a small subset of voxels as they are needed. In addition, octrees permit smoothing of the underlying data, to help with antialiasing.
It is, however, a generally less well developed technique than standard polygon-based rasterisation schemes. As scenes grow in geometric complexity, SVOs have been proposed to facilitate a transition from traditional triangle-based pipelines to voxel-based rendering.
Structure and mechanism
Memory efficiency
Each non-leaf node in an SVO subdivides its voxel into eight child slots of equal size.[1] Implementations such as efficient sparse voxel octrees encode which child slots exist and which are leaves with bitmasks, together with a child pointer for non-leaf descendants, so rays can traverse only relevant children instead of empty space.[1][3]
Level of detail
SVOs support seamless level of detail (LOD) by storing pre-filtered geometry and appearance data at each level, allowing ray casting to terminate early when voxel size matches screen resolution.[4]
References
- ^ a b c d Laine, Samuli; Tero Karras (February 2010). “Efficient Sparse Voxel Octrees – Analysis, Extensions, and Implementation” (PDF). NVIDIA Corporation. Retrieved June 11, 2010.
- ^ Qiu, Longzhu; Jonathan Mooney; Abbas Rajabifard (2017). “A Sparse Voxel Octree-Based Framework for Computing Solar Radiation Using 3D City Models”. ISPRS International Journal of Geo-Information (MDPI). Retrieved May 29, 2026.
- ^ Qiu, Longzhu; Jonathan Mooney; Abbas Rajabifard (2017). “A Sparse Voxel Octree-Based Framework for Computing Solar Radiation Using 3D City Models”. ISPRS International Journal of Geo-Information (MDPI). Retrieved May 29, 2026.
- ^ Crassin, Cyril; et al. “GigaVoxels: Ray-Guided Streaming for Efficient and Detailed Voxel Rendering” (PDF). ACM / I3D 2009. Retrieved May 14, 2026.