Custom OpenGL C++ Engine

Rendering engine for HND final year's graphics programming subject.

The Engine

This is an OpenGL and C++ rendering engine I made in my final HND year at ESAT Valencia for the graphics programming subject. Its main features are the following:

  • Multithreaded agnostical graphics API
  • Component oriented engine
  • Physically Based Rendering techniques:
    • Material pipeline (PBS, Metallic/Roughness workflow)
    • Image Based Lighting (Radiance and Irradiance environment mapping)
    • Atmospheric Scattering (Rayleigh and Mie Scattering)
  • GLTF model loading
  • Postprocessing Pipeline:
    • Screen Space Ambient Occlusion (SSAO)
    • Bloom
    • Light Scattering (God Rays)
    • Shadow Mapping
    • Fast Approximate Anti-Aliasing (FXAA)
    • Lens Distortion (with Grain, Vignette, Color Aberration)
    • Tonemapping and multiple one-pass filters
  • Procedural generation of infinite voxel worlds
  • UI integration (ImGui)
  • Sound integration (OpenAL)
  • Physics integration (Bullet Physics)

Custom Engine: Physically Based Rendering

The physically based approach used for my custom rendering engine.
Víctor Ávila

Custom Engine: Postprocessing

My custom engine’s postprocessing.
Víctor Ávila