Warning: include(php/head.php) [function.include]: failed to open stream: No such file or directory in /share/www-gfx/OpenRT/Applications/volumert.php on line 6

Warning: include() [function.include]: Failed opening 'php/head.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear:/v/graphics/fs3/share/www/OpenRT') in /share/www-gfx/OpenRT/Applications/volumert.php on line 6
Volume Ray Tracing

Volume Ray Tracing    



Navigation: [Introduction]    [Main Issues]    [Our Approach and Results]    [Future Work]    [Gallery]   [Students]     [Papers and Videos]

Introduction

The key difference between volume rendering and polygonal (e. g. triangles) rendering lies in the input data. Here, the input data may have many dimensions. In most cases there are three spacial dimensions and one ore more data dimensions. A temporal dimension is also possible. For now we will assume, that there is only one data dimension. This could be temperature, some density, etc.
So the next question is now how these values are organized. It turns out that there are basically three structures possible:
But there are also different ways in using this data. Up to now three main techniques are used:
[back to top]

Main Issues

At the moment we consider only  the rendering of isosurfaces in rectilinear organizations since this is the easiest way for handling volume rendering. The organization of the volume data is illustrated in figure 1. Such data is mostly delivered from CT and MRI medical devices.

grid structure of a volume
figure 1: sketch of a volume data set (left) and a specific cell (right) with density values

Two main problems have to be considered for rendering volumes. The space between the values in the grid have to be interpolated somehow (see figure 2) and we need to calculate a normal vector (a vector perpendicular to the surface) since we want sophisticated shading (see figure 3). Both operations are more costly in terms of computional time compared to polygonal rendering.Until now researchers exploited the usage of specialized hardware, utilize consumer graphic cards or apply a ray casting algorithm. However, special hardware is usually costly, graphics chip textures are limited to a certain size and ray casting shows poor rendering results (since only primary rays are used).

midpoint intersection
bonsai tree without normal
figure 2: w/o interpolation (here: inverse cubic)
figure 3: w/o normal calculation
[back to top]

Our Approach and Results

Ray tracing is already known for its accurate and physically correct rendering of pictures. But is always considered as too slow to render at interactive rates. Since our OpenRT group successfully showed that it is possible, it was only a small step to apply it to volume rendering.
As it can be seen from the pictures below, it was the right choice to extend the OpenRT framework. Given a mid-sized volume modell (say 256^3) and using a resolution of 512 x 512 we are able to achieve up to 7 frames per second on a standard PC.

Stanford Bunny
MRbrain with polygonal surfaces
figure 4: Stanford bunny (volumetric!) in environment map
figure 5: MRbrain mixed with polygonal mirrors and box
transparent engine
bonsai tree
figure 6: engine dataset (transparent)
figure 7: bonsai tree with several light sources and shadows

The images above are showing a small set of the possibilities with our approach.  Figure 4 shows the famous stanford bunny, but this time it is actually a CT scan. To give this bunny an interesting look we mapped the uffizi hall on it. Figure 5 basically demonstrates the combination of polyginal and volumetric datasets. Note that both types are actually interacting with each other through reflection and intersection.
But refraction is also possible, as shown in figure 6. This allows to take a look at the inner parts of the engine, while one would normally only see the surface. To have an idea of the surface we blended both. The last example (figure 7) shows another bonsai tree with several light sources and shadows. But we also mapped an environment map on it ... guess which one.

[back to top]

Future Work

In the future we would like to extend our framework to handle large and time varying data sets. Extensions to allow maximum intensity projection and direct volume rendering seems also interesting. At the moment we are trying to render the data from the VHP (Visible Human Project).

[back to top]


Gallery

Please visit our new gallery with lots of pictures including most recent extensions:    Let me see ...


Papers and Videos

[mpeg4, ~ 33MB]
[back to top]

Students

This project belongs nowadays among the largest subgroups within the Computer Graphics Lab.  The following students are currently involved in this project:
Former students:

Contact: Gerd Marmitt





Warning: include(php/foot.php) [function.include]: failed to open stream: No such file or directory in /share/www-gfx/OpenRT/Applications/volumert.php on line 291

Warning: include() [function.include]: Failed opening 'php/foot.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear:/v/graphics/fs3/share/www/OpenRT') in /share/www-gfx/OpenRT/Applications/volumert.php on line 291