project thumbnail
Duration: ±4 weeks
Date: April-May 2013
Course: Graphics programming 4
Tools used: OpenGL
Cg
Visual Studio 2010
gDEBugger

Deferred renderer

The final assignments for graphics programming 4 was normal mapping and projected shadow maps for spot lights. I wanted to make something more challenging so I decided that I would implement these assignments in a differed renderer. I also added Screen space reflections using multiple bilateral blurred mipmaps to simulate imperfect specular reflections (which take reflection distance in to account). For performance the screen space reflections are rendered at half the screen resolution.

Features:

  • Materials with diffuse textures, normal maps, specular maps, and flag to enable SSR.
  • Multiple spot lights.
  • Soft shadows for all spot lights.
  • Multiple point lights (with simple lens flares) and directional lights.
  • Screen space local reflections both for perfect and imperfect specular materials.
  • Fixes to hide edges in the screen space local reflections for missing data.

Images

Steep parallax shader screenshot 1
All effects combined

Steep parallax shader screenshot 2
Diffuse buffer

Steep parallax shader screenshot 3
Specular buffer (alpha is specular exponent)

Steep parallax shader screenshot 4
Normal buffer

Steep parallax shader screenshot 5
Without SSR or bloom, used for sharp reflections

Steep parallax shader screenshot 6
Bilateral blurred for reflection (1st mipmap)

Steep parallax shader screenshot 7
Bilateral blurred for reflection (2nd mipmap)

Steep parallax shader screenshot 8
Bloom buffer

Steep parallax shader screenshot 9
SSR Isolated with bloom

Steep parallax shader screenshot 10
Spheres demonstrating SSR (down scaled from higher resolution)

Steep parallax shader screenshot 11
SSR isolated (down scaled from higher resolution)

Steep parallax shader screenshot 12
3 Spotlight reflected in the floor