Soft Shadows in real time by Imperfect Shadow maps & SSAO

A project I did together with another student, implementing real time soft shadows for dynamic scenes by combining imperfect shadowmaps and screen space ambient occlusion. Multiple virtual point lights are used and are placed at light sources in the scene, in this case along the opening in the ceiling to simulate sunlight. A point-approximation of the scene is used for making shadow maps from each virtual point light to ease the computational load. The SSAO takes a deferred approach and uses per-pixel normals, depth, and positions stored in textures. All heavy calculations are performed on the GPU using shaders.

Main parts implemented by me are the entire SSAO algorithm, as well as the pull-push interpolation algorithm used in the Imperfect Shadowmaps method presented.

The project was implemented in C++ and uses GLM for math- and vector/matrix operations. The shaders were written i GLSL.

Project report: Soft Shadows in Real Time by Imperfect Shadow maps & SSAO