Project 1: View-Dependent Terrain

Assigned: Thursday, September 6

Due: Tuesday, October 2 before 5:00pm




Getting Started

I am providing you with a simple demo application to help you get started on this project. It is a very simple viewer that loads in a terrain file and a texture image, and lets you fly around it. It is written using my ligfx support library and the FLTK GUI toolkit. If you want to compile the source code, you'll need to follow the 318 directions for setting up VC++.

You can make any use of this demo program you like, including copying the code or completely ignoring it.

Requirements

You will implement a program to allow a user to fly over a complex terrain data set in real-time. This will require you to implement some sort of view-dependent refinement scheme for generating polygons to render. You may use any of the 3 VDR schemes discussed in class, or you may try to come up with some alternative method. In any case, be sure to fully document the approach you have taken. Your program should demonstrate the following required functionality:

View-Dependent Refinement
Your program should allow real-time interactive display of the terrain data set. It must achieve this by using view-dependent tessellation of the full-size terrain dataset. At minimum, you should be able to consistently display 20,000 triangles per frame at interactive rates.

Error Control
You may experiment with different view-dependent criteria, but you must implement some sort of screen-space error control. The papers discussed in class present 3 examples of possible criteria.

Polygon Budget
You should be able to control the number of polygons per frame that your system is displaying. For a given fixed number of triangles, your software should try to generate some good approximation of the surface using that number of triangles.

Frustum Culling
Your program should perform frustum culling, not drawing triangles which lie completely outside the view frustum.

Sample Data

For this project, we will be using a Digital Elevation Map (DEM) of the Grand Canyon produced by the USGS. The source for this particular version of the dataset is the Georgia Tech Large Models Archive.

The dataset I am providing you consists of 2 TIFF files: (1) a grayscale height map and (2) an RGB texture. Visually, these images look something like this:

     

You can download the Grand Canyon data as one complete 19 MB Zip file:

  • Complete data set
  • or as individual files:
  • Height data at: [4096 x 2048] [512 x 128] [128 x 64]
  • Texture data at: [4096 x 2048] [512 x 128]
  • Handin

    You must hand in all the following things:

    1. All source code that you have written.
    2. An executable that works correctly on the machines in 1265 DCL.
    3. A README.txt file which provides the details of how your implementation works.
    4. Any other file necessary to make your software compile.

    To actually hand in your project:

    1. Package all your files in a single archive (either .zip or .tar.gz are acceptable).
    2. E-mail this archive to me at garland+handin@cs.uiuc.edu prior to the handin deadline. If your project is too large for e-mail, you can contact to make other handin arrangements.

    Last modified: Thu Sep 06 13:21:57 CDT 2001