Engineer / Master 2010 practice project:
A voxel engine to render ultra-complex animated scenes in real-time


Fabrice NEYRET & Cyril CRASSIN  -   ARTIS team, LJK, at INRIA-Montbonnot, Grenoble, FRANCE


Nowadays CG scenes are very complex, not only in special effects but also in games. On one side, scenes can be landscape-wide or more. On the other side, the details of CG models can go up to several dozen of triangles per pixel, and complex materials such as fur, hair, foliage, requires many triangles. How to render them efficiently and avoid aliasing ? Voxels have many advantages, such as ordered traversal during rendering (only useful stuff considered), trivial very decent LOD through MIPmap (how do you average triangles in a foliage ?). Special effect companies such Digital Domain or Rhythm&Hues now extensively use voxels engines, for semi-transparent objects such as clouds, avalanches, tornado or explosions, but also for complex solid objects. But the required memory is so huge that the rendering is still slow. Several gaming companies are also looking into voxel engines to deal with ever more complex scenes (see John Carmack talk).
To solve these issues, our team developed the Gigavoxel framework: a very powerful voxel engine based on GPU ray-casting, with advanced memory management (on demand production of visible blocks of voxels, caching), so that very complex scenes can be rendered in real-time (see videos). Our purpose is to complete and generalize this framework.

Description of the subject

There are many directions in which we want to extend the framework, in order to offer most of the functionalities graphists expect to design whole scenes made of several possibly animated objects:

These key features will permit the management of even more ambitious complex animated scenes such as endless detailed forests, animation with wind, animation of voxel-modeled characters (with details defined by shell maps or volume textures), hypertexture blob-based animation (for clouds, avalanches, smoke), etc.