Generate a terrain from math and magic (actually more math). The procedural terrain engine uses several algorithms depending on the terrain type.
- From Heightmap
Generate the terrain from a heightmap file. This can be any image Blender supports, as well as ASC (Gridded ASCII) and HGT files.
Create a mesh object
Create a heightmap image
The detail level setting controls how many vertex the terrain mesh will have. Increasing the level of detail will increase calculation time and memory usage.
Mirage offers three basic levels: normal, medium and high. There’s also a custom option to fine tune the level of detail (see below)
Terrain meshes are created from a plane subdivided in segments. The vertex count results from how many segments are used. For instance, the Normal level of detail has 128 segments, resulting in 16,384 vertices (128x128 = 16,384).
Normal and Medium are usually good enough for everything (specially when used with subdivision and multires). High is great if you are creating a massive terrain and don’t plan on changing it much.
Mirage will always generate the same terrain for the same seed, so you can use the different detail levels to bake higher detail into meshes with less geometry. Check the Blender manual for more information on baking
Watch out for memory usage when generating many terrains with high detail levels. Blender will keep data around for undo, making RAM usage grow and grow. Save and restart Blender if you see memory usage in the info bar growing too big.
Custom detail level¶
It’s also possible to select a custom level of detail besides the basic three. Simply select Custom in the detail level menu.
You can pick different amount of rows/columns, which creates rectangular terrains.
Settings for Procedural terrains¶
Size of the terrain object in the scene
Scale of the terrain. A smaller scale creates a terrain representing a smaller area (like a few square meters).
Maximum height of the terrain
The noise that generates the terrain is infinite, the actual terrain is only a “window” into it. The offset setting lets you move that “window” in the X and Y axis.
Let’s you rotate the terrain without rotating the object
This is a number used to initialize the terrain algorithm. Different values will produce different terrains, however a specific seed will always generate the same.
- Auto-seed (clock icon)
Use a different seed every time a terrain is generated. The seed value will be updated, so you can un-tick it if you find a seed value you would like to keep.
- Terrain Type
Changes the Terrain type
Generates a cube that can be used to represent a cross-section of the ground below the terrain. This modifier extends terrain generation underground, creating a Diorama-like effect.
The cube is an indepentent object parented to the terrain. It also has all its transformations locked for convenience.
Due to limitations in Blender API, the diorama cube can’t be auto updated when the terrain is modified (for instance sculpted). To make the diroama fit an updated terrain, look for the Update Diorama button in the tools panel.
This setting controls the height of the diorama cube. This will not change the position of the terrain, the cube grows “down” instead.
Types of procedural terrains¶
Mirage uses different algorithms to create different looking terrains. The terrains type setting lets you switch between them. Each terrain type has different options related to the algorithm, and the kind of terrain it generates.
Future versions of Mirage will progresively add more terrain types.
A classic terrain based on fractal noise. Similar to earlier versions of Mirage.
How many bumps and differences in height the terrain has
General roughness of the terrain
Creates smooth rolling hills and valleys.
Height difference between flat areas and hills. This can be used to control how flat the terrain is.
- Flat Land
Increases the amount of flat areas between hills by increasing their slope.
Adds some extra noise to generate smaller bumps and details. A detail of zero creates a silky smooth terrain.
Controls how much the terrain twists on the X/Y axis. This can be used to create hills that “roll” into each other.
Creates rocky, mountainous terrains.
Controls how “peaky” the terrain is. Ridgedness can be used to create mountain ranges.
Controls how “sharp” the terrain looks. It makes the changes in the terrain more abrupt.
Controls the medium level of detail. A higher breakup generates more noise and variation.
Adds extra noise to add more detail to the terrain.
Controls how much the terrain twists on the X/Y axis.
Settings for terrains from heightmaps¶
This input sets the map to use. These can be either heightmaps, STRM, or Gridded ASCII files.
A heightmap (also know as heightfield) is a greyscale image representing elevation data. You can find them online by googling, or from websites like Natural Earth
If you want to know more about heightmaps check this Wikipedia article.
STRM stands for Shuttle Radar Topography Mission. These files usually have a .HGT extension and contain elevation data obtained during the SRTM by NASA and the National Geospatial-Intelligence Agency (NGA).
Gridded ASCII files usually have an extension of .ASC and are plain-text based. That means you can open them in a text editor to inspect or edit. Gridded ASCII is a intermediate exchange format and not something intended for primary input/output. You might find them as an export option in GIS software.
Both STRM and Gridded ASCII files are converted to heightmaps internally. You can find the image files in the UV/Image editor and save them as separate files in case you want to have heightmaps of these files.
To select a file click the Select a Heightmap button and navigate to the file. Note that once you select a heightmap you will see a preview of it, and the button’s text will change to the name of the image file. You can click the preview to see a list of heightmaps you have previously loaded.
How strong the displacement is (vertical scale of features)
Sets the size in real world units
Same as Dioramas for procedural terrains
These are optional effects that can be applied to the terrain.
Terraces is a step-like landform. It consists of many flat or gently sloping surfaces. You can have as little as 2 terraces and as many as 12.
Each terrace happens at a specific percentage of the height of the terrain. A terrace set to 0% or 100% will not create a terrace per se, and will have little effect on the landscape. On the other hand, if there are no terraces at 100% height the terrain will have plateaus. If there are no terraces at 0% the terrain will have a plain at the bottom, at the height of the lowest terrace.
This modifier replaces the old strata modifier, plateau and sea floor settings.
Amount of terraces
- Invert Slope
Invert the direction of the slope between steps
Each terrace also has two settings:
- Terrace #
The slope at which the terrace appears
The smoothness of the slope
Simulates loosening and clumping of soil because of temperature changes.
- Repose Angle
Angle at which the terrain material piles without slumping. Decreasing the angle will flatten the terrain more. It’s also know as the Talus angle.
Set how much this effect changes the terrain
Simulates erosion caused by rain and/or springs. Rain falls randomly over the entire terrain, while springs are located in a specific place and add a constant amount of water. Springs can be used to carve rivers, though they might require a high level of erosion or a lot of simulation time.
How many times to run the algorithm
Amount of rain for each iteration
Amount of sediment moved each iteration
How much water evaporates each iteration (percentage per grid square)
How many springs to use. Each spring has a location, radius and an amount of water to add each time the algorithm runs.
Gradually lower the height of the terrain to zero. This can be done along one or two axis independently (linear) or in a circular way (radial).
For the Linear factor these settings are repeated twice, for the X and Y axis.
The type of falloff: Linear or Radial
For radial smoothing:
The smoothing factor
Radius of the smoothing effect
For linear smoothing:
The smoothing factor
- Smooth Start
Set the position along the axis where the smoothing begins
Invert the direction of the effect along it’s axis.
For Edges smoothing:
- Apply on X axis
Smooth edges on the X axis
- Apply on Y axis
Smooth edges on the Y axis
Creates a blocky terrain
- Block Size
Size of the blocks composing the terrain
Invert the terrain heights.
The strength of the invert effect
Simulates an island by applying a mask on top of the terrain, making parts of it flat.
Seed for the noise mask for the island
Inclination of the slope where the island meets the sea
General height of the island
Noise size. Make the island silhouette more detailed and creates more small islands
Size of the island itself
Roughness of the island noise. Generates a more subtly detailed island.
- Noise Intensity
Strength of the noise mask effect. Increasing this goes from a single large island to several smaller islands.
Makes the terrain tileable by connecting the edges of the terrain. It works by taking opposing edges and interpolating between them, then setting the result of that interpolation as the new edges. Finally, the new edges are blended with the terrain over several columns or rows. This last step can be controlled with the transition setting.
How much to blend the repeated borders towards the center of the terrain. I recommend keeping this high, so it looks more natural.
Generate vertex groups or vertex paint layers based on the terrain’s slope and height