Ray - Casting


LU Visualisierung - Beispiel 1, WS 2002/2003

by

Thomas Rongitsch (e9825730@stud3.tuwien.ac.at)

Fabian Bendix (e9825733@stud3.tuwien.ac.at)

 

dowload source (kontaktiere die Übungsleitung)

view program

Technical Documentation


Introduction

Features

Slice Rendering

Transfer Function

X-Ray Rendering

Volume Rendering

 

Introduction

 

Within the scope of the LU Visualisierung we implemented a ray-casting  algorithm. This  means that an image is generated without any geometric primitives, for every pixel a ray is casted through the volume data to obtain the color and transparency information on that location.

 

The task was ..

1) .. to display slices in the x-, y- and z-axis

2) .. to easily change the the color mapping of density values in the volume data

3) .. to provide different volume rendering modes

4) .. to be able to arbitrarily rotate the volume data and the light source

 

Features

 

- Slice Rendering (nearest-neighbour and bilinear data interpolation)

- Average Density Rendering (x-ray style) (nearest-neighbour and bilinear data interpolation)

- First Hit Volume Rendering

- Volume Rendering with accumulated color intensities

- Threshold Rendering in both modes

- interactive color mapping control

- interactive volume and light positioning control

 

Slice Rendering

 

By default the slices are rendered using nearest-neighbour interpolation, which means in our case that every pixel on the screen is associated with one voxel in the appropriate slice. Therefore the program provides image interpolation methods (voxels only, nearest-neighbour, bilinear and bicubic), which comes into account when the user resizes the image. Then those pixels that not directly map to a voxel are interpolated according to the selected method.

On the other hand we can select bilinear data interpolation, which interpolates the density values for the neighbouring voxels linearly.

 

Slice Rendering

using nearest-neighbour image interpolation

Slice Rendering

using bilinear data interpolation

 

Transfer Function

 

The program provides an easy way to edit the mapping from density values in the volume data and the color and transparency values on the screen.

It is also possible to load and store the current state of the transfer function to ease the handling.

 

Transfer Function

with a loaded color mapping

 

Averaged Density Rendering

 

This is only a little add-on ..

 

X-Ray Rendering

 

Volume Rendering

 

Generally here the user has two methods to choose from: first-hit rendering (Figure A+B) or accumulated color rendering (Figure C+D). Moreover it is a threshold slider provided to cut away certain portions of the volume data (Figure E+F). In addition we can cut away parts not defined by the density value, but defined by the location of the part (Figure D+F).

There is some more we can see here: different transfer functions and different light settings.

 

Figure A

 

Figure B

 

Figure C

 

Figure D

 

Figure E

Figure F

 

Some better screenshots ..

 

Volume Rendering

grey light, blue + alpha <1% for skin densities (~250)

 

Volume Rendering

grey light, red + alpha ~15% for skin densities (~250)

 

Volume Rendering

orange light, blue + alpha ~1% for skin densities (~250)

 

Volume Rendering

red light, blue + alpha ~1% for skin densities (~250)

 

Volume Rendering

grey light, red + alpha ~15% for skin densities (~250)

Volume Rendering

grey light, blue + alpha ~15% for skin densities (~250)