Hydraulic Erosion Terrain System

Built using my custom engine Klink, this terrain system uses simulated particles of water on a noise-based height map to achieve a more organic effect. The erosion settings are exposed for easy manipulation, and the terrain is easy to reset to a pre-erosion state. This project is currently a part of the Klink Engine project on my GitHub. I am working to separate them. Link: https://github.com/Zaelgar/Klink-Engine

After each cycle of

Dynamic Mesh Normals

After each cycle of erosion, Klink engine recalculates and updates the targetted mesh's normals to ensure accurate lighting for a realistic-looking landscape.

The left image is a

Height Map to Erosion Comparison

The left image is a raw imported height map. The image on the right is the same height map after 200,000 simulated droplets. The nature of the algorithm tends to form crisp ridges where mounds once were. It also smooths out valleys and fills holes lower down as the droplets travel downwards and deposit their sediment.

Fully exposed erosio

Erosion and Height Map Settings

Fully exposed erosion values can be modified during runtime to experiment with different erosion patterns and starting height maps. Depending on the size of the terrain and the density of the mesh, a large number of droplet simulations may be required. The erosion iterations are a highly parallel task, well suited for multiple threads or compute shader conversion. A worthy task for the future of the project.

After each cycle of
The left image is a
Fully exposed erosio