Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Questions on Procedural World Generation - I can't generate more than hilly terrain

I've been trying to generate a 3D Minecraft world with noise maps, but no matter how I overlap sounds, I can't get a noise map that has both flat areas and mountainous areas.

So far I tried overlapping different noise maps, with varying results, and my best result looks something like this: https://imgur.com/0N2x5Ck.png (Sorry, didn't let me embed it here)

It looks "okay" but the closer you look the more you can see how there are 2 different noise waves, and the transitions are horrendously rough. And the whole world is just that kind of terrain, with no significant variation.

I'm not sure what aspect of noise I need to vary. I've tried tuning the scale, frequencies and generally just hacking it with anything I can think of, including:

  • Making negative sounds 0 (sort of worked and the spaces between each mountain increased, but it wasn't enough and didn't help with blending)
  • Averaging different noise maps (made a really flat world with a very slanted gradient. Looked terrible)
  • Capping values that were too high or low (Made some plateaus, but there's ultimately still no far-reaching flat ground, still has an islands look)

Anything I did so far always, without fail, looks like a petri dish (https://imgur.com/HgNyXUu.png)

To reiterate, I'm trying to get a final noise map that includes:

  • Flat, low-lying land
  • Flat-ish Ocean floor that can reach medium depth to deep-depth
  • Mountainous terrain

all in the same map, smoothly. How do I do it?

UPDATE: Minecraft's inbuilt SimplexOctaveGenerator doesn't seem to be properly generating octaves. I replaced it with a generator library I found (https://github.com/Auburns/FastNoise/). The octaves are now working as intended, and I no longer have a petri dish look, and I've achieved some flat land and deep oceans. Now all that's needed is mountainous terrain. (https://i.imgur.com/mKIpoaU.png)

like image 542
Hex_27 Avatar asked Nov 07 '22 10:11

Hex_27


1 Answers

Try combining noise maps with different frequencies by adding up or even multiplying. You should be able to get some larger terrain blocks by having a low frequency map.

like image 107
Adder Avatar answered Nov 12 '22 18:11

Adder