L3DT documentation
Large 3D terrain generator

Making plateaux

The concept of the plateau overlays used in the design/inflate algorithm is based on the method in Joerg Schrammel's Genesis Toolkit, although the implementation in L3DT is quite different.

Screenshot from L3DTVi2, showing two plateaux (at left and right).

The first step in making a plateau overlay is to make a fractal heightfield about 256×256 in size, where the roughness and amplitude of the fractal falls off to zero with increasing distance from the centre (as with the mountain overlay). The resultant peak in the centre of the overlay is made into a plateau by 'clipping' off the top half (or-so) of the vertical range of the fractal overlay.

This produces a very rough plateau, and some shaping is required to make it look more realistic. The plateau edges are sharpened and the base is widened by applying a quadratic filter. Several of these plateaux overlays are then merged together with slightly different vertical scaling and horizontal offsets to provide a 'stepped' effect, which breaks the monotony of the otherwise completely flat top-surface (see image below).

Once the shaping is complete, the plateau overlay is merged with the heightfield. This operation occurs after all inflation steps, when the heightifled is at maximum resolution. This is because plateaux have sharp features that would look terrible were they to be run through the inflation (a.k.a fractal interpolation) routine. Consequently, plateau overlays are pretty slow.

A closer look at a plateau.

Note that plateaux are handled as a 'special' terrain type in the design map, just like the volcano and mountain peak types. Using the design map brush tool, plateaux may be 'painted' onto the map. Several sizes are available, and are chosen via the 'SpecParam' parameter.

l3dt/algorithms/hf/plateau.txt · Last modified: 2017/08/31 05:50 (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