/OpenGL-Renderer

Modern OpenGL renderer written in C++17

Primary LanguageC++MIT LicenseMIT

MP-APS

A modern OpenGL 3D rendering engine. The idea behind it is to be very simple to use: no weird abstraction layers, janky variable names, or massive 2000+ line classes. It's primarily a playground for me to implement (or at least try :P) different graphics programming techniques. Progress has been slow since I'm juggling full-time Univesity studies, work, and trying to be physically active. Eventually, I want to create a "scene-based" engine, where you can load up some model(s), add some fancy lights, and virtually explore it.

MPAPS

C/C++ CI CodeQL Open Source Love MIT Licence Codacy Badge

forthebadge forthebadge

Compiling

Ubuntu (and similar)

bash install-deps-ubuntu.sh
make
cd build/
./MP-APS

Screenshots

Anti-aliased wireframe rendering: Wireframe rendering

Physically Based Rendering: PBR PBR

Image Based Lighting (IBL): IBL

Bloom: Bloom

(OLD VERSION) CPU-based terrain generation using Perlin noise: Terrain

Features

  • Assimp model loading.
  • Post processing (HDR, vibrance, bloom).
  • Parallel AABB frustum culling.
  • XML engine configuration.
  • Support for #include directives in shaders.
  • Shader-based wireframe overlay.
  • Physically-based rendering.

WIP

Roadmap

Pipe-dreaming

  • CDLOD Terrain.
  • Planetary rendering.
  • Global illumination (Cascaded Light Propagation Volumes).

Third Party Code

Research Used