/SimpleOpenGL

A renderer featuring advanced techniques such as PBR/IBL, deferred shading, SSAO, and shadow mapping.

Primary LanguageC++

OpenGL Renderer

A real-time rendering demo built from scratch using OpenGL and C++.

Features

  • Physically Based Rendering (PBR)
  • Image-Based Lighting (IBL)
  • Deferred shading
  • Screen Space Ambient occlusion (SSAO)
  • Sobel edge detection
  • Shadow mapping
  • Bloom postprocessing
  • Minor features: Geometry shader, Blinn-Phong shading, Skybox, glTF model loading.

Physically-Based Rendering (PBR) and Image-Based Lighting (IBL)

pbr_tachikoma.mp4
image

Deferred shading

A Sponza scene with 300 light sources.

deferred_shading.mp4

Screen Space Ambient Occlusion

This Gundam model looks great with ambient occlusion.

image image

Shadow mapping

The sahdow edges are blurred using PCF.

shadow_mapping.mp4

Sobel edge detection

image

Bloom postprocessing

image

Some other cool results

pbr_armor.mp4
pbr_helmet.mp4
image

Build

  • OpenGL 4.6 / Direct State Access
  • Visual Studio 2022 x64 and C++20
  • Libraries: Assimp, glad, glfw, glm, assimp, ImGui, and stb.

Credit

Technical Resources:

Assets:

3D Models: