Unlimited Light Sources with Clustered Forward Shading
Posted: 04 Mar 2019, 11:24
Sometimes, the environments in vanilla Morrowind feature too many lights for OpenMW to handle gracefully. If you ever encounter lights that seem to blink on or off depending on where you're standing, this is probably the reason why. A limitation of gl_Lights is that only 8 lights can affect any given object. This may sound familiar to users of the Skyrim Creation Kit, where the same limitation exists. The typical solution for game developers has been to use Deferred Shading, which lets them have as many lights as they want. Unfortunately, Deferred Shading has a number of downsides, and this is especially true for OpenMW as Morrowind and its assets were developed with Forward Shading in mind.
Enter Clustered Forward Shading, an evolution of Tiled (Forward+) Shading that allows for an unlimited number of lights while still using the forward rendering path. Extended further, this clustering technique can enable hundreds of omnidirectional dynamic shadow casting lights in real time. The most prominent sightings of Clustered Shading in AAA games have been DOOM(2016), Just Cause 3 and Detroit: Become Human.
There has been the occasional mention of Clustered Shading here over the years (mostly by Chris, it must be said) but it didn't lead to any substantial discussion, and no topic specifically about it has been made. I'm opening this thread to provoke interest and discussion, and to provide as many useful references to Clustered Shading as I can find - videos, slides, and even source code available under permissive license.
Youtube: Real-time many-light management and shadows with clustered shading (SIGGRAPH 2015 Courses) (slides available here)
The big one! Several back-to-back courses with principal developers Ola Olsson, Markus Billeter and Emil Persson.
Research Paper: More Efficient Virtual Shadow Maps for Many Lights (Alternative link)
Youtube: Game Dev Brisbane 2016 - Managing many lights in real time with clustered shading by Ola Olsson (slides available via his website)
As above, but Ola Olsson's material only. Includes Shadow presentation.
SIGGRAPH 2014 presentation (slides): University of Zurich Archive - Efficient Real-Time Shading with Many Lights by Ola Olsson, Markus Billeter and Emil Persson
GitLab Repository: Clustered Forward Shading Demo by Ola Olsson
Graphic Analysis Blog: DOOM (2016) - Graphics Study by Adrian Courrèges
SIGGRAPH DOOM(2016) Presentation (slides): The Devil is in the Details: idTech 666
Avalanche Studios Presentation for Just Cause 3 (slides): Practical Clustered Shading by Emil Persson
New from 2018
GDC Vault (slides): Cluster Forward Rendering and Anti-Aliasing in 'Detroit: Become Human' by Ronan Marchalot
New from 2018
GitHub repository (MIT licence): Hybrid (Clustered Forward/Deferred) Rendering Engine by Angel Ortiz
Youtube: Volume Tiled Forward Shading by Jeremiah van Oosten
Demonstration of the various shading methods in action with profiler, including a custom method based on Tiled/Clustered Shading.
Enter Clustered Forward Shading, an evolution of Tiled (Forward+) Shading that allows for an unlimited number of lights while still using the forward rendering path. Extended further, this clustering technique can enable hundreds of omnidirectional dynamic shadow casting lights in real time. The most prominent sightings of Clustered Shading in AAA games have been DOOM(2016), Just Cause 3 and Detroit: Become Human.
There has been the occasional mention of Clustered Shading here over the years (mostly by Chris, it must be said) but it didn't lead to any substantial discussion, and no topic specifically about it has been made. I'm opening this thread to provoke interest and discussion, and to provide as many useful references to Clustered Shading as I can find - videos, slides, and even source code available under permissive license.
Youtube: Real-time many-light management and shadows with clustered shading (SIGGRAPH 2015 Courses) (slides available here)
The big one! Several back-to-back courses with principal developers Ola Olsson, Markus Billeter and Emil Persson.
Research Paper: More Efficient Virtual Shadow Maps for Many Lights (Alternative link)
Youtube: Game Dev Brisbane 2016 - Managing many lights in real time with clustered shading by Ola Olsson (slides available via his website)
As above, but Ola Olsson's material only. Includes Shadow presentation.
SIGGRAPH 2014 presentation (slides): University of Zurich Archive - Efficient Real-Time Shading with Many Lights by Ola Olsson, Markus Billeter and Emil Persson
GitLab Repository: Clustered Forward Shading Demo by Ola Olsson
Graphic Analysis Blog: DOOM (2016) - Graphics Study by Adrian Courrèges
SIGGRAPH DOOM(2016) Presentation (slides): The Devil is in the Details: idTech 666
Avalanche Studios Presentation for Just Cause 3 (slides): Practical Clustered Shading by Emil Persson
New from 2018
GDC Vault (slides): Cluster Forward Rendering and Anti-Aliasing in 'Detroit: Become Human' by Ronan Marchalot
New from 2018
GitHub repository (MIT licence): Hybrid (Clustered Forward/Deferred) Rendering Engine by Angel Ortiz
Youtube: Volume Tiled Forward Shading by Jeremiah van Oosten
Demonstration of the various shading methods in action with profiler, including a custom method based on Tiled/Clustered Shading.