Martin Mautner, Andreas Winkler
This project is an application for the visualization of 3D line data. It is an implementation of the algorithms presented in Depth-Dependent Halos: Illustrative Rendering of Dense Line Data by Everts et al.
The goal of this project is to provide a method for illustrative black and white rendering of dense line data, with emphasis on line bundles. The application runs at interactive framerates with dynamic camera angles and variable parameters. Additional depth cueing methods aim to improve the visibility of spatial relations and distances within the scene.
The GUI of the application consists of a 3D window and a number of controls.
Via the File->Load command in the menu bar, a line data set in TrackVis format can be openened.
The camera is controlled via the mouse. The FPS counter on the right side shows the current framerate.
Rotation: Hold the left button + drag
Zoom in/out: Hold the right button + drag up/down or use the Mousewheel
Move: Hold the middle button + drag
Thickness: adjusts the thickness of the black lines
Halo width: adjusts the width of the white halos shown at the border of each black line
Stripth depths: adjusts the depth scaling of the halos corresponding to the d_max value from the paper. Lower values will move the halos to the front, higher values move halos to the back.
Depth cueing: adjust the magnitude of the additional depth cueing effect. Higher values will decrease the line thickness for further away lines.
Wireframe on/off: renders lines in wireframe mode
Filtering: pressing 'f' will toggle filtering on/off. With filtering enabled, only a subset of the data is displayed which makes it easier to look at single lines.
In a supplied Settings.ini file, MSAA, Sample Shading and Anisotropic Filtering can be adjusted. Enabling Sample Shading and increasing the MSAA value improves the visual quality (with a large impact on performance).
The following features of the original paper are implemented in this project:
Rendering of lines as view aligned triangle strips
Rendering of halos including the depth dependency effect
Tapering at line ends
Additional Depth cueing
The application uses Qt for the GUI and OpenGL for rendering (at least OpenGL 4 is required). The implementation follows the descriptions in the paper:
The lines that are visualised are fibre tracks extracted (using TrackVis) from diffusion tensor MRI datasets provided by OpenfMRI.