
OpenGL 3D Scene in PBR
-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