3D Grid/Volume Rendering Widget
Note: This is the print view with all the tutorial pages on one page. The paginated version is available here, if you prefer that.
This tutorial introduces 3D Grid/Volume Rendering widget and explains how to use it.
Introduction
Loading a grid. Add/Remove options.
|
3D Grid/Volume Rendering is added to PMV (version 1.4.4) for displaying
3D grid data. To open this widget, either click on 3D Grid/Volume
Rendering icon on the Toolbar
or use Grid3D → Show Control Panel menu. For this tutorial we will be using ct_head.rawiv that contains CT scan of a human head in rawiv format. The following is the list of all supported grid formats.Click on the add (+) button and open ct_head.rawiv. The table widget used for navigating between grids now lists the grid we loaded and you should see the bounding box for the newly loaded grid in the Viewer. Uncheck Show Bounding Box button to hide
this box. The following parts of this tutorial show how to use
Isocontour, OrthoSlice and VolRender commands. These commands are based
on UTpackages that are python extensions of C++ libraries developed in Chandrajit Bajaj's group at UT Austin. |
![]() |
Isocontouring widget
Describes the histogram and how to display an isocontour.
|
When user clicks on Isocontour button, a histogram for the currently
selected grids is plotted, showing the distribution of the scalar field
defined on the gird. The X-axis of the histogram goes from the minimum
to the maximum of the scalar field and the Y-axis shows the frequency
(i.e., the number of counts for each bin). Shift-click inside the
widget to add isocontour. This should create isocontour corresponding to
the isovalue on the X-axis. Move the bar to change the isovalue.
Right-click on the bar to open a menu shown on the right. This menu
lets you change the properties of selected isocontour such as the
isovalue, color and transparency. You can also delete or show/hide
selected isocontour. Set 3D Surface Properties option opens DejaVu GUI
where you can make the surface wireframe (click on Front and select
line under Material properties), among many other things. Note that you
can add as many surfaces as needed and they all be saved when you use
File → Save Settings menu.
|
![]() |
![]() |
![]() |
OrthoSlice widget
Displaying orthogonal slice along X, Y and Z directions.
Click on OrthoSlice icon to open OrthoSlice widget. This widget opens with
X Direction
checkbutton selected and you should see orthogonal slice along X
direction for the selected grid. Move the slider to navigate between
different slices. The checkbuttons in front of X, Y and Z Direction
label toggle the visibility of the corresponding slice. ColorMap buttons open ColorMap GUI where you can adjust the hue, saturation, luminance and opacity of the colormap.![]() |
![]() |
Volume Rendering
Using transfer function editor.
|
If you have GL_EXT_texture3D, ARB_texture_cube_map or similar
OpenGL extensions, which most of the modern graphics boards do, you should see VolRender
button next to OrthoSlice. Click on this button to open transfer
function editor. The X-axis in this widget is the value of the scalar
field mapped to [0,255] range. The Y-axis describes how transparent the
grid point with a given scalar value should be drawn. The default
transfer function is a ramp, which means that the grid points with
low values are transparent and the ones with high values are
opaque. Drag the dots to modify the opacity and see how it effects the
final image. The transfer function is stored internally as color and
opacity lookup table (LUT).
To change the color in this LUT select a dot, right-click to open a
menu shown on the left and use
Set color option. The menu also has other options such as
Reset, Draw function (ramp or reversed ramp),
Flip function, etc. Middle-clicking (alt/Option on Mac) and dragging a dot will move the
entire transfer function. Double-clicking on lines adds a new dot and
Shit-click adds new set of four dots.Designing GUI for a transfer function is a challenging task, but we hope that you'll find this tool useful. |
![]() |
![]() |
![]() |

or use 







