Code for fractal heightmap generation?

Started by
3 comments, last by Titan. 10 years, 8 months ago

Fractal heightmap terrain is a common algorithm. I was wondering if there was a pre-existing code library, or even just a snippet, that did this? It could save me a few days of experimentation if there's already something out there I can use and modify.

Thanks!

10x Faster Performance for VR: www.ultraengine.com

Advertisement
I haven't done this type of thing in a while, but if I had to do it now I think I would use libnoise and simply sample from a noise function to generate terrain.

For terrain, go with ridge first.

If you don't want to muck around too much with noise you can check out the mid-point displacement algorithm (described here: http://www.gameprogrammer.com/fractal.html with height-map source here: http://pastie.org/1927076 ). Otherwise (as the above posters can tell you) you can check out perlin noise ( http://mrl.nyu.edu/~perlin/noise/ ) and use a simple fractal algorithm like fractional brownian motion like so:


float fBm( Vector3 vertex, float H, float lacunarity, int octaves )
{
float value = 0.0;

for (i=0; i<octaves; i++) {
value += noise(vertex) * pow( lacunarity, -H*i );
vertex *= lacunarity;
}

return value;
}

to create cool organic patterns. Creating a height-map is as simple as using the result of an algorithm like that as a color and setting a pixel on your desired map to that color...

Good luck.

It's not exactly what you are asking for, but a generation of heightmap technique based on hydrology as been presented at the siggreph 2013:

Terrain Generation Using Procedural Models Based on Hydrology, (paper)

It don't looks too complicated, so if you need a finite, precomputed terrain, I think it could be a good idea to consider it.

This topic is closed to new replies.

Advertisement