GPU-Planetary-Rendering icon indicating copy to clipboard operation
GPU-Planetary-Rendering copied to clipboard

How to create continent?

Open dev-bre opened this issue 3 years ago • 7 comments

I am looking into how to generate separated continents instead of a massive land. Having some flat zones helped, even though it still looks like a repetitive amount of mountains with some flat zones.

Is there a way to get some control on how to create separated continents which would feel more organic?

I am trying to play with the noise values, but the overall profile is always the same.

I read the way to do it is to mix multiple noises, but I can't see any good result.

Any suggestion / in-code pointers?

dev-bre avatar Sep 17 '22 07:09 dev-bre

Yep different noise functions and calculations. There should be plenty of tutorials.

simeonradivoev avatar Sep 17 '22 08:09 simeonradivoev

Any chance you could give some guidance? I would be happy to raise a PR once I have something working. Any tutorial is pretty specific to their projects and not generic enough to apply to your project.

dev-bre avatar Sep 17 '22 08:09 dev-bre

If you want something super specific a good start would be Shadertoy but that's not exactly a tutorial. Most tutorials are generic just using noises to generate terrain on the CPU, you have to adapt it to GPU. A procedural generation is an art form in itself.

simeonradivoev avatar Sep 17 '22 08:09 simeonradivoev

Any chance you could provide some guidance? I see I should work on the surface compute shader, but not sure how to achieve the continent looking.

dev-bre avatar Sep 17 '22 09:09 dev-bre

Sorry, that's a bit more complex, unfortunately, I don't have the free time.

simeonradivoev avatar Sep 17 '22 13:09 simeonradivoev

Thanks for looking into this anyway.

dev-bre avatar Sep 25 '22 06:09 dev-bre

https://www.classes.cs.uchicago.edu/archive/2015/fall/23700-1/final-project/MusgraveTerrain00.pdf here is a nice paper on nice-looking noise. http://proland.inrialpes.fr/ this is also a nice project, but it is written in c++.

simeonradivoev avatar Sep 25 '22 08:09 simeonradivoev