L3DT documentation
Large 3D terrain generator

Making a 'designable map' project

Note: This page follows-on from making a new project page.

Algorithm description

If you select a 'designable map' project in the select project type wizard, the algorithm L3DT will use to create the terrian map will be its very own 'Design/Inflate' algorithm, which is explained on the algorithms page.

Executive summary: The design/inflate algorithm starts with a low-resolution design map, in which each pixel represents a block of heightfield pixels (typically 64×64 pixels). Using this design map, you may draw the design of the heightfield, place volcanos, etc. To generate the heightfield from the design map, L3DT 'inflates' the design map to the final heightmap size (e.g. 64× larger) and applies the various overlays you have specified (e.g. volcanoes, cliffs, etc.).

The 'Heightfield size' wizard pane

To start with, you will need to specify the desired size of the final heightfield using the 'heightfield size' wizard:


To change the heightfield height and width (as measured in pixels), either use the slider controls or type in the desired values next to the 'height' and 'width' labels. A few things to note about map sizes include:

  • Non-square map sizes are supported.
  • Non-power-of-two map sizes are supported. Although the sliders step in powers of two, you can enter any number into the edit boxes.
  • The map width and height will be rounded off to the nearest multiples of the design map resolution, as set in the Design map size wizard pane, discussed below.

If you wish to make a map larger than 8192×8192, then you will need to check the split map into tiles (mosaic map) option (discussed next). This increases the size limits to 131,072×131,072 heightfield pixels, or 16 gigapixels.

Please note that the Horiz. scale (m) value sets the geometric detail of your heightfield, and also and determines the physical extents of your map. The default value is 10m, which is suitable for RTS-style games. For FPS-style games, use 1m or less. To better understand what all this means, please have a quick read of the choosing the right horizontal scale page.

Once you're done setting the heightfield size and scale settings, click on the Next » button to proceed to the Design map size pane.

Making a mosaic map

This option is only available in L3DT Professional.

L3DT can make maps up to 128k×128k pixels pixels in size using the mosaic map architecture (see algorithms page). This option is enabled by selecting the split map into tiles (mosaic map) check-box, as shown below:


With mosaic maps enabled, L3DT will handle the map as a dynamically-paged set of map files. The map size limit goes up to 128k×128k pixels, while the peak RAM requirement is capped at a few hundred MB, regardless of how many gigabytes (or terabytes) your map might take-up on disk. Mosaic maps are a Very Good Idea™ if your system doesn't have much RAM (1GB or less), or if you intend to make very large maps (8192×8192 pixels or larger).

The size of each sub-map 'tile' in the mosaic map is set in the Tile size edit box. The default is 512, meaning the mosaic map will consist of a set of map files that are each 512×512 pixels in size. In the above example of a 131,072×65,536 pixel map, the heightfield will be saved as a 'mosaic' of 256×128 map files, each of which being 512×512 pixels in size.

Please note that when it comes time to generate the mosaic heightfield, you will be prompted to save the map group (see below). This is because L3DT dynamically loads/saves mosaic tiles as they are required, and therefore needs a filename to use.

The 'Design map size' wizard pane

After the heightfield size wizard pane (discussed above) comes the design map size wizard pane, shown below:


Here you may choose the HF/DM ratio to be used in the design/inflate algorithm when generating the heightfield from the design map. The default option is 64x, which means that each pixel in the design map will be converted into a 64×64 block of pixels in the final heightfield. I generally don't recommend you change this value, but for the sake of completeness:

  • Small ratios (e.g. 8-32) may be useful when making small-scale terrain (1024×1024 pixels or smaller) if you want to have fine-scale control when manually designing your heightmap, and want the final heightfield to more closely match your design. Small ratios are not recommended for larger terrain maps (i.e. not for 2048×2048 pixels or larger).
  • Large ratios (e.g. 128-256) may be useful when making very large-scale terrain (8192×8192 pixels or larger) if you want to have more broad-brush control when manually designing your heightmap, and want the heightfield algorithm to fill in more of the detail. Large ratios are not recommended for smaller terrain maps (i.e. not for 1024×1024 pixels or smaller).
  • 64x is the best choice, and is generally the most thoroughly tested and tuned version of the design/inflate algorithm.

The heightfield size will be rounded-off to the nearest size corresponding to a full design map block. For example, if you choose a DM/HF ratio of 64, your map sizes in X and Y will be rounded off to the nearest multiples of 64.

The 'Design map parameters' wizard pane

After the dessign map size wizard pane will come the design map parameters pane (shown below), in which you set some 'high level' parameters that L3DT will use to generate your design map, including such things as erosion strength, average altitude, etc.

For an quick guide to what the parameters do, please consult these pages:

Clicking OK will then generate the design map. If you do not like what you see you can make L3DT try again by clicking 'Operations→Design map→Generate map' in the menu. If after tying this a few times you are still displeased with the map you can either edit the design map manually, or else go back to the wizard and try again.

When you are satisfied with the design-map, you may generate the heightfield using the 'Operations→Heightfield→Generate map…' option.

l3dt/userguide/newmap/design_inflate.txt · Last modified: 2017/08/31 05:34 (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