← Back to Technical Work

Real-time PBR Renderer

Custom real-time physically-based renderer in OpenGL

Date February 2025
Tags
c++openglglsl
Real-time PBR Renderer - media 1
PBR renderer cover
0:00 / 0:00
Cerberus PBR material demo
0:00 / 0:00
Screen-space reflection demo

Overview

A real-time physically-based renderer built from scratch in C++ and OpenGL. Features deferred shading, PBR materials, IBL, shadow mapping, SSAO, bloom, and tone mapping.

Render Pipeline

  1. Geometry pass → G-Buffer (albedo, normal, metallic-roughness, depth)
  2. Lighting pass → HDR color buffer with PBR shading
  3. Post-processing → SSAO, bloom, tone mapping, FXAA

Environment Lighting Comparison

Environment 1Environment 2
Cerberus model under environment lighting 1Cerberus model under environment lighting 2

Metallic And Roughness Sweep

Metallic 0.0 / Roughness 0.0Metallic 0.0 / Roughness 0.5Metallic 0.0 / Roughness 1.0
Metallic 0.0 roughness 0.0Metallic 0.0 roughness 0.5Metallic 0.0 roughness 1.0
Metallic 0.5 / Roughness 0.0Metallic 1.0 / Roughness 0.0Metallic 1.0 / Roughness 0.25
Metallic 0.5 roughness 0.0Metallic 1.0 roughness 0.0Metallic 1.0 roughness 0.25