Assignment 3

Deferred Lighting

In this assignment, we will be implementing deferred shading. This is a popular screen-space shading technique that allows many lights to be rendered on the scene without a significant performance hit.

Requirements

  1. A scene that contains, at minimum:
    • A 3D Model
    • A ground plane
    • At least 64 point lights visibly shading geometry
    • Point lights drawn as uniformly colored orbs
  2. Deferred shading is implemented using Blinn-phong reflectance
  3. G-buffer contains the following surface information for use in shading (how you pack your data is up to you!):
    • Albedo (base texture colors, before lighting)
    • Positions
    • Normals
  4. G-buffer debug view in ImGUI. Must show all G-buffer textures.
  5. Bonus:
    • Use a uniform buffer object to store your point light data. Increase your max number of lights to at least 256. +5%
    • Use light volumes for more efficient lighting. See how many lights you can support at interactive frame rates! Your GPU mileage may vary! +5%

Supplementary Reading