You can read an article about RIVA from
IEEE Transactions on Visualization and Computer Graphics
RIVA (Remote Interactive Visualization and Analysis System) is a parallel terrain rendering system we built back in 1994. RIVA can be used as an interactive system to explore and visualize large terrain dataset in 3-D perspective views. It can also be used as an animation tool to generate fly-by movies using high-resolution images and digital elevation.
RIVA has been used in JPL to generate many movies in the last seven years. During the process of making movies, new features were added to the baseline system continuously whenever they are needed. As a consequence, RIVA have been evolved, improved, and augmented. It has many nice features that other terrain rendering sytems don't have. RIVA is finally available for public release via Open Channel Foundation.
The Parallel Rendering Algorithm
RIVA was originally built on the Cray T3D using Cray's shared memory (shmem) library. It was later ported to SGI Origin 2000 using MPI. It is a parallel rendering software using an algorithm, which we called "Ray-Identification" algorithm. In a more familiar term, it is a feed forward sort-last parallel renderer using data space decomposition. We built a lot of optimization mechanisms to make it run efficiently on both large machines and large datasets.
- The dataset is decomposed into small tiles and multiple tiles were allocated to each rendering processors in card-dealing fashion for better load balancing.
- The data were mip-mapped per tile basis on the fly during rendering process based on the distance of the viewpoint to the terrain.
- The data were sub-sampled to produce better images when the viewpoint is close to the terrain.
- Various culling algorithms are used to reduce the amont of data to be renderer per viewpoint.
- Terrain data is rendered using sphrecial projection to allow realistic rendering of large global datasets.
- Input data can be represented as either cylindrical projection or sinusoidal projection; sinusoidal projection is efficient for global datasets both in storage and in computation.
Multiple datasets with different resolutions and different formats can be rendered at the same time, the resulting image is a composition of the multiple datasets with adjustable opacities.
RIVA's GUI module is called Flexible Flyer. Flexible
Flyer is built on top of OpenInventor and OpenGL and is only running on
SGI platforms. It is served as a view finder and controller to the
parallel renderer. It is loaded with a lower-resolution copy of the
input dataset; the data can be navigated using OpenInventor's standard
viewers, i.e., the Examiner, the Walk viewer, and the Fly viewer.
Viewpoints are sent from the Flexible Flyer for final rendering.
The rendered images were either sent back to the workstation for display
or stored to files. Should the images be sent back for display,
they will be displayed on a seperate window with a seperate receiving program.
Flexible Flyer also has a built-in key-frame editor. It is a handy
tool to design and build a flight path for animation.