I’ve been reading a lot lately about using voxels in CG. I’ve always been fascinated by ways of moving away from the traditional polygon-based pipeline, and things are really starting to look good for voxels.
Sampling all geometric and texture data on a regular grid allows for unique content, theoretically. No more repeating textures, pieces of scenery, … artists can basically create a scene and add little customizations to every object, without sacrificing rendering budget, as long as you’ve got a good way of streaming the right data to the GPU. Interesting work is done by Cyril Crassin on Gigavoxels, a paper which shows a working implementation of the Voxels-in-a-tree concept.
I think it’s a nice way to introduce some kind of ray casting (and all the benefits it brings) into a modern-day real-time graphics pipeline, instead of the traditional way of splatting polygons down on a canvas and using several shaders to fake effects which are gained automatically when shooting rays. It would also simplify a lot of algorithms if you can treat geometry and (for example) texture information as being on the same grid and resolution.
Also, a quote from Carmack in a recent interview on ID Tech 6:
It’s interesting in that the algorithms would be something that, it’s almost unfortunate in the aspect that these algorithms would take great advantage of simpler bit-level operations in many cases and they would wind up being implemented on this 32-bit floating point operation-based hardware. Hardware designed specifically for sparse voxel ray casting would be much smaller and simpler and faster than a general purpose solution