2016 - 2019 • Digital Arts and Entertainment Course
At the end of the Graphics Programming 2 course we explain the deferred rendering pipeline. This is not a mandatory topic for students due to the limited amount of ECTS for the course. Nonetheless, it is a very interesting topic as they learn:
This class was one of the last updates in the Graphics Programming 2 course, as this course will change due to a curriculum update. The initial framework and base was made by my colleague Thomas Goussaert. I've iterated on the framework, adapted it further for the deferred rendering support, wrote and fixed parts of the shaders and fixed several issues. There are still issues with the framework (scenegraph, optimzation, etc.), but due to the changes this will no longer be applied as this will become deprecated.
Next to this class I've also changed a lot of the content, created in this DirectX 11 Overlord Engine framework, for the other classes in Graphics Programming 2, included but not limited too:
An entire implementation of the Overlord Engine framework cannot be shared as it is still activly being used in lecturers and assignments.
Below are code snippets of some of the most interesting parts of deferred rendering pipeline.
Deferred Rendering: part of the core of the deferred rendering pipeline. Creates the G-Buffer and makes sure resources are set accordingly.
Fill Pass: HLSL shader performing the fill pass (rendering information to G-Buffer).
Lighting Pass: HLSL shader performing the lighting pass. Using volumetric lighting, performing the lighting calculations and presenting the result to the screen.
Helper Functions: HLSL helper functions used in the Lighting Pass.