Procedural Generation of Multi Biome Landscapes

This thesis deals with the procedural generation of big, plausible looking multi biome landscapes including the placement of assets. For this purpose, a pipeline based system was developed which is based on a reasonably simplified climate simulation and uses digital elevation models for realistic terrain details. The implementation utilizes the Unreal Engine 4.

Description

Advances in computer technology and increasing usage of computer graphics in a broad field of applications lead to rapidly rising demands regarding size and detail of 3D-levels and landscapes. Creating realistic and/or pleasingly looking terrains spanning hundreds of square kilometers and filling them with millions of assets is an expensive and laborious task. In consequence procedural generation is often used to reduce the manual work for the designers. However, a remaining challenge is to design a procedural system which achieves good results in the important but mutually opposing four requirements:

Furthermore, procedurally generating landscapes composed of different biomes is a scarcely explored topic. The challenge is to produce realistic biome distributions and organic transitions.

The goal of this thesis was to design and implement a procedural system which creates big multi biome landscapes, fills it with a vast amount of assets and accomplishes a good compromise of the above-mentioned requirements. To achieve this, different kinds of procedural techniques and algorithms - synthetic, physically based and example based - were combined. The developed procedural system is based on heightmaps and executed offline (not at runtime). This leads to a high compatibility to external applications and provides the opportunity to manually modify the terrain and asset distributions. Below you can see the pipeline model as which the system was designed.

Each pipeline step uses the previous results and can be repeated with different parameters, if the outcome doesn't match with the users intentions. To provide immediate feedback, a dynamic proxy mesh is created and continuously updated.
At first, a rough terrain is generated using noise. Afterwards a carefully simplified climate simulation is done to generate a physically based and plausible looking biome distribution while maintaining a good performance. Based on the biome distribution and using digital elevation models (DEMs) the base terrain is enriched with finer details providing a more realistic terrain. Experiments with the Neural Network based technique called Style Transfer were performed, but showed insufficient results. Also, an erosion simulation with concurrent river generation was panned, but had to be dropped due to time constraints. After the terrain is generated, the assets are distributed. This is done using a iterative, constraint based local-to-global model. This approach enables the forming of emergent distributions.
In the image below you can see example outcomes of the first five pipeline steps (1 = Base-Terrain, 2 = Temperature, 3 = Wind, 4 = Moisture, 4b = Precipitation, 5 = Biomes).




Results

The designed and implemented procedural terrain generator turned out to be a effective and capable system to create big multi biome landscapes filled with assets. In addition it accomplishes a good balance between the requirements. The finally created terrains, as the example image below shows, are visually pleasing and exhibit plausible biome distributions. These are clearly expressed through the different surface characteristics.



Creating these terrains is comparatively easy with this system due to the easy to use pipeline concept and the flexibility expressed by the adequate number of user parameters. Furthermore, the chosen approach to place a possibly vast amount of assets turned out to be a success too. The emerging distributions most often fit remarkably well to the users intentions and appear to be very realistic, if desired.



The overall performance is appropriate and meets the expectations. Noteworthy is the fact, that the calculation times of the different pipeline steps vary greatly, as seen in the diagram below. In addition the chosen resolutions have in some cases a big impact on the needed runtime. The current, single-thread implementation and the resulting performance however could be greatly improved by converting to parallel computation, possibly on the GPU.




Files

Full version of the master thesis (German only)

Here is a movie that shows the developed system in action:

License

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. To view a copy of this license, visit creativecommons.org.
If you would like to use the software commercially, please get in touch with us (zach at cs.uni-bremen dot de) to obtain the assets under a different license (a.k.a. multi-licensing).
If you use any of the assets or software from this web page to produce a publication, you must give credit and put a reference in your publication.