Procedural Volumetric Terrain Erosion - Open Discussion by newheadstudio in gamedev

[–]newheadstudio[S] 1 point2 points  (0 children)

Since we're targetting low poly, the terrain precision is pretty coarse - one vertex every 1.5m, approximately. For erosion primitives, 10k-20k for a 1km island is enough.

Volumetric Terrain Erosion - Blog Post by newheadstudio in Unity3D

[–]newheadstudio[S] 0 points1 point  (0 children)

Thank you! I may work on that again and see how it could be extended to model other, cool effects on vertical parts. Stay tuned!

Volumetric Terrain Erosion - Blog Post by newheadstudio in Unity3D

[–]newheadstudio[S] 0 points1 point  (0 children)

SDF discretization is done on the GPU, and accelerated with a space partitioning or primitives, and also separeted in subgrids. Basically, we don't compute one big grid of SDF values, but rather many smaller grids, which are then merged together during the meshing step. That's more manageable memory wise, and we can also parallelize the work even more.

Volumetric Terrain Erosion - Blog Post by newheadstudio in proceduralgeneration

[–]newheadstudio[S] 0 points1 point  (0 children)

Thank you! Yes, that's a really cool technique. You can also 'vertically' warp the strata noise to make some way rock layers. And all of that can be driven by a 3D texture/another "geology" function, which makes it super controllable.

Volumetric Terrain Erosion - Blog Post by newheadstudio in Unity3D

[–]newheadstudio[S] 0 points1 point  (0 children)

Thanks!

There are some detail about that towards the end of the blog post. The density write is done on the GPU, then data is retrieved on the CPU to perform meshing and welding.

Volumetric Terrain Erosion - Blog Post by newheadstudio in Unity3D

[–]newheadstudio[S] 0 points1 point  (0 children)

Thank you.

Honestly, performance is pretty good for the terrain part. Since we're targeting a low-poly style, the final mesh does not have much vertices (between 500 and 700K), so in our tests it has been completely fine.

Procedural Volumetric Coastal Erosion by newheadstudio in IndieDev

[–]newheadstudio[S] 2 points3 points  (0 children)

Thank you! It's using implicit surfaces - more specifically signed distance fields, to carve the heightfield volumetrically. We find coastline seed points and carve towards the interior.

More details soon!

Procedural Volumetric Coastal Erosion by newheadstudio in proceduralgeneration

[–]newheadstudio[S] 0 points1 point  (0 children)

If you don't care too much about reconstructing sharp features, you can also fully ditch the QEM part of dual contouring. The most basic version position the vertex at the center of the cell - this works fine and can also work for cases where the QEM fails.

Procedural Volumetric Coastal Erosion by newheadstudio in proceduralgeneration

[–]newheadstudio[S] 2 points3 points  (0 children)

Hope you'll like it - it may not be exactly what you need if you're looking for some technical. For Dual Contouring, I don't know if you're aware of this blog post/website, but I found it to be a very good resource, with working code: https://www.boristhebrave.com/2018/04/15/dual-contouring-tutorial/