Clustered Forward Rendering and Anti-Aliasing...
Transcript of Clustered Forward Rendering and Anti-Aliasing...
![Page 1: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/1.jpg)
Clustered Forward Rendering
and Anti-Aliasing in
‘Detroit: Become Human’
Ronan Marchalot
Lead Engine Programmer
![Page 2: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/2.jpg)
Introduction
●Quantic Dream
●History of Quantic Dream 3D engine
●Building a new technology for “Detroit: Become Human”
●Clustered forward rendering
●Temporal anti-aliasing
![Page 3: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/3.jpg)
Quantic Dream
●Independent French studio based in Paris
●Founded in 1997 by David Cage
●Work exclusively with Sony since Heavy Rain
●Specialized in “interactive dramas”
●Develop bespoke technology
●200 employees
![Page 4: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/4.jpg)
Quantic Dream
●Released titles● Nomad Soul (1999)
● Fahrenheit (2005)
● Heavy Rain (2010)
● Beyond: Two Souls (2013)
● Detroit: Become Human (2018)
![Page 5: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/5.jpg)
Quantic Dream
●Technical demos● The Casting (2006)
● Kara (2012)
● The Dark Sorcerer (2013)
![Page 6: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/6.jpg)
History of QD 3D Engine
●Proprietary engine● Optimized for Playstation hardware
● PC OpenGL version for tools
● Engine integrated in Maya for assets edition
![Page 7: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/7.jpg)
History of QD 3D Engine
●Heavy Rain (2010)● Playstation 3● Forward rendering● Per-pixel lighting with normal
maps● One shader per light● Shader tree (Authored in Maya)● MSAA 2X
![Page 8: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/8.jpg)
History of QD 3D Engine
●Beyond: Two souls (2013)● Playstation 3
● Deferred shading
● Gamma correct
● Physically Based Rendering
● Morphological Anti-aliasing
![Page 9: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/9.jpg)
History of QD 3D Engine
●The Dark Sorcerer (2013)● Playstation 4 tech demo
● First port of our tech on PS4 with
early SDKs
● Deferred shading (5 render targets)
● Improved materials (Cook-Torrance
with specular color)
![Page 10: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/10.jpg)
Building a new technology
●Detroit: Become Human● Interactive drama
● Performance capture
● Image quality
![Page 11: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/11.jpg)
Building a new technology
●Detroit: Become Human● Takes place in a city
● Lots of night scenes
● Lots of interior scenes
● Rain and snow
![Page 12: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/12.jpg)
![Page 13: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/13.jpg)
![Page 14: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/14.jpg)
![Page 15: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/15.jpg)
![Page 16: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/16.jpg)
Building a new technology
●Detroit: Become Human● 30 FPS / 1080p●Not an action game!
●Better graphics instead of better FPS
![Page 17: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/17.jpg)
Building a new technology
●Detroit: Become Human● 30 FPS / 1080P●Not an action game!
●Better graphics instead of better FPS
● Loadings●Avoid loading screens
![Page 18: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/18.jpg)
Building a new technology
●First list of features
●Most of them requires some space in the G-Buffer
![Page 19: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/19.jpg)
Building a new technology
●First list of features
●Most of them requires some space in the G-Buffer● Normal-based bias for shadows
![Page 20: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/20.jpg)
Building a new technology
●First list of features
●Most of them requires some space in the G-Buffer● Normal-based bias for shadows
● Multi-layered materials (skin, rain, etc.)
![Page 21: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/21.jpg)
Building a new technology
●First list of features
●Most of them requires some space in the G-Buffer● Normal-based bias for shadows
● Multi-layered materials (skin, rain, etc.)
● Self occlusion stored per vertex
![Page 22: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/22.jpg)
Building a new technology
●First list of features
●Most of them requires some space in the G-Buffer● Normal-based bias for shadows
● Multi-layered materials (skin, rain, etc.)
● Self occlusion stored per vertex
● Eye shader
![Page 23: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/23.jpg)
Building a new technology
●If we want to pack everything in a G-Buffer, we could go
beyond 8 render targets
●Different kind of materials clashes with deferred shading
●Deferred shading is fast, but we must keep things
simple to obtains good performance
●We decided to go back to forward shading
![Page 24: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/24.jpg)
Building a new technology
●Pillars of Detroit 3D engine
![Page 25: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/25.jpg)
Building a new technology
●Pillars of Detroit 3D engine● Clustered forward rendering
![Page 26: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/26.jpg)
Building a new technology
●Pillars of Detroit 3D engine● Clustered forward rendering
● Temporal anti-aliasing
![Page 27: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/27.jpg)
Building a new technology
●Pillars of Detroit 3D engine● Clustered forward rendering
● Temporal anti-aliasing
● Physically based rendering
![Page 28: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/28.jpg)
Building a new technology
●Pillars of Detroit 3D engine● Clustered forward rendering
● Temporal anti-aliasing
● Physically based rendering
● Character rendering
![Page 29: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/29.jpg)
Building a new technology
●Pillars of Detroit 3D engine● Clustered forward rendering
● Temporal anti-aliasing
● Physically based rendering
● Character rendering
● FX
![Page 30: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/30.jpg)
Building a new technology
●Pillars of Detroit 3D engine● Clustered forward rendering
● Temporal anti-aliasing
● Physically based rendering
● Character rendering
● FX
● Loadings
![Page 31: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/31.jpg)
Building a new technology
●Pillars of Detroit 3D engine● Clustered forward rendering
● Temporal anti-aliasing
● Physically based rendering
● Character rendering
● FX
● Loadings
![Page 32: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/32.jpg)
Clustered forward rendering
![Page 33: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/33.jpg)
Clustered forward rendering
●GPUs are more flexible and efficient
![Page 34: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/34.jpg)
Clustered forward rendering
●GPUs are more flexible and efficient
●New lighting algorithms● Tiled rendering
● Forward + rendering
● Clustered forward rendering
![Page 35: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/35.jpg)
Clustered forward rendering
●Tiled rendering● The screen is cut into tiles
● Fill a list of lights for each tiles
● Perform lighting for each tiles
● Saves bandwidth as we read G-Buffer once for many
lights
● Doesn’t support transparency
![Page 36: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/36.jpg)
Cluster forward rendering
![Page 37: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/37.jpg)
Cluster forward rendering
![Page 38: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/38.jpg)
Clustered forward rendering
●Forward + rendering● The tiles are extended in depth
● The list of lights contains all the lights between the Z far
of the tile and the Z near of the camera
● Support transparency
![Page 39: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/39.jpg)
Cluster forward rendering
![Page 40: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/40.jpg)
Clustered forward rendering
●Clustered forward rendering● The tiles are replaced by clusters in 3D
● Depth distribution is not linear
● Fewer lights per cluster than in forward+ rendering
● But the number of clusters is > to the number of tiles
![Page 41: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/41.jpg)
Cluster forward rendering
![Page 42: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/42.jpg)
Clustered forward rendering
●First implementations● “Clustered Deferred and Forward Shading” by Ola
Olson et al., HPG 2012
● Just Cause 3 (Avalanche)●“Practical Clustered Shading” by Emil Persson
● Doom (Id software)●“The devil is in the details” by Tiago Sousa and Jean Geffroy
![Page 43: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/43.jpg)
![Page 44: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/44.jpg)
Clustered forward rendering
●Data Structures● One buffer contains cluster data●3D array
●Width: 36, height: 20, depth: 64
●First light index + light count
![Page 45: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/45.jpg)
Clustered forward rendering
●Data Structures● One buffer contains cluster data
● One buffer contains light data●1D array
●Light type, position, color, attenuation, etc.
●Size = maximum light count
![Page 46: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/46.jpg)
Clustered forward rendering
●Data Structures● One buffer contains cluster data
● One buffer contains light data
● One buffer contains light indices data●16 bits indices
●Size depends on maximum light density
![Page 47: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/47.jpg)
Clustered forward rendering
●Fill clusters● Filled by asynchronous compute shaders●During the depth and shadow pass
![Page 48: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/48.jpg)
Clustered forward rendering
●Fill clusters● Filled by asynchronous compute shaders
● Each cluster is tested with all the light●Spot/Frustum, Point/Frustum, Box/Frustum
●“Practical Clustered Shading” by Emil Persson
●“Cull that cone!” by Bart Wronski
![Page 49: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/49.jpg)
Clustered forward rendering
●Fill clusters● Filled by asynchronous compute shaders
● Each cluster is tested with all the lights
● 3 passes
![Page 50: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/50.jpg)
Clustered forward renderingClusters
Cluster 0
Cluster 1
Cluster 2
…
![Page 51: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/51.jpg)
Clustered forward renderingClusters
Cluster 0
Cluster 1
Cluster 2
…
Light count
2 lights
3 lights
2 lights
…
1st pass: compute light count
![Page 52: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/52.jpg)
Clustered forward renderingClusters
Cluster 0
Cluster 1
Cluster 2
…
Light count
2 lights
3 lights
2 lights
…
2nd pass: compute first light index
First light index
0
2
5
…
![Page 53: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/53.jpg)
Clustered forward renderingClusters
Cluster 0
Cluster 1
Cluster 2
…
Light count
2 lights
3 lights
2 lights
…
3rd pass: fill light indices
First light index
0
2
5
…
Light indices
Index 0 of cluster 0
Index 1 of cluster 0
Index 0 of cluster 1
Index 1 of cluster 1
Index 2 of cluster 1
Index 0 of cluster 2
Index 1 of cluster 2
![Page 54: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/54.jpg)
Clustered forward rendering
●Fill clusters● Filled by asynchronous compute shaders
● Each cluster is tested with all the lights
● 3 passes
● Two hierarchical levels●18x10x32
●36x20x64
![Page 55: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/55.jpg)
Clustered forward rendering
●Fill clusters performance● 124 lights and 32 Image based lights
![Page 56: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/56.jpg)
![Page 57: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/57.jpg)
![Page 58: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/58.jpg)
![Page 59: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/59.jpg)
![Page 60: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/60.jpg)
Clustered forward rendering
●Fill clusters results● “Night of the long knives” level
● 124 lights and 32 Image based lights
● 1.23 milliseconds for clusters filling
![Page 61: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/61.jpg)
Clustered forward rendering
●Lighting● Use depth and pixel position to find the cluster for the
current pixel
● Parse the list of lights
![Page 62: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/62.jpg)
Clustered forward rendering
●First results● Not very impressive
● Fat shaders using a lot of registers
![Page 63: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/63.jpg)
Clustered forward rendering
●Optimization● Force light loop to use scalar registers instead of vector
registers and sort lights●“The devil is in the details” by Tiago Sousa and Jean Geffroy
![Page 64: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/64.jpg)
Clustered forward rendering
●Optimization● Force light loop to use scalar registers instead of vector
registers and sort lights●“The devil is in the details” by Tiago Sousa and Jean Geffroy
● Ensure that everything use the same space as much as
possible (view space)
![Page 65: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/65.jpg)
Clustered forward rendering
●Optimization● Use less shadow texture samples with TAA (only 8)
● Force the compiler to use a loop with 2x4 texture
shadow samples
● At some distance, we use a baked shadow texture with
only 1 texture shadow sample
![Page 66: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/66.jpg)
Clustered forward rendering
●Optimization● Depth pass is necessary
![Page 67: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/67.jpg)
Clustered forward rendering
●Optimization● Depth pass is necessary
● The cluster can be used for per-pixel lighting… and per-
vertex lighting!
![Page 68: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/68.jpg)
Clustered forward rendering
●Optimization● Depth pass is necessary
● The cluster can be used for per-pixel lighting… and per-
vertex lighting!
● Image based lighting transferred to a deferred pass
when possible
![Page 69: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/69.jpg)
Clustered forward rendering
●Light loop optimization● We have 4 types of lights (point, spot, directional and
projector)
● Shadows and projected textures
● First version use 4 loops (one for each light type)
● We switched to 1 loop handling all types of lights
![Page 70: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/70.jpg)
Clustered forward rendering
●Light loop optimization● For each light●Compute light attenuation
●Compute shadow
●Compute projected texture
●Compute final lighting color with material BRDF
![Page 71: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/71.jpg)
Clustered forward rendering
●Light loop optimization● For each light●Compute light attenuation
●Compute shadow → Higher register usage for sun shadow
●Compute projected texture
●Compute final lighting color with material BRDF
![Page 72: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/72.jpg)
Clustered forward rendering
●Light loop optimization● Compute sun shadow → Lower register usage
● For each light●Compute light attenuation
●Compute shadow
●Compute projected texture
●Compute final lighting color with material BRDF
![Page 73: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/73.jpg)
Clustered forward rendering
●Visibility light rejection● Our visibility is portal/zone based● Visibility information can be used to reject a light as
soon as possible● Visibility information is stored in a bit field (one bit per
zone)● We can reject a light if uiObjectVisibility &
uiLightVisibility != 0
![Page 74: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/74.jpg)
Clustered forward rendering
●Light loop optimization● Compute sun shadow → Lower register usage
● For each light●Visibility test bit field → Early exit
●Compute light attenuation
●Compute shadow
●Compute projected texture
●Compute final lighting color with material BRDF
![Page 75: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/75.jpg)
Clustered forward rendering
●Other possible early exits● N dot L
● Light attenuation result
● Shadow result
![Page 76: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/76.jpg)
Clustered forward rendering
●Light loop optimization● Compute sun shadow → Lower register usage● For each light●Visibility Test bit field → Early exit●Compute light attenuation → Early exit●Test N dot L → Early exit●Compute shadow → Early exit●Compute projected texture●Compute final lighting color with material BRDF
![Page 77: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/77.jpg)
![Page 78: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/78.jpg)
![Page 79: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/79.jpg)
![Page 80: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/80.jpg)
![Page 81: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/81.jpg)
![Page 82: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/82.jpg)
![Page 83: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/83.jpg)
Clustered forward rendering
●Transparency optimization● Transparency can be a performance killer
![Page 84: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/84.jpg)
Clustered forward rendering
●Transparency optimization● Transparency can be a performance killer
● Glass●Image based lighting only
![Page 85: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/85.jpg)
Clustered forward rendering
●Transparency optimization● Transparency can be a performance killer● Glass●Image based lighting only
● Particles:●Per centroid●Spherical Harmonics●Half resolution
![Page 86: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/86.jpg)
Clustered forward rendering
●Hairs● Performance issues with fully transparent hairs
![Page 87: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/87.jpg)
Clustered forward rendering
●Hairs● Transparency accumulation pass●Additive blending
●Output tweaked alpha transparency
●1/16 resolution
![Page 88: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/88.jpg)
![Page 89: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/89.jpg)
Clustered forward rendering
●Hairs● Transparency accumulation pass
● Depth pass●Alpha test computed from transparency accumulation pass
![Page 90: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/90.jpg)
Cluster forward rendering
![Page 91: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/91.jpg)
Clustered forward rendering
●Hairs● Transparency accumulation pass
● Depth pass
● Back triangles pass
● Forward triangle pass
● Motion vector pass
![Page 92: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/92.jpg)
![Page 93: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/93.jpg)
Clustered forward rendering
●Things still deferred in our engine● Screen Space Reflection
● Image based lighting
● Both need normal and roughness
![Page 94: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/94.jpg)
Clustered forward rendering
●Debug ● With deferred shading, the G-Buffer is very useful for
debugging●Normal, roughness, albedo, etc.
● Debug shader●Output anything: Normal, Tangent, Binormal, uvs, etc.●More powerful than G-Buffer render targets●Stored in debug memory. Not used in retail version of the game.
![Page 95: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/95.jpg)
Clustered forward rendering
●Mirrors● Fill the clusters once
for each visible mirror
![Page 96: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/96.jpg)
Clustered forward rendering
●Other advantages● Volumetric lighting
![Page 97: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/97.jpg)
Clustered forward rendering
●Other advantages● Volumetric lighting
● Decals
![Page 98: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/98.jpg)
Clustered forward rendering
●Lighting performance
![Page 99: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/99.jpg)
![Page 100: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/100.jpg)
Clustered forward rendering
●Lighting performance● 124 lights and 32 Image based lights
● 1.23 ms for cluster filling
● 1.92 ms for depth pass
● 8.79 ms for opaque pass
● 3.48 ms for transparent pass
![Page 101: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/101.jpg)
Clustered forward rendering
●Future● Reduce number of passes for clusters filling
![Page 102: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/102.jpg)
Clustered forward rendering
●Future● Reduce number of passes for clusters filling
● Better depth distribution
![Page 103: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/103.jpg)
Clustered forward rendering
●Future● Reduce number of passes for clusters filling
● Better depth distribution
● Remove some lights during the cluster filling●With shadow maps
●With visibility information
![Page 104: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/104.jpg)
Clustered forward rendering
●Future● Reduce number of passes for clusters filling
● Better depth distribution
● Remove some lights during the cluster filling
● VR: fill the clusters once for both eyes
![Page 105: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/105.jpg)
Temporal anti-aliasing
![Page 106: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/106.jpg)
Temporal anti-aliasing
●Aliasing● Can’t only rely on better resolution
● HDR and PBR increase aliasing
![Page 107: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/107.jpg)
Temporal anti-aliasing
●Anti-aliasing● Multi-sampling
● Post-processing
● Shading
![Page 108: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/108.jpg)
Temporal anti-aliasing
●Multi-sampling● Hardware
● Increase size of render target (2X, 4X, etc.)
● Shading is performed more at polygons edges
● Decrease performance
● Doesn’t improve specular aliasing
![Page 109: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/109.jpg)
Temporal anti-aliasing
●Post-processing● Morphological Anti-Aliasing (MLAA)
● Fast Approximate Anti-Aliasing (FXAA)
![Page 110: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/110.jpg)
Temporal anti-aliasing
●Post-processing● Morphological Anti-Aliasing (MLAA)
● Fast Approximate Anti-Aliasing (FXAA)
● Temporal Anti-Aliasing (TAA)
![Page 111: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/111.jpg)
Temporal anti-aliasing
●Post-processing● Morphological Anti-Aliasing (MLAA)
● Fast Approximate Anti-Aliasing (FXAA)
● Temporal Anti-Aliasing (TAA)●Based on “High Quality Temporal Supersampling” by Bryan Karis
●Unreal infiltrator real-time demo
![Page 112: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/112.jpg)
Temporal anti-aliasing
●TAA● Jitter each frame with a different offset
![Page 113: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/113.jpg)
Temporal anti-aliasing
●TAA● Jitter each frame with a different offset
● Accumulate frames
![Page 114: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/114.jpg)
Temporal anti-aliasing
●TAA● Jitter each frame with a different offset
● Accumulate frames
● Use motion vectors to retrieve previous pixel position
![Page 115: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/115.jpg)
Temporal anti-aliasing
●TAA● Jitter each frame with a different offset
● Accumulate frames
● Use motion vectors to retrieve previous pixel position
● Use heuristic to reject previous frame pixels
![Page 116: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/116.jpg)
Temporal anti-aliasing
●Where to apply TAA● Final image●Doesn’t prevent from Bloom, DOF and motion blur aliasing
● Before post-processing●Best for stability
● For specific features●SSR, Volumetric lighting
![Page 117: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/117.jpg)
Temporal anti-aliasing
●Jittering● Fixed 8 taps●Like for 8x MSAA
![Page 118: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/118.jpg)
Temporal anti-aliasing
●Motion vectors● Can be written in option on transparent objects
![Page 119: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/119.jpg)
Temporal anti-aliasing
●Motion vectors● Can be written in option on transparent objects
● Clothes, skinned characters
![Page 120: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/120.jpg)
Temporal anti-aliasing
●Motion vectors● Can be written in option on transparent objects
● Clothes, skinned characters
● Vegetation (Speedtree)
![Page 121: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/121.jpg)
Temporal anti-aliasing
●Motion vectors● Can be written in option on transparent objects
● Clothes, skinned characters
● Vegetation (Speedtree)
● Vertex animation
![Page 122: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/122.jpg)
Temporal anti-aliasing
●Pixel rejection● Neighborhood clamping●Inspired by Bryan Karis presentation
![Page 123: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/123.jpg)
Temporal anti-aliasing
●Pixel rejection● Neighborhood clamping●Inspired by Bryan Karis presentation
● Depth disocclusion
● Velocity similarity
![Page 124: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/124.jpg)
Temporal anti-aliasing
●Skin shader● Decrease TAA strength when camera zoom in/zoom
out
![Page 125: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/125.jpg)
Temporal anti-aliasing
●Performance● 1.14 ms
![Page 126: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/126.jpg)
Temporal anti-aliasing
●Rain and snow● Rain and snow can disappear completely with TAA
● The flag responsive fix missing particles
● For rain surface effects, decrease TAA strength
according to rain normal strength
![Page 127: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/127.jpg)
TAA Off
![Page 128: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/128.jpg)
TAA On
![Page 129: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/129.jpg)
TAA decreased on RAIN
![Page 130: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/130.jpg)
TAA Strength
![Page 131: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/131.jpg)
Temporal anti-aliasing
●Issues with TAA● Some post-processes don’t work well with TAA
● Depth is jittered
● Contour pixels are anti-aliased
● Leaking and vibration on DOF and motion blur
![Page 132: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/132.jpg)
Temporal anti-aliasing
●Depth of field● Removing vibrations●We perform TAA on depth
● Removing leaking●We erode the Circle of confusion to avoid leaking
![Page 133: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/133.jpg)
![Page 134: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/134.jpg)
![Page 135: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/135.jpg)
![Page 136: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/136.jpg)
![Page 137: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/137.jpg)
Temporal anti-aliasing
●Motion blur● Half resolution motion blur (540P)
● 2 passes with 8 texture fetches each
● TAA bleeds on pixels near depth discontinuities
● Reject these pixels during Motion Blur sampling
● => Avoids unwanted TAA bleed streaks
![Page 138: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/138.jpg)
![Page 139: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/139.jpg)
TAA bleed streaks
![Page 140: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/140.jpg)
![Page 141: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/141.jpg)
![Page 142: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/142.jpg)
![Page 143: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/143.jpg)
Temporal anti-aliasing
●PS4 Pro considerations● Temporal anti-aliasing is compatible with checkerboard
![Page 144: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/144.jpg)
Temporal anti-aliasing
●PS4 Pro considerations● Temporal anti-aliasing is compatible with checkerboard
● Checkerboard should be resolved with temporal AA●Jittering split between checkerboard pixels
![Page 145: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/145.jpg)
Temporal anti-aliasing
●PS4 Pro considerations● Temporal anti-aliasing is compatible with checkerboard
● Checkerboard should be resolved with temporal AA
● But 4K ruins post-processing performance
![Page 146: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/146.jpg)
Temporal anti-aliasing
●PS4 Pro considerations● Temporal anti-aliasing is compatible with checkerboard
● Checkerboard should be resolved with temporal AA
● But 4K ruins post-processing performance
● We resolve checkerboard after post-processing
![Page 147: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/147.jpg)
TAA: Off TAA: On
![Page 148: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/148.jpg)
Temporal anti-aliasing
●TAA is not enough in some situations● We are only 8x
● Very high specular impacts on isolated pixels can still
be an issue
![Page 149: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/149.jpg)
Temporal anti-aliasing
●Shading anti-aliasing● We can perform shading more than once, using GPU
derivatives
● Good results, but costly
![Page 150: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/150.jpg)
Temporal anti-aliasing
●Shading anti-aliasing● Normal Distribution Function (NDF) filtering●“Filtering Distributions of Normals for Shading Antialiasing” by A.S.
Kaplanyan, S. Hill, A. Patney and A. Lefohn
![Page 151: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/151.jpg)
Temporal anti-aliasing
●Shading anti-aliasing● Normal Distribution Function (NDF) filtering●Faster version: “Error Reduction and Simplification for Shading Anti-
Aliasing” by Yusuke Tokuyoshi
![Page 152: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/152.jpg)
Temporal anti-aliasing
●Shading anti-aliasing● Normal Distribution Function (NDF) filtering●Works very well with TAA
●Rain details are more visible
![Page 153: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/153.jpg)
TAA Off
![Page 154: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/154.jpg)
TAA ON
![Page 155: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/155.jpg)
TAA On + NDF Filtering
![Page 156: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/156.jpg)
Temporal anti-aliasing
●Other temporal effects● Shadows
● HBAO
● SSR
● Skin Screen Space Subsurface Scattering
● Volumetric lighting
![Page 157: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/157.jpg)
Temporal anti-aliasing
●Blue noise● Noise with minimal low frequency components and no
concentrated spikes in energy
● “The rendering of inside” by Mikkel Gjel & Mikkel
Svendsen
● Blue Noise Generator by Bart Wronski
![Page 158: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/158.jpg)
Blue noise
White noise Blue noise
![Page 159: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/159.jpg)
Blue noise (with tiling)
White noise Blue noise
![Page 160: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/160.jpg)
Temporal anti-aliasing
●Temporal Shadows● Use Poisson 8 taps kernel rotated every frame
● We use a different rotation per pixel with a blue noise
16x16 2D texture
● The result is smoothed by TAA
![Page 161: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/161.jpg)
Temporal anti-aliasing
const float fAARotation = pPassSRT->_fAARotation; // from 1 to 8. Change at each frame.
const float fScale = 1.f/4.f + 1.f/8.f;
float fRand = tex2Dfetch(BlueNoiseTexture, int2(sSurface.fFragCoord.xy) % 16 , 0).x;
float fAngle = 2.0f * PI * (fRand + fAARotation * fScale);
![Page 162: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/162.jpg)
![Page 163: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/163.jpg)
TAA Off
![Page 164: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/164.jpg)
TAA On
![Page 165: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/165.jpg)
Temporal anti-aliasing
●Temporal Screen Space Sub Surface Scattering● Cross blur filter in 2 passes (7 taps)● Each pass is rotated at each frame● Rotation depend on pixel position and frame ID● Use 3D blue noise 128 x 128 x 8 texture● The result will be smoothed by TAA
![Page 166: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/166.jpg)
Temporal anti-aliasing
float fRand = tex3Dfetch(pConstantData->rBlueNoise,
int3(screenCoord%128, pConstantData->vFrameID.x),0).x;
float fAngle= fRand * TWO_PI ;
![Page 167: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/167.jpg)
SSSSS Off
![Page 168: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/168.jpg)
SSSSS On
![Page 169: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/169.jpg)
TAA Off
![Page 170: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/170.jpg)
TAA On
![Page 171: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/171.jpg)
Temporal anti-aliasing
●Temporal SSAO● Based on Horizon Based Ambient Occlusion (HBAO)●“Image-Space Horizon-Based Ambient Occlusion” by Louis Bavoil,
Miguel Sainz and Rouslan Dimitrov
● Full resolution (1080P)
● 2 steps and 2 directions
● The directions are turned each frame
![Page 172: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/172.jpg)
Temporal anti-aliasing
●Temporal SSAO● HBAO result can’t be smoothed by TAA (“Sparse”
noise)
● “We use a “grainy” blur
● HBAO: 0.85 ms
● “Grainy” blur: 0.32 ms
![Page 173: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/173.jpg)
HBAO Output
![Page 174: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/174.jpg)
Grainy Blur Output
![Page 175: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/175.jpg)
HBAO Output
![Page 176: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/176.jpg)
Sparse noise
HBAO Output
![Page 177: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/177.jpg)
Grainy Blur Output
![Page 178: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/178.jpg)
SSAO Off
![Page 179: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/179.jpg)
SSAO On
![Page 180: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/180.jpg)
Temporal anti-aliasing
●Temporal Screen Space Reflection●“Stochastic Screen-Space Reflections” by Tomasz
Stachowiak (Frostbite)
●“Screen Space Reflections in “The Surge”” by Michele
Giacalone
![Page 181: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/181.jpg)
Temporal anti-aliasing
●Temporal Screen Space Reflection●Physically based
●Half resolution with checkerboard
●To avoid smearing, we use motion vectors at rays
intersection points
![Page 182: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/182.jpg)
Temporal anti-aliasing
●Temporal Screen Space Reflection●Own TAA pass●Use neighborhood clamping with checkerboard.
![Page 183: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/183.jpg)
Checkerboard neighbor clamping
Previous frame (540p)
SSR result(540p checkerboard)
Neighborhoodclamping
Output(540p)
Active pixel: clamp previous pixel with 5 current pixels and
accumulate for TAA
Inactive pixel: clamp previous pixel with 4
current pixels
![Page 184: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/184.jpg)
Temporal anti-aliasing
●Temporal SSR●Own TAA pass●Use neighbor clamping
●Upsampling●The 2x2 noise of SSR (because of half resolution) will break main
TAA
●We must change the noise from 2x2 pixels to 1x1 pixel
●We feel it is less blurry than Frostbite version
![Page 185: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/185.jpg)
SSR Upsampling
We compute min and max values from 5 half resolution
samples
Frame 1 Frame 2
M
M
M
M
m
m
m
m
m = lerp(pixel, min, s);M = lerp(pixel, max, s);
s is a small value.
The average of high resolution pixels will tend to pixel over
time.
Neighbor clamping of main TAA will not affect these pixels.
pixelM
M
m
m
Frame 3 Etc.
Smoothed over time by main TAA
![Page 186: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/186.jpg)
SSR Off
![Page 187: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/187.jpg)
SSR On
![Page 188: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/188.jpg)
Temporal anti-aliasing
●Temporal volumetric lighting● Inspired from “Physically based unified volumetric
rendering in Frostbite” by Sebastien Hillaire.● Fog cluster is a 3D checkerboard
● Checkboard is disabled on spot borders
● TAA use neighbor clamping in 3D
![Page 189: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/189.jpg)
Temporal anti-aliasing
●Temporal volumetric lighting● Sweeping along a froxel (voxel/frustum) can enter in phase
with camera motion. We use a blue noise to avoid this.
● Resolution: 192 x 108 x 64
● PS4 Pro Resolution: 235 x 135 x 64
● Performance: between 2 and 3 ms
![Page 190: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/190.jpg)
![Page 191: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/191.jpg)
Temporal anti-aliasing
●Conclusion● Long development time●Perfect motion vectors
●TAA itself has a lot of subtlety
●Noise is very important
●A lot of implications everywhere
![Page 192: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/192.jpg)
Temporal anti-aliasing
●Conclusion● Long development time
● Improved image quality●Image stability
●Shadows
●SSAO, SSR, Skin SSSSS
●Volumetric lighting
![Page 193: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/193.jpg)
Temporal anti-aliasing
●Conclusion● Long development time
● Improved image quality
● Some drawbacks●Ghosting
●Pixel blinking
●Leaking and vibrations with DOF, motion blur and GUI
![Page 194: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/194.jpg)
Temporal anti-aliasing
●Conclusion● Long development time
● Improved image quality
● Some drawbacks
● Impossible to come back from TAA●Too much feature relies on it now
![Page 195: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/195.jpg)
Temporal anti-aliasing
●Conclusion● Long development time
● Improved image quality
● Some drawbacks
● Impossible to come back from TAA
● It clearly worth it
![Page 196: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/196.jpg)
Detroit: Become Human
●PS4● 1080p at 30 FPS● Volumetric lighting: 192x108x64● Support HDR TV
●PS4 Pro● 2160p checkerboard at 30 FPS● GUI in full 2160p● Volumetric lighting: 235x135x64● Support HDR TV
![Page 197: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/197.jpg)
![Page 198: Clustered Forward Rendering and Anti-Aliasing intwvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Marchalot_Ronan... · Optimized for Playstation hardware PC OpenGL version for](https://reader036.fdocuments.us/reader036/viewer/2022070616/5d46cbc688c993ab508b8a9f/html5/thumbnails/198.jpg)
Thanks
●Engine team● Nicolas Vizerie, Christophe Bonnet, Guillaume Caurant, Bertrand
Cavalie, Thibault Lambert, Gregory Lecot, Eric Lescop, Sylvain Meunier,
●Other thanks● Everyone at Quantic Dream (lighting, set, character, FX, Maya and
others!)● Jean-Charles Perrier● Christophe Brusseaux● Adam Williams● Julien Merceron