Procedural Terrain Generator

Language C++/GLSL

A procedural terrain generator created for coursework at Coventry University during my final year.

Terrain Generation

The diamond-square algorithm was used to generate the terrain and water, which can be controlled via parameters within the code. Terrain is rendered as one mesh in a triangle strip with degenerate triangles for improved performance.

Tree Generation

Trees are generated using a Space Colonisation algorithm which simulates branch growth and how it "fights" for space. This is done using attraction points and nodes, with new nodes being attracted to the points and removing them once they are within a kill distance, preventing other nodes from growing in that direction. The number of attraction points, node size, kill distance, attraction range can all be configured from within the code to generate different type of trees (and a few can be seen in the video).

Unfortunately I ran into a number of issues in getting the 3D geometry to generate and I did not have enough time to render leaves but it does generate the tree in 3D space.