VolumeViz supports clipping the volume against a rectangular region of voxels. The region of interest (ROI) node, SoROI( C++ | Java | .NET ), specifies a subvolume in voxel (IJK) coordinates. This subvolume effects both data management and rendering. First, VolumeViz will only load data tiles that intersect this subvolume. So ROI is an important tool for limiting the number of tiles that must be loaded. For very large volumes this means that, for the same amount of system/GPU memory, higher resolution tiles can be loaded providing higher image quality. Second, VolumeViz will clip all volume primitives to the specified region. For SoVolumeSkin( C++ | Java | .NET ) this means that the "faces" of the ROI will be rendered. This allows the ROI to be used as a "probe" to examine a region of the volume or as a "clipplane" for cutting away part of the volume. For axis aligned clipping, SoROI( C++ | Java | .NET ) is much more efficient than SoClipPlane( C++ | Java | .NET ). Only one ROI can apply to each rendering node at any given time, but one ROI can apply to all rendering nodes or each rendering node can have its own ROI.
Moviing a probe through the volume is a common requirement for seismic applications. Note that the rendering of the probe can easily be switched from opaque faces (SoVolumeSkin( C++ | Java | .NET )) to volume rendering (SoVolumeRender( C++ | Java | .NET )) using an SoSwitch( C++ | Java | .NET ) node. Moving a "thick slice" (or "thin slab") through the volume is a common requirement for medical applications. To define a simple ROI, set the limits of the ROI in the box field (and do not set the subvolume field).
Open Inventor draggers (see SoDragger( C++ | Java | .NET ) and subclasses) can be used to move and resize the ROI. For convenience VolumeViz provides a manipulator node, SoROIManip( C++ | Java | .NET ), that combines a region of interest with an SoTabBoxDragger( C++ | Java | .NET ) as shown in the figure below. This tools allows the user to move the ROI by clicking on a face or resize the ROI by clicking on one of the green "tabs".
The SoROI( C++ | Java | .NET ) node can also be used to specify more complex regions of interest with an "exclusion box". This is useful to create cutaway views, as shown in the following figure, or what seismic applications sometimes call a "chair cut". In this case set the subvolume field to the extent of the region to be rendered, set the box field to the extent of the excluded region and set the flags field to EXCLUSION_BOX. Region of interest can also be combined with other clipping nodes described in this section.
|
|
|
Figure: Clipping medical data using the SoROI node. |