Procedural Generation Project

2022 · C++ Application · Solo Side Project (3 months) · OpenGL / C++

This Procedural Generation Project (PGP) is a Graphics Programming project created with OpenGL and C++. Inspired by Minecraft-like visuals, the project generates a landscape containing multiple settings that differ in vegetation and geographical aesthetics.

The application reads in noise visuals to then generate and render various cube-based entities each with different textures in accordance to the given vegetation. The goal of this project is to let the user configure different settings to then generate landscapes in simple ways.

PGP was a great opportunity to dive deeper into more low-level concepts such as rendering, performance optimisation, memory management and multithreading.

Features

  • Procedural Generation
    • Landscape can be generated, reset and regenerated on simple button presses
    • Generation settings can be defined in configuration file (e.g., world size, background color, enabled snow, animation settings)
    • Geographical systems dependent on surrounding cubes (e.g., sand close by water, rocks at steep descents, snow with higher position)
  • Rendering
    • Efficient rendering of landscape by using multithreading and hollow cube groups
    • Camera can freely navigate through the scene
    • Tiles support alpha channel and can be replaced in Ressources folder

CODE: github.com/m-gebhart/PGP_OpenGL