Siggraph2016 Idtech6
Siggraph2016 Idtech6
Initial Requirements
Anatomy of a Frame
Frame Cost
Data Structure for Lighting & Shading
Preparing Clustered Structure
𝑠𝑙𝑖𝑐𝑒
𝐹𝑎𝑟𝑧
𝑍𝑆𝑙𝑖𝑐𝑒 = 𝑁𝑒𝑎𝑟𝑧 × ( )𝑛𝑢𝑚 𝑠𝑙𝑖𝑐𝑒𝑠
𝑁𝑒𝑎𝑟𝑧
Preparing Clustered Structure
0.5 𝑒 𝑒
𝑠𝑖𝑧𝑒𝑋
0 0 0.5 𝑒0𝑥 𝑒1𝑥 2𝑥 𝑥
0
0.5
0 0.5 𝑒0𝑦 𝑒1𝑦 2𝑦 𝑦 𝑒
𝑠𝑖𝑧𝑒𝑌
0.5 𝑒0𝑧 𝑒1𝑧 2𝑧 𝑧
0 0 0.5
𝑠𝑖𝑧𝑒𝑍 0 0 0 1
0 0 0 1
const float4 albedo = tex2Dgrad( decalsAtlas, uv.xy * scaleBias.xy + scaleBias.zw, uvDDX, uvDDY );
Detailing the World
Detailing the World
Detailing the World
Detailing the World
Detailing the World
Detailing the World
Detailing the World
Lighting
Lighting
//Pseudocode
Lighting
Lighting
Transparents
Particle Lighting
Decoupled Particle Lighting
Decoupled Particle Lighting
Decoupled Particle Lighting
Post-Process
Optimizing Data Fetching ( GCN )
Clustered Lighting Access Patterns
Clustered Lighting Access Patterns
Clustered Lighting Access Patterns
Clustered Lighting Access Patterns
Analyzing the Data
Leveraging Access Patterns
Thread X A B D
Thread Y B C E
Thread Z A C D E
Scalar A B C D E
Special Paths
Dynamic Resolution Scaling
Async Post Processing
GCN Wave Limits Tuning
GCN Register Usage
What’s next ?
Special Thanks
We are Hiring !
Thank you
References
Bonus Slides
Lighting
Deferred Passes