Next-Gen 3D Rendering Technology: Voxel Ray Casting

Potential Limitations Of Voxels

But while the technique is attractive, it isn’t without its faults. The main problem stems from how building octrees is computationally expensive, which means that it’s not realistic to count on modifying the data structure at run time. This disadvantage makes using voxel octrees for dynamic geometry particularly complex. Id Software’s proposal for getting around this roadblock consists of using octrees only for static geometry, while all dynamic elements of a scene would be displayed using good ol' triangle rasterization.

It’s a shame that such a new step forward, visually, has to be accompanied by such a restriction. With a generational change in technology, gamers also expect to move to a new level of interaction with the landscape. When you mention voxels, the thing that comes to a gamer’s mind is worlds that would finally be destructible, where you can blow up a wall and see the geometry change, revealing different layers of materials. But for the moment, at least, it appears that’s not on tap for the immediate future. We’re likely to keep our indestructible walls for a few more years.

Another problem has to do with the streaming system. As we’ve said, this rendering technique is particularly well-suited for gradually increasing the level of detail as you approach an object, with the system taking care of calling in data from the octree as a background task. Due to the way the data is organized, this can be done fluidly. But what happens when we teleport to another part of a world? The geometry is unique and the streaming system gets caught with its pants down. So, you can expect very basic geometry for a while, and then a gradual refinement. Otherwise game designers will have to work around such a shortcoming by avoiding that type of situation.

The problem isn’t unique to voxel octrees, as all streaming systems are based on the hypothesis of relatively continuous variation of level of detail and can’t keep up with sudden changes. But currently, that’s a problem only with textures. And while seeing a low-resolution texture for a second or two is ugly, seeing a low-resolution octree is likely to be visually horrific.

Another disadvantage we can run into with voxels has to do with pixelation. If we display only the color of the voxels intersected by the ray, the edges of the cubes are discernible, which results in a old-fashioned effect that’s out of place with a technology that’s supposed to be the future of rendering techniques. Fortunately, this problem can be solved by using trilinear filtering: instead of filtering in two dimensions, as with textures, the filtering is done in three dimensions.

The final challenge is that, despite the advantage of the octree data structure, the memory space needed for storing an entire world in the form of voxels is enormous. As we’ve seen, that doesn’t really affect the resources necessary for execution. But, on the other hand, to be able to manipulate, then store, and finally distribute such data structures, id Software is going to have to do some serious work on compression techniques. Jon Olick has said a few things about this topic, and he seems happy with the compression rates that have been achieved.

  • DjEaZy
    ... the 'matrix' is near... by this rate of progress...
    Reply
  • doomtomb
    This stuff is pretty interesting but a little over my head. The only thing I really care about is when we will start seeing this in our games.
    Reply
  • curnel_D
    This technology sounds a TON more promising than Ray tracing.
    Reply
  • the_krasno
    This is awesome, the people that can really gain something here are amateur filmmakers that can't afford the giant rendering farms big studios have! :)
    Reply
  • the_krasno
    the_krasnoThis is awesome, the people that can really gain something here are amateur filmmakers that can't afford the giant rendering farms big studios have!I meant independent, not amateur. Sorry.
    Reply
  • personally i like raytracing, except for the performance issues. if you've ever tried doing a little 3d rendering, ray tracing is very good, makes things look very real if done properly. again i know it is slow
    Reply
  • liquidsnake718
    Very interesting stuff, I do understand how limiting cubes or voxels can be limited in terms of depth and height(same height per distance) as polygons have that advantage where the triangle gives us just that, an angle that can be measured in terms of height and distanve. We have a vanishing point with a triangle as well.....

    Iwonder if they can impliment both polygons and advanced cubes with different sizes for the initial layers creating a more fluid and complexed scenario or landscape........
    Reply
  • JonathanDeane
    Interesting but voxels will have some extreme performance and space constraint hurdles to overcome before they become the main rendering of any game. I just downloaded a small demo http://www.advsys.net/ken/voxlap/voxlap03.htm its a little over 500K for the whole works but after you hit the genall batch file (it speeds up loading) the thing occupies about 120MB's of space for this simple game. Something like Quake 3 would have been a multi DVD file...
    Reply
  • mlopinto2k1
    Pretty cool stuff.
    Reply
  • amdfangirl
    Better put off upgrading my computer... again :P
    Reply