Introduction
In this project, you will first add shading and shadows, and then you will implement a new features from a list of choices.
Shading and Shadows
Implement shading and shadows. You may reuse you solutions from previous tutorials, just beware of copy-paste errors. Also, add GUI elements and run-time shader recompilation, to ease project development.
Choose one project
Read through the description of all projects (they are fairly short), and then choose one. If you have own suggestions of features to implement instead, a lab assistant may approve them if the scope is suitable (not trivial and not too much work). If you want to implement a larger project that does not fit into the scope of this course, we recommend you to consider the Advanced computer graphics seminar course.
Projects - Choose One

Screen Space Ambient Occlusion
Implement a modern global illumination approximation that is used in almost all video games today.
Custom Environment Map
Create the irradiance and reflection maps for a custom environment map.
Heightfields
Render a large terrain (or fractal water) by displacing vertices from heightfield data.