vistit the homepage Vienna University of TechnologyTECHNISCHE UNIVERSITÄT WIEN
Institut für Computergraphik und Algorithmen
Abteilung für Computergraphik

 Visualization Lab

 Ulrich Binder, Thomas Pönitz - WS 08/09

Introduction

This application has been developed in the course of the Visualization Lab during winter semester 08.
Our program implements Direct Volume Rendering as presentented in the paper Display of Surfaces from Volume Data from Marc Levoy [1]. DVR allows the user to explore volumetric data from CT (or MRI) scans in real-time.

The program was implemented in C# 3.0 (therefore the NET Framework 3.5 is required) using the TaoOpenGL Framework.

Graphical User Interface (Overview)
Highslide JS
The main user interface in 2D (Slicing) View.

The window consists of 4 panels:

  • Viewport panel: The rendering viewport
  • Transfer function panel: Defines the transfer function
  • Control panel: Slicing in 2D mode, render method 3D mode
  • Option panel: Options for 3D-Rendering (only available in 3D Mode)

There are additional controls in the window menu:

  • File: load a volume data file
  • View: switch between slicing and volumetric rendering
  • Transferfunction: load/save the transferfunction

Transfer Function
Highslide JS
The transfer function in a detached window.

Defines a transfer function which maps a voxel's intensity value to a color and opacity value and interactively changes the current Render-View.

  • A left double click inserts a point
  • With a right click you can choose a color for a point
  • Dragging with the left mouse button moves the point
  • The Transfer Function can also be shown in a seperate window for easier editing
  • Load and Save to XML-Files is also possible

2D Slicing

Slice through the data along the three main axis. Its also possible to show a grid on the Render panel.

Volumetric Rendering
Highslide JS
The main user interface in 3D (Volumetric) View showing First Hit Rendering including Phong's specular highlight.

In 3D mode you can view the volume from an arbitrary angle. For navigation a so called arcball interface was implemented. Left click into the viewport and drag the mouse around to rotate the volume. By clicking with the middle mouse button one is able to do paning. Zooming is avialable through the mouse wheel.

The possible rendering modes are:

  • First Hit: The first sample that is higher than a given threshhold will be drawn.
  • Maximum Intensity Projection: the maximum value along each ray is used
  • Front To Back (FTB): by stepping through the volume along the viewing ray subsequent voxels contribute less and less to the output pixel color because they are obscured by the accumulated opacity of the previous voxels
  • Average: each voxel along the viewing ray is added equally weighted to the output pixel value
Other controls:
  • Bounding Box: shows the bounding box of the volume
  • Coord Axis: shows a simple Axis-Cross for Orientation
  • Reset View: sets the Viewport to it initial state
  • Average: each voxel along the viewing ray is added equally weighted to the output pixel value

Screenshots
Highslide JS
Resultpicture showing the cthead-dataset using FTB + TF + Phong Lighting.
Highslide JS
Yet another picture showing the cthead-dataset using FTB + TF + Phong Lighting.
Highslide JS
skewedthead-dataset using FTB + TF + Phong Lighting.
Highslide JS
the good old lobster :)
Highslide JS
Xmas-present with Maximum Intensity Projection
Highslide JS
yellow x-ray version of the lobster

Downloads
For the binaries to run you need Windows (>= XP), .NET Framework 3.5 (C# 3.0), TaoFramework (dlls included) and FreeGlut (dlls included).
References
[1] Marc Levoy, "Display of Surfaces from Volume Data", IEEE Computer Graphics and Applications, Vol. 8(3), pp. 29-37, Feb.1987
Computer Graphics Group / Courses / Visualisierung / Visualisierung Laborübung
Maintained by Ulrich Binder, Thomas Pönitz.
Last update on 16. Dez 08.
Comments to /dev/null.
get back to the index

Favoritenstrasse 9-11 / E186, A-1040 Wien, Austria
Tel. +43 (1) 58801-18602, Fax +43 (1) 58801-18698
www.cg.tuwien.ac.at