Infinite Detail Sparse Voxel Oct Tree

After spending some time researching and thinking about how oct trees work I decided to create a small prototype to test their potential. The goal of this project was to create a very lightweight oct tree voxel system with editing features. I used the same code base as my C++ voxel project so this also uses C++ and DirectX 11.

This system uses chunks as the top level node which manages building/rendering the mesh and saving/loading the voxels to a file. In the above video and screenshots the world is made up of 5x5x5 chunks, having the world formed in chunks means more can be loaded as necessary for larger worlds and chunks can be loaded/unloaded based on the camera’s position.

Each chunk supports up to the unsigned integer limit in block levels resulting in a possible 3.74 × 10^3878741958 blocks per chunk, although memory will be an issue long before that. All of the data for a node is stored in 2 bytes, this includes 16 bit colour, block solidness and a node’s position relative to it’s parent.

Leave a Reply