Procedural Generation Project

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

This Procedural Generation Project (PGP) is a graphics programming prototype 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 defined 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 files (e.g., world size, background color, enabled snow, animation settings) that are then read by the application.
    • Geography and resulting vegetation depends on surrounding cubes (e.g., sand is located close to water, rocks at steep descents, snow at higher altitudes).
  • Rendering
    • Efficient rendering of landscape by using multithreading and hollowed cube groups.
    • Camera can freely navigate through the scene.
    • Tiles support alpha channel by simply replacing textures in Ressources folder.

CODE: github.com/m-gebhart/PGP_OpenGL