OpenGL Physically Based Deferred Rendering


A graphics engine using C++ and OpenGL. This is a demonstration of a deferred renderer with multiple render targets. Materials and geometries are rendered to a frame buffer object which gets fed in to a pipeline where light and reflections are added.

Using the "metalness" PBR workflow. Fresnel effect using Schlicks approximation for dielectrics, approximating metals by setting R0 to the albedo of the material.

The last step in the pipeline is post processing where HDR-blooming and depth of field based on physical camera parameters are performed.

Running on Macbook Pro mid 2012, NVIDIA GeForce GT 650M 1024 MB.

PBR Materials from: http://freepbr.com
Cube maps from: http://www.humus.name/index.php?page=Textures
and: http://www.custommapmakers.org/skyboxes.php


Future Work

HDR image based lighting and tone mapping. Screen space ambient occlusion. Screen space reflections. Screen space cast shadows and / or shadow mapping.

Github repo: https://github.com/kbladin/ElkEngine