Random Terrain Generation By Cliff De Koker About
Random Terrain Generation By Cliff De. Koker
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 2 D 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 (Sim. City, 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.
- Slides: 17