Introduction to Volume Rendering

Volume rendering is a problem that requires significant amounts of memory and processing power. While computers are becoming more powerful each year, the size of volume data sets are growing just as fast (if not faster). This is not only the result of improving scanners for medical data, but also volume data sets created from supercomputer simulations. Because of this, volume rendering solutions need to be found on today's hardware since waiting for faster hardware results in larger data sets.

There are two main approaches to rendering volume data sets: surface fitting or direct volume rendering. While impressive images have been created with surface fitting techniques, algorithms of this type represent a data reduction method that can only represent surfaces and hard boundaries between volume elements of different types. Direct volume rendering methods such as ray casting, splatting and shear-warp create images directly from the volume data without the use of an intermediate polygonal approximation. For perspective, rendering a 512x512x512 data set requires a minimum of 4 bytes per voxel (512MB). One of the datasets from the Visible Human Project (VHP) is a Computed Tomography (CT) data set that is 512x512x1873 (1.8GB to render) in size. The VHP also has two microtomed data sets that are 2048x1216x1878 (14 GB) and 2048x1216x5189 (38 GB) in size.

To support interactive volume rendering, the entire data set must reside in RAM - waiting for several GBs to be read from disk for each image is not an option. The increasing availability of parallel computers with hundreds or thousands of processors provides a viable solution. For example, the Cray T3E at SDSC has 256 processing elements (PEs) with 128MB of RAM per PE (for a total of 32GB).

Massively Parallel Interactive Rendering Environment (MPIRE)

MPIRE is a distributed, direct volume rendering system that contains multiple interfaces to multiple parallel direct volume rendering engines running on multiple platforms. There are currently two graphical interfaces, a Java applet and a custom AVS (Application Visualization System) module, that provide the same interactive features. The current rendering engines include implementations of the ray casting and splatting algorithms for the Cray T3D/T3E and single processor SGI workstations. MPIRE was developed under a grant from Cray Research, Inc. and is in the public domain.

The following figure shows the architecture for MPIRE. The interface can be run on any platform and starts the session by connecting to renderd, a daemon which provides access to the MPIRE engines on the desired render host. The daemon starts a rendering engine on the render host and provides port numbers for communication between the interface and rendering engine. Refer to Communications Protocol for more detailed information about the MPIRE communication protocol.

This architecture provides flexibility and allows for future expansion. For example, porting MPIRE to a new computer only requires a new rendering engine and a slight modification to renderd to allow it to start a process on the new computer - no changes to the interface would be required. Also, different implementations of volume rendering algorithms on the T3E and other systems could be controlled by the same interface (and renderd), providing a testbed for comparison of the algorithms.

System Requirements

MPIRE is designed to run the interface on a machine local to the user and the rendering engine on a remote system with communication taking place via sockets and signals. The rendering engines currently available include parallel implementations of the splatting and ray casting algorithms for the Cray T3D system running UNICOS version or higher, and the Cray T3E system running UNICOS/mk 1.3.1 or higher, and a serial implementation of the splatting algorithm for single processor SGI workstations running IRIX 5.3 or higher.

Installation Instructions

For detailed instructions on the installation procedure for MPIRE, please refer to the README files provided in the MPIRE software distribution. You will need to install one or more of the MPIRE graphical user interfaces, the MPIRE rendering daemon renderd, the MPIRE rendering library, and one or more of the MPIRE rendering engines.

How This Manual is Put Together

The MPIRE Users Manual (this text) provides you with a concise introduction and general reference to the layout and use of MPIRE's many features. It is designed for users who are already familiar with the basic concepts involved in using AVS and/or Java applets. In addition, basic knowledge of medical data and volume rendering is helpful.

This manual is divided into five sections.


This manual is written with conventions which are designed to clarify, and to draw your attention to certain kinds of information. This is done to help you quickly find documentation specific to a given subject, and to help you better understand many of the concepts involved in using MPIRE.