|
|
|
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) |
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 |
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 |
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 |
Resultpicture showing the cthead-dataset using FTB + TF + Phong Lighting.
Yet another picture showing the cthead-dataset using FTB + TF + Phong Lighting.
skewedthead-dataset using FTB + TF + Phong Lighting.
the good old lobster :)
Xmas-present with Maximum Intensity Projection
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).
|
|
|