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.

Create a new thread in the US Reviews comments forum about this subject
This thread is closed for comments
Comment from the forums
    Your comment
  • DjEaZy
    ... the 'matrix' is near... by this rate of progress...
  • 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.
  • curnel_D
    This technology sounds a TON more promising than Ray tracing.
  • 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! :)
  • 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.
  • Anonymous
    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
  • 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........
  • 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 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...
  • mlopinto2k1
    Pretty cool stuff.
  • amdfangirl
    Better put off upgrading my computer... again :P
  • Anonymous
    In the regular resolution 12x12 you get 144 cells instead of 122 as stated in the text
  • fatedtodie
    Based on John Carmack's record if he says it is bad... you should do it, seeing as anyone with a memory will recall the time he said multi-core was a waste of time and we should continue the Ghz race (even those the Ghz race achieved Moore's Law).

    John Carmack is a dinosaur and will try any new technology if paid enough (see his changing his mind on multi-core to "help" on the xbox 360).

    Please get an expert that isn't a moron.
  • bin1127
    “pixel” is a fusion of the terms “picture” and “element,”, learned something new.

    But i wouldn't want destructible walls. How am i going to camp when all the walls are gone?
  • manwell999
    Since when does a tree have attached children?
    It's unfortunate that the example of MRI scan example was used. Medical software must avoid the habit of naming branches in tree structures as children, lest an error message is displayed accidentally to a patient such as "Out of memory allocating children, child process aborted." Which would be a lawsuit if scanning a pregnant female. But this bad coding practice is quite common.
  • zak_mckraken
    @manwell999 : lawl
  • JimmiG
    fatedtodieanyone with a memory will recall the time he said multi-core was a waste of time and we should continue the Ghz race

    Well, back in the day, everyone was talking about higher GHz as the solution to everything. Even Intel did:
    "LUCKY PUNTERS WILL BE ABLE TO BUY 15GHZ INTEL CHIPS, containing a billion transistors, by the end of the decade, said Pat Gelsinger, Intel veep and CTO in his keynote at the Intel Developer Forum in Tokyo today. Gelsinger also predicted that PDAs will hit 5GHz in the same timeframe. It's unlikely the chips will use the existing Pentium 4 architecture which is reckoned to only be good up to around 10GHz. "

    Then Intel hit the thermal/power wall some time in 2004-2005, before even making it to 4 GHz. This of course signaled the end of such optimism. If that hadn't happened, higher clock speeds would still have been the best way to make faster CPUs. That makes all code run faster, not just code that is carefully optimized to extract parallelism. Multi-core CPUs for desktops and laptops initially came around not because it was the best choice for improving performance, but because it was not possible to further increase clock speed.
  • precariousgray
    Here's what I saw.

    That example should give you an intuitive idea of one of the advantages of using trees.
  • kikireeki
    What happened to Normal Mapping?
  • JonathanDeane
    kikireekiWhat happened to Normal Mapping?

    Hmmm maybe using a skin of voxels on top of a polygon mesh would be good for facial animation stuff, that sounds interesting to me or a mesh of polygons on top of the voxels for deformation purposes. Ok my mind is officially fried you may all proceed to LOL at me :)
  • spiketheaardvark
    I wish the article discussed how such a system would handle transparent objects and refracted light sources , such as an image of a glass of water.