In this project you get to do volume rendering using raycasting for several datasets. With many datasets (especially the medical ones) it can be hard to see what you are visualizing. So, for this assignment we will be looking at some more familiar items.
One of the things you will be visualizing is /are the volume
dataset(s) you created of the wireless networks in EVL from Project 2,
but only the 2nd floor. The user should be able to choose which of the
4 networks to visualize; adding in the non-evl networks would be nice
too. You should include the walls up to the top of the doorways in your
volume (that is you dont have to worry about the wall area above the
tops of the doors.) To make things simple you can consider the walls to
be one foot thick and that they take up complete 1 foot by 1 foot by 1
foot cells. You will also very likely want to normalize the signal
strength values so they range from 0 to 255.
If you are really motivated and creative (and want more points) you can do both the 2nd floor and the 3rd floor, including walls and ceilings, but you will need some way to nicely see through the walls and the floor to see the networks.
You will also visualize at least one of the following volume datasets are available at ftp.evl.uic.edu in pub/software/andy
The bonsai, bear, and engine block data files are untouched from Computer Graphics Group, Computer Science Department, University of Erlangen-Nuremberg, Germany. For the christmas tree from The Institute of Computer Graphics and Algorithms at the Computer Science Department of the Vienna University of Technology, I removed the 6 byte header to convert the file back into a 'real' raw data file.
The user should be able to choose which dataset to visualize with a widget, and in the case of the wireless also which network to visualize.
You should use transparency to show multiple layers including a
widget to control the amount of transparency. You should have at least
one solid layer surrounded by one transparent layer, but multiple
transparent layers with independent controls may be nicer. For the
wireless networks knowing where excellent/fair service can be found may
be a nice way to generate layers. Be sure to pick nice colours for the
There should also be a widget should control the resolution of the
dataset allowing the user to do a faster
computation for various smaller sizes e.g. 256x256, 128x128, 64x64, 32x32.
There should be widgets to control sample distance, interpolation
method, MIP vs Composite parameters.
The user should be able to rotate the dataset quickly using the mouse seeing a low-rez version, and then when the user stops moving the mouse the high-rez version should render.
As with projects 1 and 2 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.