Laboratory Documentation: Volumetric Flow Visualization

Content

Introduction

supervisor: Peter Rautek
student: Stefan Marek
This web page is meant for the documentation of the laboratory project "Volumetric Flow Visualization", done in the summer term 2006. The content of this page is optimized for a resolution of 1024*768 pixels.

Project Tasks

The conceptual formulation of the laboratory project "Volumetric Flow Visualization" is as following:
The laboratory project tasks are specification, visualization and categorization of the volumetric flow. The volumetric flow (see optical flow in 2D) is defined as the changing of the volume over time. The volumetric flow is considered on a regular grid. At each voxel position on the grid, there is a given vector, which could be seen as the flow on this position. The volumetric flow will be trilinear interpolated between the voxels.
Basically the project has three parts:
- Editing of Volumetric Flow:
Interactive editing of the volumetric flow can be managed by many ways. The aim of the application should be an easy interface with understandable possibilities of interaction, describing and changing the volumetric flow.
- Visualization:
The volumetric flow will be generated and saved in order of the outgoing data (=density values on the grid). The visualization can be done either by vector visualization methods or by volume deformation described by the volumetric flow.
- Clustering of the Flow:
The volumetric flow can be splitted into clusters, which are differentiated by their features (direction, gradient magnitude, opacity, ...). The cluster can be shown in different ways.
For further informations take a look at: Motion Magnification
In this laboratory the editing and visualization tasks are implemented.

Program Description

For the implementation of the project the framework VolumeShop was used. This framework is written in C++, OpenGL and GLSL and was developed with Visual Studio 2003. The project is developed and tested with the dataset "hand_small.dat".

Alternativtext
The picture shows the program with the loaded dataset "hand_small.dat" and a user defined transfer function.

Requirements

The hardware requirements are the same as for volume shop, which means:
1. At least a Nvidia graphics card series 6000 or higher.
2. At least one gigabyte random access memory.

User Interface

The user interface is basically devided into two parts 1. Controls and 2. View. The following paragraphs will give a short overview of this two sections.

Alternativtext
The picture shows the grouping blocks of the program. The control area is on the left and right top side of the application window and the viewing area is on the right side.

Controls:
The controls are basically the same as you will find in the volume shop. At the bottom of the control section you will find a new control group which is called "Optical Flow Management".
There are two sliders in this group. The first slider with the label "Optical Flow" allows the manipulation of the time steps used for rendering the volumetric optical flow. The range of the slider is between 0 and 20.
The second slider with the label "Gaussian Sigma" is meant for changing the sigma value of the normal distribution used for defining the optical flow vectors. Its values are within the parameters of 0.0 and 4.0.
On the right top side of the application window you will find two buttons which are meant for user interaction and rendering of the volumetric flow.

Alternativtext Alternativtext Alternativtext
The picture shows the new control section.
"Optical Flow" slider has a range between 0 and 20.
"Sigma Gaussian" sider has a range between 0.0 and 4.0.
The picture shows the interactor icon.
Activating this icon allows user interaction in the viewing area.
The picture shows the rendering icon.
Pushing this icon renders the volumetric flow into the viewing area.

View:
The viewing section is also the same as you will find in volume shop. In the viewing area you will see the changing made by the controls.

Functionality

General Description:
The functionality of the Application is implemented in three modules:
1. Data Importer
2. Interactor
3. Volumetric Flow Renderer
The following section will give a more detailed overview of how this modules works.

Data Importer:
The data importer module is implemented as a volume shop plugin. The functionality is the same as the data importer plugin except for the gradient vectors which are all set to null vector.

Interaktor:
The interactor plugin is the main part of the project. In this module the optical flow vector is calculated. The user defines a position on the volume surface and one position in an arbitrary direction by mouse interaction in the viewing area of the application. As a result of this user interaction the application knows the position were the flow takes place and the direction of the flow. This information will be used to generate the optical flow vectors by multiply the direction vector with a value calculated by a normal distribution of the projected length of the voxel position onto the direction vector. The new vector will be saved on the voxel positions inside a region around the user selected volume position. This region could be seen as an oriented bounding box with extends of the direction vectors half length.

Volumetric Flow Renderer:
The renderer plugin renders the volumetric flow with direct volume rendering. The gradients has to be calculated in the rendering loop of the fragment shader because the memory space designated for the gradients is used for the optical flow vector. There is also another loop for the time steps in the rendering loop of the fragment shader which renders the volumetrical flow over time.

Conclusion

The tasks implemented are editing and visualization. Where editing is done by drawing a line in the viewing area. The line is interpreted as a common direction of the flow. Each voxel in an area around the user selection given by an oriented bounding box gets an optical flow vector assigned. This vectors are interpreted as optical flow over time and where used for visualization of the volumetric flow. The following pictures show the volumetric flow with user interaction.

Alternativtext Alternativtext
bone hand with gaussian sigma 2 and time step 20 skin hand with gaussian sigma 2 and time step 20

Top of Page