L3DT documentation
Large 3D terrain generator

Erosion algorithms

Erosion, in its many guises, is perhaps the major shaping force of terrain in the real-world (refer to Exhibit A, below). Unfortunately, erosion processes are highly iterative and therefore computationally slow. Approximations are required!

techshot12.jpg
Exhibit A: Normals map of Baia Mare, Romania (from 8.5m DEM).

Fluvial erosion

L3DT approximates fluvial erosion (that which is caused by the flow of water) using a 'downhill run' algorithm, in which the surface water is discretised into 'drops'. These drops are sprayed onto the heightfield and allowed to run downhill in the steepest direction. A small amount of height subtracted from every heightfield pixel over which a water drop passes. When a drop reaches a local minimum in height and can no longer run downhill, a small amount of hight is added to the heightfield pixel under the water drop, and the drop is deleted.

Both large and small scale erosion is achieved quickly and efficiently in L3DT by inserting several erosion passes into different stages of the design/inflate algorithm. This has the effect of eroding large features (eg. mountains) when the heightfield is low-resolution, and small features (eg. fine erosion channels) when the heightfield is high-resolution (see Exhibit B, below).

techshot11.jpg
Exhibit B: Normals map of an L3DT heightfield.

The end effect is quite acceptable:

alps4.jpg
An eroded heightfield.

Thermal erosion

Sorry, this section is missing.

 
l3dt/algorithms/hf/erosion.txt · Last modified: 2017/08/31 04:29 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki