Interactive RoI Volume Rendering of Unstructured Grids
Sébastien BARBIERGeorges-Pierre BONNEAU
Abstract
Volume rendering of unstructured grids is a time-consuming process. We present a method to interactively explore large unstructured grids using volume rendering of a region of interest (RoI). Outside the RoI, the context is either left blank or rendered using a fast visualization technique, e.g. planar slices, compressed isosurfaces or point-based rendering.The RoI is built using adjacency relations. Its construction ensures an efficient use of temporal coherency when the user moves the RoI and increases or decreases its size.
Furthermore, this temporal coherency is used to accelerate the volume rendering of the RoI. To do this, we propose a modified version of the Scanning Exact Meshed Polyhedra Visibility Ordering algorithm that takes into account the temporal coherence in order to more efficiently sort the tetrahedra inside the RoI. With this modified version, we do not have to recompute from scratch a new sort of the displayed tetrahedra when the RoI changes.
Together, the focus and context framework and the use of temporal coherency guarantee an interactive framerate for the visual exploration of large datasets.
Results
Images:Vidéo (.avi) : RoI.avi (60 Mb)
Binary (for Windows): Zip File RoI.zip
openGL, glu and glut .dll are required to run the program.
N.B.: If shaders are not supported by your graphics hardware, the program will still run, but DVR is disabled and the display will be VERY slow.
Others renderings systems available:
- ZSWEEP: ZSWEEP: An efficient and exact Projection Algorithm for Unstructured Volume Rendering , R. Farias, J. S. B. Mitchell and C. T. Silva
- HRC: GPU-based Tiled Ray Casting using Depth Peeling , F. F. Bernardon, C. A. Pagot, J. L. D. Comba and C. T. Silva
- HAVS: Hardware-Assisted Visibility Sorting for Unstructured Volume Rendering S. P. Callahan, M. Ikits, J. L. D. Comba and C. T. Silva
Tutorial
Download the blunt dataset to run this tutorial.The .ts format file encodes a tetrahedral grid with one scalar value by vertex:
#vertices #tetrahedra
list of vertices:
x y z scalar
list of tetrahedra:
v0 v1 v2 v3
Start the program: RoI.exe blunt.ts
Two windows are opened: the openGL display that renders the scene and a GLUI control window.
openGL display |
GLUI control windows |
You can active the Region of Interest (RoI) with the "o" key. Its center is located by the black axes. A Direct Volume Rendering of the RoI is displayed thanks to coherent SXMPVO sorting and PT rendering.
Region of Interest
To change the camera position, use the left mouse button to rotate, the right mouse button to translate or the middle mouse button to zoom.
To move the RoI, type the "m" key and use the right mouse button. You can increase/decrease the size of the region with the "+/-" keys.
You can alternate the display of the RoI with a shrink solid tetrahedra representation with the "t" key, or disable the stencil buffer option with the "s" key.
Shrink Solid Tetrahedra |
DVR |
wo/ Stencil |
In order to display the context outside the RoI, the following possibilities are offered:
- Isosurfaces: display the isosurfaces with the "i" key. You can change the isovalue in the GLUI control windows
- Point Rendering: display the point rendering with the "v" key.
- Clipping with textures: You can clip the mesh according to x,y and z axis. Keys "X/x", (resp. "Y/y", "Z/z") clip
the mesh according the X (resp. Y, Z) axis in one direction. You can move the clipping plane (only one at a time)
with the "n" key and using the right mouse button. The "c" key
displays textures on them. A chekbox modulates the intensity of the color with the corresponding opacity in the transfer
function.
Isosurface
Point Rendering
Z Clipping
Clipping Controls
A transfer function is chosen by default on our program.You can change the transfer function with the "l" key. 5 RGBA values can be modified. A histogram and the transfer function are displayed in the openGL Windows to help. You can also give your own transfer function using the -lut option with a file as Blunt.lut. Run : ./RoI.exe Blunt.ts -lut Blunt.lut; to use your transfer function.
Transfer function values |
Transfer function and histogram |
Press "q" key to exit the program.