OpenGL 3D Scene in PBR

OpenGL 3D Scene in PBR

-
completed
1
2.5 months
C++/OpenGL
February 2024
Computer Graphics OpenGL C++ Engine 3D SAE

Context

This project is a deferred rendering 3D scene with Physically Based Rendering (PBR) and Image-Based Lighting (IBL), built with a custom engine from scratch using OpenGL. I developed it during my second-year Computer Graphics module at SAE Institute Geneva.

The goal was to explore rasterization-based rendering. We started with basics like rendering a triangle and matrix operations, then advanced to techniques such as shadow mapping, deferred shading, PBR, and IBL. By the end, we combined these to create a complete 3D scene, showcasing our understanding of graphics rendering.

Showcase

Here is a short showcase video of my scene:

Here’s a video showing the different samples I created while learning OpenGL during the course module:

Here are different renderings of my scene:

Features

  • OBJ Model Loading
  • Instancing
  • Face and Frustum Culling
  • Cubemap
  • Deferred Shading
  • Screen Space Ambient Occlusion (SSAO)
  • Shadow Mapping
    • Directional Light Shadow Map
    • Point Light Shadow Cubemap
  • Physically Based Rendering (PBR)
    • Image Based Lighting (IBL)
    • Directional Light
    • Point Light
  • Emissive Textures Mapping
  • Physically Based Bloom
  • High Dynamic Range (HDR) + Tone Mapping + Gamma Correction

What did I learn ?

  • The basics of graphics programming
  • The OpenGL API
  • Rasterisation-based 3D rendering
  • Deferred Rendering
  • Physically Based Rendering (PBR) and Image Based Lighting (IBL)
  • The rendering equation and a way to solve it using PBR
  • A better understanding and use of abstractions
  • Use of RAII in C++ to throw error logs and ensure proper resource cleanup by allowing the programmer to control destruction order

Related Blog Posts

© 2025 Pachoud Olivier