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 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 is equipped with a GUI program 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.

Since its birth, many new (or not that new) features have been added and some old ones have been removed.  Among them are:

  • Added zbuffer composition for multiple datasets
  • Added time-sequence dataset animation
  • Added out-of-core rendering capability for large datasets
  • Added some simple shader that only works with global views
  • Added on-the-fly shaded relief calculation
  • Added line-of-sight masking layer (a "not that new" feature, hasn't been used for long time)
  • Removed Hippi communication and added socket communication
  • Added support for rendering very large images (such as 3000 x 4000 or higher)
  • Added input routines to read non-RIVA format input files (using SGI's Image Library)
  • Ported it to the Cray T3E, then the SGI Origin 2000
  • Replaced shmem communication by Unix shared memory API and MPI synchronization
  • Added a 2-D map display utility to assist the design of the flight paths
  • Improved the key frame editing and preview feature in the Flexible Flyer
Privacy / Copyrights
FIRST GOV   NASA Home Page This page, http://pat.jpl.nasa.gov/RIVA//public/RIVA/index.html, is maintained by Peggy Li and was last modified Friday, 15-Aug-2003 11:54:00 PDT, CL 03-2169
spacer