University of Bergen | Faculty of Mathematics and Natural Sciences | Department of Informatics | Visualization Group
You are here: Department of Informatics > Visualization Group > Teaching > INF359 (VISUAL2): Selected Topics in Visualization
 > about
 > team & contact info
 > research
 > teaching
 --- > INF359: vis-special
 > seminars
 > resources
 > network
 > events
 > links
Course INF359 (VISUAL2): Selected Topics in Visualization (utvalde emner i visualisering)

INF359 - Second Lab Assignment

By Yngve Devik Hammersland

The assignment

We have been asked to make different visualizations for a multimodal dataset of a monkey. The dataset consists of a CT scan, a MRi scan and a PET scan and are registered. There were a few suggestions on how to do this in the assignment text.

The approach

I chose to implement a few strategies combined in a single plugin with some success. It is aimed at flexibility rather than beauty allthough it is capable of making some nice visualizations. The plugin has a shedload of adjustable features most of which is combinable.

For focus+context I mainly employed infinite planes dividing space/the volume. These works in the usual way that the volume is only "drawn" when on the correct side of the plane. Moreover I have implemented a soft border which fades the tissue opacity smoothly across the border. They also have user specifiable orientation. I have two of these where one affects the brain tissue and bone whereas the other affects the PET activation "isosurface". By using one of these I can easily make the "PET activation in the context of the scull" visualization mentioned in the assigment.

It is also possible to map the PET color coding onto the brain where it is sliced by the slicing plane. This creates a nice effect when used together with the PET activation.

The different tissues may be turned on or off by the corresponding properties. This enables a variety of different visualizations to be accomplished with little effort. No separate segmentation were made of the volume, so the classification of tissue is done on-the-fly by the shader. After a fair bit of tweaking I ended up with decent results.

Finally I have created a simplified panel with the most commonly used properties, such as the plane positions and the enabling of tissue types.

The Result

The main disadvantage to doing everything in a single shader is that it is really slow. At my development computer at home i am running about 1fps in a roughly 800x800 sized window.

Otherwise, as mentioned above, this plugin is able to produce many different visualizations.


The ability to combine features is great as it can produce a wide range of visualizations. As of now it runs on barely interactive framerates which has to be improved for this to be usable. Long story short: Speed sacrificed for flexibility.

Also I wish I had implemented some proper cutaway views, but this probably means that the plugin used as basis needed to be much more thoroughly modified than it currently is.

Pretty Pictures and a Video

The video can be found here: video_agk.avi

Here are some various pictures of the plugin in varous states: An image with all features turned on, notice the blended edge of the skull.

Same as above, but without skull.
Still same, but no PET coloring on the cutting plane.
Same, but with PET coloring on and PET activation off.
PET activation and coloring from a different angle.
The PET activation in context of the scull.
All features on again but disabled PET activation cut.

 Last change: Jean-Paul Balabanian