Abstract:
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.
For instance,
- 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.
The Functions
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.
http://www.openchannelsoftware.com/projects/RIVA