what are sparse voxel octrees?

pdeva picture pdeva · Jun 12, 2009 · Viewed 31.9k times · Source

I have reading a lot about the potential use of sparse voxel octrees in future graphics engines.

However I have been unable to find technical information on them.

I understand what a voxel is, however I dont know what sparse voxel octrees are or how are they any more efficient than the polygonal techniques in use now.

Could somebody explain or point me to an explanation for this?

Answer

Ólafur Waage picture Ólafur Waage · Jun 12, 2009

Here's a snippet about id Software on this subject.

id Tech 6 will use a more advanced technique that builds upon the MegaTexture idea and virtualizes both the geometry and the textures to obtain unique geometry down to the equivalent of the texel: the Sparse Voxel Octree (SVO).

It works by raycasting the geometry represented by voxels (instead of triangles) stored in an octree.

The goal being to be able to stream parts of the octree into video memory, going further down along the tree for nearby objects to give them more details, and to use higher level, larger voxels for further objects, which give an automatic level of detail (LOD) system for both geometry and textures at the same time.

Also here's a paper on this.

Found more information in this great blog entry.

Well, voxels alone are not that interesting, because for any reasonably detailed modeled, you would need extremely huge amounts of voxels (if using an uniform grid).

So, a hierarchical system is needed, which brings us to octrees. An octree is a very simple spatial data structure, which subdivides each node into 8 equally large subnodes.

A sparse octree is an octree where most of the nodes are empty, similar to the sparse matrices that you get when discretizing differential equations