Jeffrey Dwoskin

332:562: Visualization and Advanced Computer Graphics
Assignment 2 - 11/1/01

For Assignment 2, I am developing a Volume Renderer. For an earlier project, I started a volume renderer to display a cloud. I am now trying to take this existing program and extend it to read in standard volume data (such as CT or MRI scans) and have advanced functions such as threshold values, color lookup tables, as well as making it more flexible in the type of data it can read and process.

Here is a picture of the rendered cloud:

The new generic volume renderer has 2 rendering modes: fast, where it simply casts rays directly into the volume, adding up the opacity and color as it goes through, and an advanced rendering method which adds lighting effects such as shadows and shading by finding the light intensity at each voxel of the volume before adding its color to the image. This method is obviously much slower.

Here is a single slice of the source data. This dataset had 113 of these slices: The data is the CThead volume data from Stanford:

Here are some sample rendered images These use the fast rendering method (which seems to work better with this dataset) and have varying minimum thresholds.

Threshold = 0
Threshold = 500
Threshold = 1000
Threshold = 1250
Threshold = 1500

These are the same but with the advanced lighting rendering:

Threshold = 0
Threshold = 1250

Next I have added a color lookup table (CLUT) which assigns each voxel a color based on its opacity value. Since different parts of the data (skull, skin, etc) have different opacities, each becomes a different color. The CLUT that I'm using is farily simple and I might get better images with a new algorithm.

Here the CLUT assigns low opacities to red shades, mid values to green, and high values to blue:

Threshold = 1250, CLUT 1
Threshold = 700, CLUT 1

I then changed the CLUT, switching red and blue:

Threshold = 100, CLUT 2
Threshold = 700, CLUT 2
Threshold = 1250, CLUT 2
Threshold = 2000, CLUT 2
Threshold = 2400, CLUT 2

To see the source code for the volume renderer, go to:

For a previous course I also designed a ray tracer and here is a sample rendering with 2 layers of spheres surrounded by 2 green planes:

If you have any questions, feel free to contact me:

Jeffrey Dwoskin