Procedural Terrain Generation Engine

Teodor Nikolov


Supervised by Frank C Langbein; Moderated by Bailin Deng

In this project I will build a software plug-in written in C# for Unity Engine. My software would deal with generating 3D procedural landscapes in the form of mesh data, which will be rendered by Unity's rendering engine. The "Engine" part of my project involves the generation of landscapes with different forms and features based on how the parameters of the engine are set. Maybe the terrain could be mountainous, or maybe it would be flatter and smoother.For the project, I will aim to implement at least two ways of generating a procedural landscape. The bare minimum I will try to achieve is the following:- Constructing a mesh via Isosurface Extraction (Ex. via Marching Cubes algorithm)- Constructing a mesh from scratch by building vertices and processing them (Ex. applying heightmaps from 2D Perlin noise)By including these two primary approaches to mesh generation, new room for improvement and variety will open up. I am looking to explore this area and hopefully to implement other algorithms that exist and tune them to provide a larger variety of possibilities for terrain generation. I would also like to find ways to implement data structures inside the engine as I progress with the project. Texturing is also an option I may consider, although it is not my primary concern for this project.

Initial Plan (05/02/2018) [Zip Archive]

Final Report (11/05/2018) [Zip Archive]

Publication Form