Jump to content

Planet Terrain Generation


MoonHeadJohn

Recommended Posts

Hi there,

I'm about to enter my final year of study at university and conduct a final year project. I've been toying around with ideas for a while now and the most interesting area I would like to look into is (as the topic suggests :P) efficient planet terrain generation. It goes well with my Games Programming course and brings me a step closer to being able to create realistic worlds.

As anyone will know, the first step towards achieving anything like this is research. Would anyone be able to point me towards good books, research papers or websites to help me develop a better understanding of the methods available for achieving such a thing?

I currently own a copy of Frank Luna's "Introduction to 3D Game Programming with DirectX 11" (a book I'd recommend to anyone wishing to get into the field; it's like gold) which in later chapters looks into terrain generation and tessellation (vital steps towards planet generation), and I've been told that Perlin Noise can be used as well to produce decent results. But I want to look into more methods to evaluate the best method.

Any information or tips aiding my research will be greatly appreciated.

Link to comment
Share on other sites

Well, the thing I know about terrain generation is about Perlin Noise being the most "natural looking" type of noise for terrain generation, and erosion being a powerful but calculation-heavy effect to add to terrain for realistic worlds. Now I don't have anything for you to read, but I'm intrested in how to get procedural generation going.

Also, I've been searching for years a way to input a heightmap to ameliorate the terrain and get better quality results. For example, I have a 512px heightmap of an island, and with procedural generation, get this island in a beautiful 4k wide heightmap.

Anyway, maybe going a bit offtopic, but good luck in your research ;)

Link to comment
Share on other sites

Thanks. Every little bit helps. I'll be asking one of my lecturers for possible resources as well and I have a friend who did this for his project last year (he did a really good job but he didn't seem satisfied with it :P) so he can provide some info.

I suppose this thread could also be used to help others if they're interested or in need :)

Link to comment
Share on other sites

Well, the thing I know about terrain generation is about Perlin Noise being the most "natural looking" type of noise for terrain generation, and erosion being a powerful but calculation-heavy effect to add to terrain for realistic worlds. Now I don't have anything for you to read, but I'm intrested in how to get procedural generation going.

Also, I've been searching for years a way to input a heightmap to ameliorate the terrain and get better quality results. For example, I have a 512px heightmap of an island, and with procedural generation, get this island in a beautiful 4k wide heightmap.

Anyway, maybe going a bit offtopic, but good luck in your research ;)

I think what you may be looking for is something along the lines of the diamond-square algorithm. Basically take your 512x512 bitmap, imagine laying it out on a 1024x1024 grid so you have a data point, a space, a data point, etc. Then to find the mid-point between the two data points, get the average, and add a random amount of say -10% to 10% of the mid-point value to the average to get the final value of the midpoint.

http://www.gameprogrammer.com/fractal.html explains it much better (and with picture examples) than I'm doing right now.

Link to comment
Share on other sites

Yeah, whenever I find THE software to make beautiful landscapes from a start heightmap, I can die happy.

Anyway, I found this in my software research, it may be helpful for you: http://www.float4x4.net/index.php/2010/06/generating-realistic-and-playable-terrain-height-maps/

Contains a pdf on landscape generation. Wait I could try myself! Hmm, should not be that difficult, after all...

Link to comment
Share on other sites

I think what you may be looking for is something along the lines of the diamond-square algorithm. Basically take your 512x512 bitmap, imagine laying it out on a 1024x1024 grid so you have a data point, a space, a data point, etc. Then to find the mid-point between the two data points, get the average, and add a random amount of say -10% to 10% of the mid-point value to the average to get the final value of the midpoint.

http://www.gameprogrammer.com/fractal.html explains it much better (and with picture examples) than I'm doing right now.

Yeah, this is what I want. Get from a low-res heightmap, do whatever interpolation, then export in a larger format.

But I just got my program right when I saw that someone did send a message just before me. The way it works is that it takes the original, scales to the final resolution using linear interpolation, then add some noise and erode the result. With the number got right I created a much more detailed Corsica then what I have originally:

Before:

show.php?id=57440

After:

show.php?id=57442

Not as real as the original one but a good deal of realism and a great accomplishment for a 25 minutes of coding.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...