Fast and Gorgeous Erosion Filter

(blog.runevision.com)

230 points | by runevision 2 days ago

12 comments

  • runevision 2 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.
    • have_faith 1 day 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?
      • lynnharry 1 day 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.
        • tobr 17 hours ago
          I imagine lots of games do already, but offline. Most games don’t have gameplay that requires real-time terrain generation. The idea of generating terrain procedurally is not new, but this technique that gets a great-looking erosion effect in real time is.
        • flohofwoe 15 hours ago
          The tools exists (AFAIK the defacto industry standard is World Creator: https://www.world-creator.com/en/index.phtml - this is for offline generation though)

          PS: TIL that this is a German company: https://docs.world-creator.com/world-creator-story

    • jadbox 1 day ago
      very cool!
  • spartanatreyu 1 day 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

  • pixl97 1 day 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.

    • zesterer 23 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/

      • 20after4 17 hours ago
        Veloren is awesome! Thanks for the work you do, I’ve enjoyed playing it quite a bit. It’s been a while so maybe time to check it out again soon.
        • zesterer 17 hours ago
          Thanks, I'm glad to hear it :) Unfortunately I've not had much time to work on it recently for personal reasons, but the project is still very much active and receives regular updates!
  • catapart 1 day 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!
  • cineticdaffodil 10 hours ago
    Mountains weather directional, meaning rain comes mostly from one direction to press against the mountains and create gullies, so there is a rain shadows on "inner mountains" also there is weathering by gully freezing, so the thin ridges between gullies get freeze cracked to rubble. That rubble again builds up, almost filling the lower slopes of a gully ocassionally.

    Finally there are invisible gullies, layers of rock where the water sips into the rock and caves, leaving all things below gully free.

  • roger_ 19 hours ago
    I was expecting something about the morphological erosion operator but this was pretty cool.

    Some of the techniques here seem to be motivated by physical processes (e.g. rain). I wonder if that could be taken further to derive the whole process?

  • davidanekstein 1 day ago
    Thank you for writing this up, it was great to see all of the comparisons. Very well put together!
  • p1necone 1 day ago
    Being able to process separate chunks in parallel is the killer feature for any procgen algorithm - nice.
  • brcmthrowaway 1 day ago
    Any remember the 90s software Terragen and Vue3d?
  • bananaboy 1 day ago
    Amazing work!
  • renewiltord 1 day ago
    Great write-up. Results are quite stunning.
  • nullc 1 day 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.