1. 3D terrain management tool



3MAP - milestone 1.

Multiresolution terrain management tool


1. 3D terrain management tool

Open Source framework and tools for translating terrain data and images to different formats and generating multiresolution versions optimised for online broadband delivery.

Page last updated: 20.02.2003

globeGeoVRML Example
Tested with CosmoPlayer.

flat map of earthStandard VRML Example
Blaxxun Contact recommended.

More eficient binary tree version

Most efficient compact binary tree version

Quick Guide

(please also read the install instructions, Javadoc, design, notes on parameterisation, recent changes)

Rez is a terrain file parser and translator framework. Output can be a single tile or a multiresolution tree of tiles. Rez will sample the input and produce output files at a resolution and size controlled by you. Some of the main design goals of the framework are to be able to handle large terrain datasets, build models unrestricted in size that can be displayed with acceptable performance over the web; and provide a structure that is highly flexible and for which implementers can easily build plugins to process different formats.

Displaying: Apart from a crude java3d and jpeg output, VRML ElevationGrids can be displayed in a VRML Browser, GeoVRML geoElevationGrids can be displayed in CosmoPlayer (and Cortona). Blaxxun Contact is recommended for the standard VRML files because other broswers try to load the whole tree at once. For standard VRML output a Display.wrl scene file is also generated with walk/fly tours and useful viewpoints.

Design: Rez is designed as a multi-adaptor with a central program (Rez.java) which allows the input parser to be plugged in and the output generator to be plugged in. Detailed information on design can be found here.

Example parser, tiler, GUI and scene plugin implementations are provided. See the downloadable examples for an example of a generated model and the files used to generate it.

Inputs: there are sample input parser plugins for:

  • DTED (ParseDTED plugin)
  • gtopo30 (ParseTopo plugin)
  • Etopo5 (ParseETopo5 plugin)
  • Arcview asci (ParseAVAscii plugin)
  • Arcview bil (ParseAVBil plugin)
  • VRML ElevationGrid (ParseEG plugin)
  • GeoVRML GeoElevationGrid (ParseEG plugin)
  • General grid style height fields: the (ParseAVAscii can be used to parse a simple asci grid height field and the bil parser can be used for binary (16 bit float) height fields. However note the header information needed in the install instructions.

Outputs: there are sample output tile generator plugins for:

  • VRML ElevationGrids in quadtree or binary tree form (standard plugin directory)
  • VRML Indexed Face Sets in quadtree (surface plugin directory)
  • Gtopo - a binary height grid format with separate .hdr files
  • Combined VRML tile- for creating one tile from multiple
  • GeoVRML working group GeoElevationGrids (geosurface plugin directory)
  • ContouredJpeg - the height data in colour bands (pretty limited)
  • Height Map - just converts height values to integers then into RGB encoding
  • GreyScale - under development

Other Plugins:

  1. An example Scene plugin (VRMLScene). This generates a Display.wrl file for the VRML output options which has precomputed viewpoints and tours. The Display.wrl will be in a subdirectory named after your input file. If you are not using this you will have to create your own.
  2. An example GUI plugin (SimpleGUI). This generates a simple GUI for modifying parameters which are initially supplied from the command line.

For any comments/questions please contact rez1@ping.com.au.


Rez.zip (17th Feb 2003)
Source code, doc and jar files

SimpleVRMLExample.zip (17th Feb 2003)
Complete runnable example

SimpleGeoVRML.zip (17th Feb 2003)
Complete runnable example

SimpleBtreeExample.zip (17th Feb 2003)
Complete runnable example

Image slicer programs are stored in the tools subdirectory.
These take a large jpeg or GIF file and generate smaller ones to a specified size, like 256x256 in a multiresolution quad/binary tree corresponding to the multiresolution tree generated by Rez.

SmoothImageSlicer should be used for most output options (not needed for jpeg output).

GeoImageSlicer should be used for GeoVRML output.
NOTE: the image passed in to the slicer programs must have fully qualified pathname,
SmoothImageSlicer$1.class needs to be in same directory (or in the classpath).


To work, Rez must have:

  • to run/compile needs Rez.jar in the CLASSPATH (e.g. CLASSPATH = .;c:\java\classes\Rez.jar)
  • an images directory has been generated by an image slicer program that corresponds to the tiler class. The image slicers I use are included in the tools directory (but they are not called from Rez like the Tree and Tile classes).

See the:

  • exampleRunFiles directory: .bat files for a quick idea on how to compile/run Rez and the run-time parameters; and
  • .txt files for examples of configuration files used by the corresponding batch run files.
  • SimpleExample folder for a complete runnable example and its ouput.

The plugins directory contains the parser plugin classes and a subdirectory for the different types of output formats. These contain Tree class, Tile class, Scene and GUI class plugins and modifiable text properties. The latter is to allow changes without having to change code that are not possible through the many run-time parameters.