Random Terrain Generation By Cliff DeKoker. About my project ● Incremental development ● Focus...

Preview:

Citation preview

Random Terrain Generation

By Cliff DeKoker

About my project

● Incremental development● Focus on creating height maps that mimic

real terrain● Allow for expansion in terms of file

formatting, methods of generation● Allow for separation of UI and underlying

machinery

My project should be able to

● Generate 2D elevation maps with a somewhat realistic appearance

● Use 3 different kinds of generation.● Use modules that specify different file

formats for saving and loading● Display what has been created

Data structures

● Height maps: 2-dimensional arrays. Each location in the array hold the height for the current position.

Interface mockup

System architecture

Milestones

● Complete simple generation● Complete file IO● Complete UI● -------------Extras● Complete texture generator● Work on more methods of generation

Intro to terrain generation

● Games (SimCity, Civilization, etc)● Simulations (Simulate erosion, changes to

terrain over time, meteor impacts)● Computer aided art programs (Bryce)● Movies ● Dozens of algorithms for doing this

depending on criteria

Existing Solutions

● Overwhelming number of algorithms and examples of terrain generation.

Generation by subdivision

● Start at the four corners of a rectangular map● Pick random heights for each corner● Find midpoints for each pair of neighbouring

points, and then assign a height value to each midpoint. Also known as tessellation

● A version of this is called the Diamond-Square algorithm

● Results: very nice looking terrain that is rough, but not too random.

Generation by averaging

● Start with a 2-dimensional array● Assign a random height value to each point● Set the value at each point to the average of

the original value and surrounding values● Determine some key values to determine

what kind of terrain you have generated● Results: Can be rather noisy looking without

running through a lot of averaging. Too much averaging makes very flat terrain. At least the algorithm is simple.

Generation by simulation

● This method is typically memory and computationally expensive.

● Earth is shaped by (but not exclusively): water, plate tectonics, wind, meteors.

● For a simplified version, you could focus mainly on water.

● Results: can be difficult to simulate all the effects that alter terrain at the same time. Works fine for a small scale area. IE: water carving through a valley.

Conclusion

● Ultimately, you should strive to find a balance between the amount of time you want to take to generate and the quality of the results you are looking for.

Recommended