Erosion Add-on

by NM-8 in Models

landscape enhancement and flow based uv-maps

Erosion is a landscape enhancer that works on a "per vertex" manipulation of your landscape. Common Landscape generators like ANT Landscape work by displacing noisepatterns. This will always lead to a fractal synthetic look.
The Erosion Add-on  modifies the mesh to a more natural and organic flowing look. Furthermore it generates UV-maps for shading and textures. 5 custom shaders are included in a materiallibrary-scene. they use the maps, that are generated by the script, to achieve complex 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. 



The mesh modification can be applied once or while you are modeling your landscape in iterations, with rising detail.
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 of Erosion offers a few parameters to define the way the surface is eroded.
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.


install the add-on in:
file/user preferences/add ons   click on "install from file"
and choose the python file included in the pack "erosion_nm-8"
activate the add-on and save user settings.

the erosion menu appears in 3d View in the misc-tab of the tools panel (shortcut "T").
for a detailed description of the options have a look at the tutorial video and the product description.

a few Tipps:

new landscape + size: the bigger the size, the flatter the landscape, as mountains will get smaller. If you want to avoid flattness, simply scale the generated mesh in z direction, so that mountains get as high as you want them.

maps wont delete, if you hit map button a second time. as only 8 uv-maps can be stored per mesh, you'll need to remove them manually. currently working on this one, it will be done in the next update (which is for free of course).

if you erode a landscape, and the effect of it is not enough: this could be due to the angles of the faces. the steeper the face, the more modification with erosion will happen. the flatter the face, the less it will change.
the addon works in object space.
So to increase change of your mesh, go to edit mode, scale the whole mesh up in z-axis. go back to object mode, and scale the object down, in the same ratio. this will squeeze the object coordinates along z, and let the add-on think its a very steep landscape, though it doesn't look steep in worldcoordinates.

spikes appear after calculation: sometimes the "high quality" option generates spikes with a displacementmodifier which look strange. you can change the modifiers strength to shrink the spikes, or change the size of the displacement-texture in the texturetab. they appear in denser areas of the landscapemesh. as the smooth modifier would relax inhomogenous densities.

ridged option made the landscape too edgy applying a smooth modifier can help. smooth steps can be set to the same count as erosion steps to see a strong smoothingeffect. 

dont just use the shaders, use the uv maps themself your own way... the u- and v- components of the maps store very useful data.
extrat this data from a "uvmap" node with a "seperate xyz" node.
the x output will give you the u component, and the y output will give the v output.most of the data is stored in a range {0,1} so that they are like factors for node-inputs.
for example the u=znormal-v=height map could be seperated to extract the height (seperate xyz > y-output) and this height value can be used as a colorramp Input, to color the landscape according to its height (peaks grey, valleys green).
Furthermore you can use this factor in combination with other factors. For example subtract the height from the flow-vaue, so that flows in lower areas will be brighter and wider, than flows in peak areas. play with such combinations to generate a unique look. theres really no right or wrong

No FAQ's found for this product.

Item Rating

This item has an average rating of 5 from 3 ratings by the community.

  • dimitris about 2 months ago

    Very Good!!!

  • tcwik 4 months ago

    Nice staff.

  • Niklas Bergh 5 months ago

    Very handy addon.
    The creator is quick to resond and fix it, if there is a bug.
    Some more detailed documentation and tutorials would be nice.

Purchase this item to leave a review!