Two Flavors of Volume Visualization
In this project we'll use two different techniques to visualize volume
data. There are four volume data sets we can experiment with:
- CT scan of someone's head
- MRI scan of someone's head
- Mouse embryo
- Grain of pollen
Ray tracing, combined with a good transfer function, should allow us
to make very nice pictures, with both diffuse and specular lighting,
from these data sets.
Texture slicing can be much faster, gives pretty nice
results as well.
We may be able to change transfer functions interactively with the texture
slicing implementation.
Our goal is to make an application that
allows the user to specify different transfer functions and then
render images using either technique.
The user interface should have controls both for modifying the
transfer function, and possibly for controlling the quality of the
ray-traced image.
If possible, the image rendered with texture slicing should update
in real-time or near-real-time when the user changes the transfer function.
The ray-traced images should include at least diffuse and specular lighting;
lighting on the texture-sliced images might be difficult.
All of the data sets are on the CSIF machines, in the directory
~amenta/volume_data/.
Look at the README for more information.
Timetable and Logistics
The assignment is due at 10pm on Thurs May 8.
Here is a suggested timetable:
- Wds April 23, contact other team members, discuss technical pieces that
need to be assembled, make plan for gathering and building components.
- Mon April 28, test out parts of the system. For instance,
ray-trace spheres to check lighting calculations, implement trilinear
interpolation and calculate gradients at the vertices; figure out some
way to visualize these parts by themselves so you can make sure there are
no bugs.
For the texture-slicing, load the data
into a 3D texture and draw individual slices.
- Wds April 30, discuss assembly of pieces and plan user interface.
- Mon May 5, first draft of result. How can you improve quality of ray-traced images? Of user interface? Can you get real-time update with the texture slicing? Have the rest of the week to improve results.
Your program should run on the CSIF machines in the Kemper basement.
Submit the program using
the handin script: put all the files required to compile and run
your program into a directory (including a README, but NOT including the
data files)
cd into that directory, and type "handin cs177 volume *".
Links
Watch the Wiki for links to helpful Web pages. Add things as you find them!