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\$
7
  • 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\$ Jun 26, 2013 at 3:40
  • \$\begingroup\$ What is a 2D mountain range? a side-scroller? \$\endgroup\$
    – Justin L.
    Jun 26, 2013 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
    Jun 26, 2013 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\$ Jun 26, 2013 at 4:57
  • \$\begingroup\$ @CongXu Such as? \$\endgroup\$
    – Sidar
    Jun 26, 2013 at 10:19

2 Answers 2

8
\$\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\$
2
  • 1
    \$\begingroup\$ One more question: What would the something be that creates those ranges? Thanks for the link to the library! \$\endgroup\$
    – Numeri
    Jun 26, 2013 at 19:26
  • 1
    \$\begingroup\$ Ridged multifractals, as explained in the libnoise tutorial which is linked in the answer. \$\endgroup\$
    – Exilyth
    Jun 26, 2013 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\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .