Fast and Gorgeous Erosion Filter
163 points by runevision 3 days ago | 15 comments

runevision 3 days ago
The blog post and the companion video (and shader source code) explain an erosion technique which emulates gorgeous branching gullies and ridges without simulation, while still allowing every point to be evaluated in isolation, which means it’s fast, GPU-friendly, and trivial to generate in chunks.
reply
have_faith 12 hours ago
The video was really well done, very interesting even though I’m not very familiar with the subject. Is this the sort of thing that would go into a game like No Man’s Sky to improve the planet generation?
reply
lynnharry 9 hours ago
In my opinion, any game featuring large-scale, realistic terrain would benefit from a tool like this. You simply can't hand-craft every ridge on a mountain range at that scale. Unless you're recreating a real-world location using satellite and LIDAR height data, procedural filters are the only way to achieve that level of geological detail efficiently.
reply
jadbox 13 hours ago
very cool!
reply
spartanatreyu 12 hours ago
You can play with the interactive example here: https://www.shadertoy.com/view/sf23W1

Click and drag your mouse around the preview to see how fast it runs

reply
pixl97 8 hours ago
I enjoyed Dwarf Fortress random map generation because it simulated erosion pretty well. Small creeks started in the mountains and flowed to the ocean getting larger as it went. Deep valleys and waterfalls too in places made for interesting maps.

Be interesting if we can start getting 3D games with random maps that are realistically generated and have interesting features in the future.

reply
zesterer 3 hours ago
It is worth noting that although the result here is visually impressive for erosion aesthetics, it is also not practical for the generation of physically-plausible lakes and rivers. Proper hydrological simulation is required because non-local information is crucial, something which this shader technique doesn't attempt to simulate. Without that, you're likely to end up with rivers flow uphill and lakes that don't properly overflow from valley passes and suchlike.

Source: I'm a core dev for Veloren, which uses a very detailed hydrological simulation for its world generation. More info here: https://veloren.net/blog/devblog-43/

reply
catapart 12 hours ago
Truly fantastic work! "Holy Grail" is right! Terrain generation just got an upgrade so the tooling is about to start producing some really beautiful results in real time. That's going to be a blast to work with. Thanks!
reply
davidanekstein 9 hours ago
Thank you for writing this up, it was great to see all of the comparisons. Very well put together!
reply
p1necone 12 hours ago
Being able to process separate chunks in parallel is the killer feature for any procgen algorithm - nice.
reply
brcmthrowaway 9 hours ago
Any remember the 90s software Terragen and Vue3d?
reply
iSnow 2 hours ago
I loved playing around with KPT Bryce so much. IDK if it ever was used productively, but it was so ahead of its time.
reply
bananaboy 10 hours ago
Amazing work!
reply
renewiltord 9 hours ago
Great write-up. Results are quite stunning.
reply
nullc 9 hours ago
might be fun to try to find parameters that agree well with the statistics of hi res lidar data, perhaps conditioned on geological maps. E.g. describe a geological history with layers of different formations and a pattern of uplift, and get a terrain which agrees with it statistically.

Without simulating erosion you're not going to get a faithful recreation of any particular geological history, but you could get something that looked consistent by virtue of being consistent with the statistics of that topography.

reply