Successfully reported this slideshow.
Your SlideShare is downloading. ×

Siggraph2016 - The Devil is in the Details: idTech 666

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 58 Ad

Siggraph2016 - The Devil is in the Details: idTech 666

Download to read offline

A behind-the-scenes look into the latest renderer technology powering the critically acclaimed DOOM. The lecture will cover how technology was designed for balancing a good visual quality and performance ratio. Numerous topics will be covered, among them details about the lighting solution, techniques for decoupling costs frequency and GCN specific approaches.

A behind-the-scenes look into the latest renderer technology powering the critically acclaimed DOOM. The lecture will cover how technology was designed for balancing a good visual quality and performance ratio. Numerous topics will be covered, among them details about the lighting solution, techniques for decoupling costs frequency and GCN specific approaches.

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Similar to Siggraph2016 - The Devil is in the Details: idTech 666 (20)

Advertisement

Recently uploaded (20)

Siggraph2016 - The Devil is in the Details: idTech 666

  1. 1. THE DEVIL IS IN THE DETAILS
  2. 2. Initial Requirements          
  3. 3. Anatomy of a Frame Frame Cost          
  4. 4. Data Structure for Lighting & Shading         
  5. 5. Preparing Clustered Structure      𝑍𝑆𝑙𝑖𝑐𝑒 = 𝑁𝑒𝑎𝑟𝑧 × ( 𝐹𝑎𝑟𝑧 𝑁𝑒𝑎𝑟𝑧 ) 𝑠𝑙𝑖𝑐𝑒 𝑛𝑢𝑚 𝑠𝑙𝑖𝑐𝑒𝑠    
  6. 6. Preparing Clustered Structure       //Pseudo-code - 1 job per depth slice ( if any item ) for ( y = MinY; y < MaxY; ++y ) { for ( x = MinX; x < MaxX; ++x ) { intersects = N planes vs cell AABB if ( intersects ) { Register item } } }
  7. 7. Preparing Clustered Structure             
  8. 8. Preparing Clustered Structure
  9. 9. Preparing Clustered Structure
  10. 10. Detailing the World         
  11. 11. Detailing the World            
  12. 12. Detailing the World   𝑒0 𝑒1   const float4 albedo = tex2Dgrad( decalsAtlas, uv.xy * scaleBias.xy + scaleBias.zw, uvDDX, uvDDY ); 𝑒 𝑒 𝑒 𝑒0 𝑥 𝑒1 𝑥 2 𝑥 𝑥 𝑒0 𝑦 𝑒1 𝑦 2 𝑦 𝑦 𝑒0 𝑧 𝑒1 𝑧 2 𝑧 𝑧 0 0 0 1 0.5 𝑠𝑖𝑧𝑒𝑋 0 0 0.5 0 0.5 𝑠𝑖𝑧𝑒𝑌 0 0.5 0 0 0.5 𝑠𝑖𝑧𝑒𝑍 0.5 0 0 0 1 ∙
  13. 13. Detailing the World          
  14. 14. Detailing the World
  15. 15. Detailing the World
  16. 16. Detailing the World
  17. 17. Detailing the World
  18. 18. Detailing the World
  19. 19. Detailing the World
  20. 20. Lighting          
  21. 21. Lighting //Pseudocode ComputeLighting( inputs, outputs ) { Read & Pack base textures for each decal in cell { early out fragment check Read textures Blend results } for each light in cell { early out fragment check Compute BRDF / Apply Shadows Accumulate lighting } }
  22. 22. Lighting            
  23. 23. Lighting          
  24. 24. Lighting  
  25. 25. Lighting            
  26. 26. Transparents      
  27. 27. Particle Lighting          
  28. 28. Decoupled Particle Lighting          
  29. 29. Decoupled Particle Lighting //Pseudocode – Particle shading becomes something like this Particles( inputs, outputs ) { … const float3 lighting = tex2D( particleAtlas, inputs.texcoord ); result = lighting * inputs.albedo; … }
  30. 30. Decoupled Particle Lighting          Particle Light Atlas
  31. 31. Decoupled Particle Lighting 
  32. 32. Post-Process
  33. 33. Optimizing Data Fetching ( GCN )        
  34. 34. Clustered Lighting Access Patterns
  35. 35. Clustered Lighting Access Patterns
  36. 36. Clustered Lighting Access Patterns
  37. 37. Clustered Lighting Access Patterns
  38. 38. Analyzing the Data       
  39. 39. 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
  40. 40. Special Paths           
  41. 41. Dynamic Resolution Scaling         
  42. 42. Async Post Processing         
  43. 43. GCN Wave Limits Tuning       
  44. 44. GCN Register Usage         
  45. 45. What’s next ?       
  46. 46. Special Thanks      
  47. 47.   We are Hiring !
  48. 48. Thank you     
  49. 49. References              
  50. 50. Bonus Slides
  51. 51. Lighting               
  52. 52. Deferred Passes        

×