Erosion Add-On

by NM-8 in Models

The Erosion Add-on  modifies the mesh to a more natural and organic flowing look. Furthermore it generates UV-maps for shading and textures. 
Custom shaders are included in a materiallibrary-scene. 
Designed, to get flow based shading of the mesh.
So you could generate your landscape with any other tool or with the built in "new landscape" function, and refine it by the simulation of erosion. 


There are many landscape-products on blendermarket claiming to be "realistic". Especially the higher priced ones dont even consider natural erosion behaviour or flows of any kind, but rather use a bunch of noise textures to displace a landscape.
This is the only Addon with erosion simulation and it works on any mesh, even Suzanne can be eroded.

Rocks, Caves, Canyons and Mountains. The mesh modification can be applied once or while you are modeling your landscape in iterations, with rising detail.
Vegetation can quickly be applied, by automatically creating a particle system and paitning the density vertex group to distribute trees and plants conveniently.
Long story short this offer is a no brainer looking at other price tags.

Apply it to the whole mesh or just a selection of vertices.
A good way to use it, is to add modifiers (subdivision+displace), apply them to the mesh, and erode the mesh afterwards. then again subdivide, displace, and erode, and so on...once your mesh is fine, you can map it, to generate uvmaps that shade the landscape according to the flow of debris downhill.

The menu:
You can "mouseover" them, to see a description.


  • "Size" and the "new landscape" button are for generating a random landscape from scratch. But you can apply Erosion onto any mesh you want!
  • "mesh" lets you select your landscape/mesh. be sure, that the normals of the mesh are flipped upwards. landscape generators like ANTlandscape flip the normals downwards sometimes. "selected" only modifies the selected vertices, and leaves the unselected in place (except if optimize is checked).
    "border" will keep all mesh-border-vertices in place, for tiling purposes.
  • "steps" is the number of "centuries" which the erosion shall be simulated. the higher the longer the calculation will take. A vertexcount of 100.000 vertices will take roughly 5 minutes of calculation.
  • "rivers" will determine how many additional thin flows will run down from the peaks .
  • "wind" and "angle" define the strength and direction of the wind. it will influence both: the vertice-offset due to erosion, and the uv-map coordinate of the z-normal channel (which is useful for sand and snow laying on the landscape)
  • "optimize" will subdivide and decimate the mesh to get an efficient topology. this is recommended if you don't care about the exact position of your mesh-vertices and topology.
  • "camtrack" will subdivide the mesh with respect to the distance from the camera. this is very useful to save polycount if the landscape isn't for interactive use, but has a fix camera track to be rendered from.
  • "vertcount" limits the optimization to avoid too high polycount. usually some value between 150.000 and 1.000.000 is convenient. higher mesh resolutions will take very very long to calculate. (up to an hour for 4 million polygons)
  • "forest" will generate particles for trees or rocks.
  • "hq" will add a subdivision modifier and a displace modifier after the calculation. this is to save mesh resolution and get smooth uvmap-flows.
  • "vgroup" generates some vertex groups for further work on the landscape, like fracture-vertices, "forest" vertices (be sure to check vgroup if you generate forrest particles) peaks etc.



click on "erode" button to manipulate the vertices of the chosen landscape. before you click it, you might want to open the window/toggle system console to see the progress of the calculations. but dont close the system console, as it will close blender also! ;)

click on "map" to generate uv-maps for the material. see the progress in the system console.

the landscape in the image above was mapped and textured using the low res texture on the left. Complex uvmap channels vanish the need for detailed texture work, leaving the texture to a simple gradient from "clean" stone to "dirty" debris. the uv-map is doing the work of coloring each vertex with the right color, so that a natural impression of sand flowing down is achieved.  precisely speaking the v coordinate in the uvmap is for the flow and the u coordinate for the gathering of dirt.




as shwon above ceilings of caves and tunnels are calculated just like real ceilings, leading to small spikes and flows simulated with a global downward gravity.




In the shaders called erosion_nodegroup, there are some further values:
colors (rock, dirt, flow, gather) are the different colorcahnnels, that are masked according to their names. use textures, or colorramps here.

bump is the strength of stones bump. and bumpcover is the influence the stones have on the colors.

offset will let you adjust the amount of gathering.

heightfactor will offset the top-peaks different than the lower valleys.

scale is the scale of the stones-texture.


Another shader is the erosion_coloRamp shader. It has one ColorRamp to vary the color along the rock-dirtflow-dirtgather direction of the landscape. a flow value and a scale value for stones will help to vary the shading.
This is the simple-shader solution, while the erosion nodegroup shader is the complex one.


Additional there are two shaders with texturenodes, as an example how to use image textures with the generated uvmaps. some simple gradient textures are included in the pack.