Project 2
Pimp
my Volume
In
this project you will get to play with visualizing volumetric data in
various ways, with isosurfaces, splatting, and raytracing, to compare
their strengths and weaknesses. Realistically, splatting is more useful
with unstructured data rather than the structured data we will use
here, but it should still be illustrative.
The datasets you
will be using are a piggybank and a human foot that can be found at:
http://www9.informatik.uni-erlangen.de/External/vollib/
I have put copies
of these datasets converted to raw format on the evl
ftp site (ftp.evl.uic.edu/pub/INcoming/andy) You can also download the
original data and a converter from the web site that will convert it to
raw format; that's what I did.
the piggy bank is
512 x 512 x 134 (16 bit)
the knee is 512 x 512 x 87 (16 bit)
For
a C
Your
program should be able to load both of the above datasets.
The user should
be able to rotate the dataset quickly in 3D using the mouse. This very
likely means using a low-rez version while the user is moving the
mouse, and then switching to the high-rez version when the user stops.
The user should be able to zoom in and out of the dataset (or scale the
dataset if you prefer.)
There should be
a GUI that allows the user to control various parameters, i.e. what
method is used to display the dataset, as well as particular parameters
for each type of visualization:
- In the
isosurface visualization the user should be able to control the value
of one isosurface.
- For
splatting the user should be able to control the value of one set of
splats.
- For
raycasting the user should be able to control the greyscale intensity
of the min and max values, and choose between MIP and composite.
For
a B
All of the above
plus:
The user should
be able to control the splatting parameters. In the isosurface
visualization the user should be able to control the colour and
transparency of three independent isosurfaces; the colours can be from
a fixed pallett or a colour picker. Similarly the user should be able
to control the colour of three independent sets of splats. For raycasting the
user should be able to specify a colour transfer function.
For
an A
All of the above
plus:
The user should
be able to easily control a plane to prune away part of the dataset in
order to see the rest of the dataset more clearly.
Implementing other useful controls would be nice.
Pick some other
interesting datasets to visualize. Some nice places to look include:
http://www.custard.org/~andrew/visualization/datasets/
The backpack and the christmas tree are rather nice.
As with project
1 you should create a web page containing a
series of images showing all of these various features in action, and
links to the code that you used to create them. Highlight interesting
features you find in the datasets. Highlight comparisons of seeing the
same thing in different ways using the different techniques. What did
you learn about the value of different techniques?
last revision 2/25/07