O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Siggraph2016 - The Devil is in the Details: idTech 666

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 58 Anúncio

Siggraph2016 - The Devil is in the Details: idTech 666

Baixar para ler 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.

Anúncio
Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a Siggraph2016 - The Devil is in the Details: idTech 666 (20)

Anúncio

Mais recentes (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        

×