3
\$\begingroup\$

I've been learning about Procedurally Generated Content lately (in particular, Perlin noise). Perlin noise works great for making things like landscapes, height maps, and stuff like that. But now I am trying to generate structures more like mountain ranges (in 2D, as 3D would be way over my head right now) or underground veins of ores.

I can't manage to manipulate Perlin Noise to do this. Making a cut off point (i.e. using only the tops of the 'mountains' of a heightmap) wouldn't work, because I would get lumps of mountains/veins. Any suggestions?

Thanks,
Numeri

\$\endgroup\$
  • 1
    \$\begingroup\$ This question is a bit vague - can you be more specific about what you want to create, and why Perlin noise isn't doing it for you? Perhaps you could post a screenshot of the results you're getting now, and a drawing or photo-reference of what you're trying to achieve? That being said, you should have a look at Giliam de Carpentier's "Scape" articles on advanced terrain generation using Perlin noise as a base. \$\endgroup\$ – Nathan Reed Jun 26 '13 at 3:40
  • \$\begingroup\$ What is a 2D mountain range? a side-scroller? \$\endgroup\$ – Justin L. Jun 26 '13 at 4:18
  • \$\begingroup\$ Sorry for being vague! I mean like mountain ranges viewed from above. In my sojourns into perlin noise, all I have managed to generate are peaks and valleys, whereas I'm looking to connect peaks into a line. Thank you for your time! \$\endgroup\$ – Numeri says Reinstate Monica Jun 26 '13 at 4:33
  • \$\begingroup\$ I think you are incorrect in your presumption - that you should manipulate Perlin noise into making mountain ranges. It will be much easier to combine it with another technique that makes mountain ranges. \$\endgroup\$ – congusbongus Jun 26 '13 at 4:57
  • \$\begingroup\$ @CongXu Such as? \$\endgroup\$ – Sidar Jun 26 '13 at 10:19
7
\$\begingroup\$

Perlin noise is great for many things - localised terrain, clouds, waves - but when it comes to mountain ranges it's somewhat lacking. The problem is that the output looks like, well, noise. Mountain ranges however are the result of tectonic plates pushing against each other, forming ridges, and so look somewhat like ripples on fabric or paper that's scrunched inwards, albeit very noisy:

A ridge

enter image description here

This is what real mountains look like when you're far enough up

enter image description here

There's no way a single Perlin noise generator, no matter how well tweaked, will recreate these features. Hence my suggestion to use a multi-phase generator, with something to create those ranges, and Perlin noise to add the fine detail like peaks.

Have a look at libnoise, an open source terrain generation library. It uses a composite generator, which includes one that generates ridges. Here's a sneak peek of what it's capable of:

enter image description here

Now compare this with a typical Perlin noise generator, and you can see how it's much better at resembling mountain ranges. This just looks like blobs to me:

enter image description here

\$\endgroup\$
  • 1
    \$\begingroup\$ One more question: What would the something be that creates those ranges? Thanks for the link to the library! \$\endgroup\$ – Numeri says Reinstate Monica Jun 26 '13 at 19:26
  • 1
    \$\begingroup\$ Ridged multifractals, as explained in the libnoise tutorial which is linked in the answer. \$\endgroup\$ – Exilyth Jun 26 '13 at 20:12
4
\$\begingroup\$

You might want to have a look at Inigo Quilez' website. Especially his article on advanced perlin noise and terrain raymarching could be interesting.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.