Procedural Terrains ================================================================================= .. image:: _static/terrain_proc_intro.png Mirage can generate terrain meshes using real-world measurements, while also make useful vertex groups and applying different features (such as erosion or strata). Vertex groups are generated as needed: groups for **Height** and **Slope** are always created, while **Below sea** and **Plateau** depend on those settings being used. Detail Level --------------------------------------------------------------------------------- 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 `_ .. image:: _static/terrain_proc_detail.jpg .. warning:: 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 will see two new settings: segments and seed grid. Segments This controls how many times the plane will be subdivided. Increasing this setting will increase vertex count. Note that this number will be rounded automatically according to the base grid. Seed Grid Increases the amount of fine detail in the terrain. Mirage's algorithm uses a base grid of white noise to generate the terrain. By default this grid always has a size of 100x100. However you can increase this up to be the same as the number of segments (getting the biggest amount of detail). .. note:: Changing the Seed Grid setting will give you a different terrain, even with the same seed! Generating to heightmap --------------------------------------------------------------------------------- You can also generate a terrain straight to a heightmap without making a mesh. Toggle the "Heightmap only" checkbox to enable this mode. When you switch to Heightmap only you will notice the vertex count below the detail setting becomes a pixel count. You will also notice a new dropdown that lets you select how to split the heightmap. You can choose to split the heightmap into several smaller images. The options range from a 2x2 grid (4 images) up to 32x32 (64 images). When exported these images will be named like "[NAME]_x0_y0" where x0 and y0 are numbers representing the position of the image in the grid. .. image:: _static/terrain_heightmap.png General Settings --------------------------------------------------------------------------------- Size Set the size of the terrain in real world units. This affects the X and Y axis. Max Height Set the vertical scale. The terrain will always start at zero on the Z axis and go up to this value. Note that if you increase the *Size* value you should also increase Max Height, or the generated terrain will be flatter. .. image:: _static/terrain_proc_maxheight.jpg Plateau Create plateaus (or mesas) by clipping the terrain at this height. If this value is higher than Max Height it will not affect the terrain. .. image:: _static/terrain_proc_plateau.jpg Sea Level Make everything below this height flat (set to zero). Note the terrain will be moved down so it rests on 0 in the Z axis. This setting will make the final height of the terrain shorter. .. image:: _static/terrain_proc_sealevel.jpg Roughness Set how coarse the terrain is, and how many small details and perturbations it has. Small roughness will produce very smooth dune-like terrains, while higher roughness add lots of small peaks and valleys. .. image:: _static/terrain_proc_roughness.jpg Alpine Increase difference between valleys and peaks. Peaks become more vertical, while valleys and plains become flatter. .. image:: _static/terrain_proc_alpine.jpg Deformation Make the terrain more "twisty" and increase the amount of ridges. .. image:: _static/terrain_proc_deformation.jpg Seed 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. Modifiers --------------------------------------------------------------------------------- These are optional effects that can be applied to the terrain. You turn them on and off by ticking the checkboxes next to them. Select them to see a short description and their settings. Modifiers are listed in the order they are applied. Material ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. image:: _static/terrain_proc_material.jpg Add a default Cycles/Eevee material to the terrain Add vertex color groups Convert the generated vertex groups to vertex color groups that can be used inside Cycles and Eevee as masks. Add procedural textures Adds default procedural textures to the terrain. This includes custom node groups for Sand, Dirt/Ground, Rock and Snow. If this option is not enabled the default material will include empty image groups instead. Whether `Procedural Textures` is enabled or not, the material will also include several masks to control the coverage of snow/dirt/rocks/sand. These masks are controlled by the `Height Mask` and `Slope Mask` node groups (depending on the kind of texture) and they include a `Colorramp` node to tweak them. The `Settings` frame gives you a central place to modify the masks quickly. The procedural textures are stored in a nodegroup for each. Their settings include a *Vector* input for coordinates, one or more *Color* inputs for the texture, a *Scale* control and a *Bump Intensity* slider that controls the `Bump` output. Each nodegroup outputs a color map (`Diffuse`), a roughness map and a greyscale bump map. Strata ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Make the terrain stratified (step-like) .. image:: _static/terrain_proc_strata.jpg Frequency How many "steps" to use Strength Set how much this effect changes the terrain Invert Slope Invert the direction of the slope between steps Thermal Erosion ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Simulates loosening and clumping of soil because of temperature changes. .. image:: _static/terrain_proc_thermal.jpg 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. Strength Set how much this effect changes the terrain Fluvial Erosion ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Simulates erosion caused by rain. .. image:: _static/terrain_proc_fluvial.png Iterations How many times to run the algorithm River Iterations How many times to run the river carving algorihtm (per iteration) Fluvial Erosion Rate Amount of sediment moved each iteration Rain Amount Amount of rain for each iteration Soil solubility How quickly water is saturated with sediment and stops carrying Deposition Rate How quickly sediment is deposited as water slows down Carrying Capacity How much sediment can water carry Evaporation How much water evaporates each iteration (percentage per grid square) Smooth Falloff ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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. .. image:: _static/terrain_proc_slopes.jpg .. image:: _static/terrain_proc_radial_falloff.png Type The type of falloff: *Linear* or *Radial* Factor The smoothing factor. Minimum Height Set a percentage of height as the lowest the effect will go. Only used in **Linear** falloff Invert Invert the direction of the effect along it's axis. Only used in **Linear** falloff Invert ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Invert the terrain heights. .. image:: _static/terrain_proc_invert.png Blocks ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Apply a voxel-like effect to the terrain. This effect will change the vertex count of the terrain. Note that this can be super slow with large terrains and/or high levels of detail in blocks. .. image:: _static/terrain_proc_blocks.png Detail Level Amount of cubes used to represent the details of the terrain. The lowest setting (4) creates large blocks and results in a lower amount of vertices, while the highest (9) will create small blocks and increase the vertex count. Bevel Add a bevel modifier to the terrain. Diorama ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. image:: _static/terrain_proc_diorama.jpg 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. Extrusion length Height of the diorama cube. This will not change the position of the terrain, the cube grows "down" instead. Add a material Add a default Cycles/Eeevee material Add procedural textures Add basic procedural textures to the material. This includes three custom node groups for different ground levels and underground water. If this option is not enabled the default material will include empty image groups instead. Island ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. image:: _static/terrain_proc_edge_island.jpg Simulates an island by smoothing the terrain and adding an plane with the ocean modifier. The ocean includes a default material and is automatically animated (using a driver). Terrain smoothing Controls the smoothing factor for the terrain. This is the done in the same way as with the **Smooth Falloff** modifier using the radial option. Turbulence Water turbulence. This controls several settings in the material and the ocean modifier (`wave`, `wind velocity` and the animation speed). Foam Enables foam generation in the ocean modifier and the ocean material. Water Color Color of the water in the material.