Realtime Procedural Terrain Generation

Started by
2 comments, last by Vorpy 16 years, 8 months ago
Hi peeps, I summon your help :) I'm actually coding a heightmaps Generator using diamond-square method. Everything goes fine with that. Then I generate a Voronoi diagram to combine it with my heightmap. I think it's still ok, but I read that if i wanted a more realistic heightmap with a better erosion score, i should use a pertubation filter. And here is my problem. I have no clue how to implement this filter and even how to combine it with my generated texture. Here are some examples of what I did I read also that I should use one third of voronoi diagram and 2 thirds of dimaond square method. Actually I do 1/2 Voronoi and 1/2 Diamond Square. So I hope you understood what I wrote coz I'm not english, if you need more informations, tell me :) Thanks for your help
Advertisement
Hello,

Your English is quite good, actually! And I think it is not too surprising.

Now, I'm no expert in procedural terrain generation; however, I can recommend some resources. First, there are a number of very fine open source, freeware, and commercial terrain generation products that probably offer some insight. Here are a few pages where you can find listings for the various tools:

Ogre DCC Tools
Virtual Terrain Project
Pandromeda (their MojoWorld product is a "multifractal" terrain generator extraordinaire)

I know that's a lot of material to scan, and that only some of it might be helpful...a couple of more directly useful links, I think...The first is Ken Musgrave's home page...he is one of the guys behind Pandromeda's fine product:

Ken Musgrave's Home Page

...in particular if you dig for a while, somehow eventually you will find his Ph.D dissertation...Chapter 2 on terrain modeling is of direct interest:

Ken Musgrave's Dissertation

Then, there is the website for a book:

Texturing & Modeling: A Procedural Approach

Musgrave was one of the authors, and the book covers some ideas from this dissertation and beyond...there is a link to the source code on that page.

Hope it helps!
Graham Rhodes Moderator, Math & Physics forum @ gamedev.net
Oh! many thanks, Ken Musgrave's Dissertation looks very good. I gonna make a look :)
Googling for "perturbation filter" brought me to this page where the guy who wrote the paper about using voronoi diagrams, noise generated by the diamond square method, and maximizing the erosion score actually posts a snippet of source code that does the perturbation filtering and explains how it works.

He also released the source code for the entire procedural terrain generation module, available here, but I think most of it is straightforward enough that looking at source wouldn't be necessary.

The perturbation filter randomly distorts the input image by shifting around pixels by an offset determined by a noisy function. It's a distortion effect, like the twirling, expanding, and pinching effects available in some paint programs. In this case the distortion is somewhat random.

This topic is closed to new replies.

Advertisement