RView Rendering Tool


Background/Technical overview

The rendering functionality in rview is provided by a general purpose ray casting engine built onto the coordinate system of the volume slice display. As with the slice display, it is completely software based and is therefore NOT VERY OPTIMIZED OR FAST!. It was written in a generic way on top of the slice display system (basically 20 lines of vector loops in C++... each slice display pixel now casts a ray orthogonal to the view plane). It produces renderings through the same volume data viewed by the slice display by casting rays for each screen pixel in the rview display window. Therefore.... rendering time is very dependent on how big the window is. As with the basic rview display, as CPU speeds have increased (since 1994!), the renderer is becoming more useful (render times can be significantly less than one second for a reasonably sized window and a reasonably sized (256x256x128) MRI data set on a fast (2GHz +) machine... but this is dependent on the rendering options!). However, you can use the rview display to produce approximate small renderings with a small window and then enlarge the window to get a high resolution image (for slides etc). Because the code has been written in a general (but slow) way  it has been relatively easy to add functionality and rendering features (eg normal fusion iso-surface rendering with cut planes) which would be more difficult to add if the renderings were more optimized for hardware.

Rendering Tool Control Window


Rendering displays are controlled by the rendering tool (Selected from the options->Tools Menu):

render tool
The Rendering Tool consists of 6 main sections: The top Display Layout section in the tool window contains a set of buttons that select basic rendered display layouts allowing different types of 3D to 2D renderings. The Cut Volume section allows a rectangular subvolume  defined in the coordinate system of the reference image to be removed from the rendered scene. The intersection of this volume with the objects defined by the surface volume have surfaces coloured by the underlying reference image intensities. The Surface Control section allows the definition, loading and saving of surface volume images. The Normal Fusion section of the render tool allows the control of normal fusion rendering.



Display Layout Options (top Box
)

M.I.PS.

The top two modes create Maximum[or Minmum] intensity projections through the data. These are useful for looking at sparse structures within data such as angiography or statistical maps. These display types simply project rays through the dataset using the current view geomertry. To modify the data display colours simply use the colour tool. To modify the display orientation use the display slice control tool to set the rendering view angles. MIP specific controls are set in the MIP control area at the bottom of the rendering tool. This allows the selection of Maximum or Minimum (useful for negative data) to project, the choice of the displaying the current cut volume planes used and finally the hash pattern spacing on the displayed cut planes.
The MIPS are controlled by the MIPS options box. This controls whether the Maximum or minimum value is plotted, whether the cur plane volume os rendered andthe spacinf of the hash pattern used to render the cut plane.

An example is a Maximum Intensity projection rendering rendering of:


ISO-Surface Rendering

Surface renderings of the iso-intensity surface of a volume can be produced using this option. There is a separate volume Image data set which is used to hold a surface image volume. These are controlled by the 'Surface' controls: Surface data sets can be produced from the binary volumes created using the segmentation tool.

ISO Surface Rendering
Example ISO Surface Rendering of a Brain Surface Extracted Using the Morphology Segmentation Tool


Normal Fusion




Speed/Quality


This controls the tradeoff between speed of rendering and quality of the display. To allow a faster update of large display windows, rview can be made to cast every other ray vertically and horizontally (1/4 of rays) at the trade off of a pixelated display. By default rview switches to a fast, ray skipping mode. Switching between the two modes can also be done with a keyboard shortcut using the key '
l'. An example of the difference between the two rendering types is shown in the two enlarged images below:

rq1rq1