Personal tools

3D Grid/Volume Rendering Widget

Document Actions

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 Grid3DShow 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 FileSave 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.
  

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: