Terrain Generation
University Postgraduate
Procedural Generation Assignment
This terrain generation was created for my postgraduate degree to demonstrate Procedural Content Generation.
My Work
I created a terrain mesh generator along with object spawning to create an environment a player can explore
Terrain Mesh
Using Perlin Noise algorithm with added complexity of layering similar Perlin Noises as Fractal Noise, a terrain created through a mesh is generated out of the Perlin Noise.
Chunk system added to allow player to traverse larger area without have all world rendered at all times, one values around player.
Tree Population
Using Poisson Disc Sampling algorithm, positions for objects are randomly chosen then evaluated as to whether they are usable by seeing minimum distance points are to each other.
Perlin Noise Demo
I created a demo level to show the Perlin Noise work with only one chunk and no other algorithms required.
In this level, the user can customise the look of the terrain by altering sliders in the UI and the mesh will update in real time. Options that can be altered are:
-
Size of Perlin Noise
-
Where the Perlin Noise is (Offset)
-
Amount of Fractal Noise
-
Colours of different regions
Poisson Disc Demo
I created a demo level to illustrate how Poisson disc sampling can help improve spawning objects by generating random points prior to spawning them and checking if they are allowed.
User can alter values to change how close points can be to each other and how many attempts can be made to see how these impact the algorithm. The user can also turn off the algorithm to see how random spawning would work in comparison.
World Customisation
Before joining a play session, a player can visit a customise world page where they can change the colour of different regions of the terrain and allow them to add a seed, allow the same Perlin Noise to be used.