Manhattan Project

April, 2022 - May, 2022

C++, OpenGL

City generated procedurally in a custom graphics engine that uses C++ and OpenGL

Made By

Carmen Martín Moreno

Mario Rodríguez Chaves

Manhattan Project involves the procedural generation and rendering of a city using the EDK3 custom engine developed by ESAT University. By leveraging the draw loop and core structure of the engine, we enhance its features by incorporating the entire graphics core as an abstraction of OpenGL and GLSL.

What I did

  • Implementation of classes to abstract the user from the OpenGL core such as Texture, Buffer, Shader, Material, etc.
  • Procedural city generation with irregular squares size and random building location for realism.
  • Load and storage of meshes using Wavefront Objects.
  • Normal mapping.
  • Frustrum culling for rendering optimization.
  • Butterflies effect using geometry shader.
  • First person camera.
  • Graphic interface using DearImGui to facilitate the use and debug of the demo.

Features

  • Procedural generation of a city with buildings and streets.
  • Fog and postprocessing effects such as bloom, blur, chromatic aberration.
  • Creation and modification of pointlights, spotlights and directional light.
  • Lighting system using forward rendering and the Phong model.
  • Normal mapping.
  • Camera frustrum culling.
  • Generation of billboards and butterflies with geometry shader.
  • First person camera to navigate the environment.
  • Interface using ImGui to show stats, the hierarchy tree, manage and create lights, activate postprocessing, etc.

The repository of this project is private but code snippets may be given to anyone interested in its implementation. Contact me for more information.