Fractal Terrain Fun!

Posted by DesertFox on Aug. 1, 2010, 6:43 p.m.

So I saw an article on fractal terrain generation (fractal meaning self-similar at all levels) and decided to make an implementation. A few hours of work later, and viola - I generated this!

Woo terrain!

The colors are based on the height with icy blue being the highest (and in only like 2 spots on the map), white being mostly high, dark bluegrey being middle, and yellow being low. I *did* apply a bumpmapping filter to it afterwards too, just to make it look more awesome.

I also can display the terrain as a greyscale 3d model preview!

This specific terrain model has 1025x1025 vertices, and is made of 2097152 triangles!

I can make much larger terrain maps, but I start running out of video ram. A few iterations higher than that, and I start running out of regular ram :/

The largest terrain map I have generated was 1gb in size, and was 16385 x 16385 pixels. To put that into perspective, if each pixel were a foot wide, the terrain map would cover over 9 square mile. Due to common sense, I have decided against hosting it to show you. I actually had to restart explorer.exe after generating it, because Windows in all its glory has decided that it wants to make a thumbnail of it, and attempts to do so every time I open the folder containing that terrain map. I may have to delete it.

There are still a few quirks in the generation - namely roughness control, and edge-artifacts generated by lack of wrapping implementation. Still, pretty sweet.

That is all.

Comments

shawn 14 years, 2 months ago

so it actually is over nine thousand

noshenim 14 years, 2 months ago

How long does it take your computer to make this? Make it change over time :D

Alert Games 14 years, 2 months ago

what is awesome is putting a vehicle on those maps

blackhole 14 years, 2 months ago

If you have a DX10 compatible graphics card, the vertex shader can read this as a displacement map, and you can actually make it change in realtime.

Alternatively you could compress the entire algorithm into a lookup table plus noise function in the vertex shader itself.

Scott_AW 14 years, 2 months ago

Nicely done.

DesertFox 14 years, 2 months ago

@blackhole - the algorithm is much more complicated than just applying random noise to a pre-generated surface. If it were that simple I'd not be posting it here.

As for real-time modification, you might be able to do that manually - but you wouldn't be able to re-apply the algorithm to 'deform' it again in the manner you are thinking - you might as well just apply a small noise function across the map instead - it is a recursive fractal, and adding another iteration would increase detail and size, but not 'deform' it.

blackhole 14 years, 2 months ago

I wasn't talking about how you generated it, I was talking about deforming it, which could be much simpler.