Terrain By-Example

Adding detail to terrains by hand or with paint tools is a long and tedious process. Adding detail with procedural methods is faster but is more difficult to control. This work introduces a new technique of terrain synthesis that uses an existing terrain to synthesize new terrain. To do this we use multi-resolution analysis to extract the high-resolution details from existing models and use them to increase the realism of a synthesized terrain. Our synthesized terrains are more heterogeneous than procedural terrains, are superior to terrains created by texture transfer, and retain the large-scale characteristics of the original terrain.

This web page uses javascript to perform mouseovers (images that change when you pass your mouse over the image). If you are using Internet Explorer to view this page be aware that this behavior is disabled by default. If you would like to enable this behavior, click the yellow bar below the address bar and "allow blocked content."

Concept & System Overview


Pipeline of the by-example synthesis process.


A diagrammatic representation of the process of extracting and applying multple levels of details. The * marks the original resolution of the base and target terrains. The process depicted in the diagram starts with the original target terrain in the top right corner. Each downward arrow indicates an iteration of reverse subdivision being applied. Two sets of details are extracted (each set of details is comprised of row details and column details) and the reverse subdivision is stopped at this point because the target's resolution matches the base terrain's resolution. We then follow the process of performing two iterations of subdivision up the left side of the diagram. The details extracted from the target are applied, in reverse order, to the base terrain.

Matching

Interactive Matching

Video of interactive matching (encoded with DivX).

Experimentation

Trial 1

This trial tests the effectiveness of terrain by-example on a user-created base terrain. This trial also explores the use of different target terrains, showing the impact of the target on the terrain by-example result.


This is the base terrain used in the first trial. We created this 20 x 20 terrain using a paint program.


These are the two target terrains used in the first trial. The target on the left is a 30 NED from Kansas, USA (full size).
The target on the right is a 30m NED from the Rocky Mountains in Utah, USA (full size).
Mouseover to see colored by elevation.


The results of Chaikin by-example synthesis using the base and the targets above.
The result on the left used the Kansas target, the result on the right used the Utah target.
Mouseover to see terrains colored by elevation.


Comparison between results of Chaikin by-example synthesis and fBm synthesis. The result on the left is by-example using the Kansas target, in the middle is the fBm result, and the result on the right is by-example using the Utah target.
Mouseover to see terrains colored by slope.

Trial 2

The second trial tests the effectiveness of terrain by-example in adding detail to a real, low resolution terrain.


This is the base terrain used in the second trial. This is a 90m SRTM from Nevada, USA.


The target terrain used in the second trial is a 30m SRTM from Utah, USA.
Mouseover to see terrain colored by elevation.


The second trial result of Chaikin by-example synthesis using the base and the target above.
Mouseover to see terrain colored by elevation.


Comparison between results of Chaikin by-example synthesis, real data, and fBm synthesis. The result on the left
is the by-example result, the middle terrain is 30m SRTM data of the same area, and on the right is the fBm result.
The real data covers a slightly larger area resulting in the different ridge in the top-left corner.
Mouseover to see terrains colored by slope.

Comparison between the by-example result on the left (full size) and fBm synthesis result on the right (full size) from a different viewpoint.

Trial 3

The purpose of the third trial is to test the performance of by-example synthesis on a very heterogeneous terrain. We also compare by-example and fBm results to real, high-resolution data of the same area.


The base terrain used in the third trial is a 30m NED from the Utah Salt Flats, USA (full size).
Mouseover to see terrain colored by elevation.


The target terrain used in the third trial is a 10m NED from elsewhere in the Utah Salt Flats, USA. Colored by elevation.


The result of Chaikin by-example synthesis using the base and target terrains above (full size).
Mouseover to see terrain colored by elevation.


10m NED of the same area as the base (full size).
Mouseover to see terrain colored by elevation.


The result of fBm synthesis using the base above (full size).
Mouseover to see terrain colored by elevation.

Video of a fly-through the Chaikin by-example synthesis result (encoded with DivX).

Comparison of By-Example Techniques

Here we repeat the by-example synthesis of the first trial with multi-fractals by-example and compare this result to the Chaikin by-example results.

The results of multi-fractal by-example synthesis using the base and the targets from Trial1.
The result on the left used the Kansas target, the result on the right used the Utah target.
Mouseover to see terrains colored by elevation.


The results of Chaikin by-example synthesis from Trial 1. The result on the left used the Kansas target, the result on the right used the Utah target.
Mouseover to see terrains colored by elevation.

Comparison to Texture Transfer Techniques

In this section we compare by-example synthesis to two texture transfer techniques (Image Quilting by Efros and Freeman and Image Analogies by Hertzmann et. al). We perform texture transfer using the height encoded images shown below.

The base terrain, a 30m NED from Harmony Flats, Washington USA.


The target terrain, a 10m NED of Mt. St. Helens, Washington USA.


Height encoded images of the target. The left image is the 30m NED before
resampling(full size), the right is after resampling (full size).


Height encoded image of the 10m NED of the target terrain (full size).


The result of Chaikin by-example synthesis.


The result of Image Quilting, height encoded image is on the left, the rendering by our system on the right (full size).


The result of Image Analogies using Laplacian filters, height encoded image is on the left, the rendering by our system on the right (full size).


The result of Image Analogies using Guassian filters, height encoded image is on the left, rendered by our system on the right (full size).


The result of Image Analogies using Laplacian filters, height encoded image is on the left, rendered by our system on the right (full size).

Examination of Matching Effectiveness

Here we highlight two random blocks and their matches on the resulting and target terrains from Trial 1 to show the quality of matches produced by the automatic system.


The resulting and target terrains from Trial1. Two blocks have been highlighted, one red, the other blue (full size). The blocks on the target terrain are the blocks that have been matched to the blocks on the result terrain.


Top-down zoom in on the blue blocks (full size). As before result is on the left, target on the right.


Zoom in on the blue blocks (full size). As before result is on the left, target on the right.


Top-down zoom in on the red blocks (full size). As before result is on the left, target on the right.


Zoom in on the red blocks (full size). As before result is on the left, target on the right.

Examination of Changing Block Size

As mentioned we have provided a default block size. In the third trial, although the results are adequate, decreasing the block size improves the results. The decrease in block size increases the time necessary to complete the synthesis.



Comparison between of two areas of terrain synthesized with the default block size, 36 the first iteration, 72 on the second (left) with
terrain synthesized with a block size of 10 (right). This synthesis uses the same base and target terrain as used in the third trial.
Synthesis with the default block size was ten times faster than using block size 10.