ray traced global illumination for games massively
play

Ray-Traced Global Illumination for Games: Massively Parallel Path - PowerPoint PPT Presentation

Ray-Traced Global Illumination for Games: Massively Parallel Path Space Filtering Nikolaus Binder and Alexander Keller Principles of Image Synthesis Solving the visibility problem Rasterization 2 Principles of Image Synthesis Solving the


  1. Ray-Traced Global Illumination for Games: Massively Parallel Path Space Filtering Nikolaus Binder and Alexander Keller

  2. Principles of Image Synthesis Solving the visibility problem Rasterization 2

  3. Principles of Image Synthesis Solving the visibility problem Rasterization 2

  4. Principles of Image Synthesis Solving the visibility problem Rasterization clipping 2

  5. Principles of Image Synthesis Solving the visibility problem Rasterization clipping Z-buffer 2

  6. Principles of Image Synthesis Solving the visibility problem Rasterization clipping Z-buffer 2

  7. Principles of Image Synthesis Solving the visibility problem Rasterization Reyes clipping dicing Z-buffer kind of Z-Buffer 2

  8. Principles of Image Synthesis Solving the visibility problem Rasterization Reyes clipping dicing Z-buffer kind of Z-Buffer shadow maps shadow maps 2

  9. Principles of Image Synthesis Solving the visibility problem Rasterization Reyes Ray Tracing L P Camera clipping dicing acceleration data structure Z-buffer kind of Z-Buffer tracing rays with arbitrary origins shadow maps shadow maps shadow rays 2

  10. Path tracing on a budget

  11. Massively Parallel Path Space Filtering

  12. Massively Parallel Path Space Filtering Sharing instead of splitting � filtering beyond screen space 5

  13. Massively Parallel Path Space Filtering Sharing instead of splitting � filtering beyond screen space � algorithm 5

  14. Massively Parallel Path Space Filtering Sharing instead of splitting � filtering beyond screen space � algorithm 1. generate paths, select and store vertices 5

  15. Massively Parallel Path Space Filtering Sharing instead of splitting � filtering beyond screen space � algorithm 1. generate paths, select and store vertices 2. average contributions with similar vertex descriptors 5

  16. Massively Parallel Path Space Filtering Sharing instead of splitting � filtering beyond screen space � algorithm 1. generate paths, select and store vertices 2. average contributions with similar vertex descriptors 3. use averaged contributions 5

  17. Massively Parallel Path Space Filtering Sharing instead of splitting � filtering beyond screen space � algorithm 1. generate paths, select and store vertices 2. average contributions with similar vertex descriptors 3. use averaged contributions 5

  18. Massively Parallel Path Space Filtering Sharing instead of splitting � filtering beyond screen space � algorithm 1. generate paths, select and store vertices 2. average contributions with similar vertex descriptors 3. use averaged contributions 5

  19. Massively Parallel Path Space Filtering Bottleneck: Calculating averages � include many “close by” contributions in average 6

  20. Massively Parallel Path Space Filtering Bottleneck: Calculating averages � include many “close by” contributions in average – efficient culling by range search 6

  21. Massively Parallel Path Space Filtering Bottleneck: Calculating averages � include many “close by” contributions in average – efficient culling by range search – but still have to iterate over all of them 6

  22. Massively Parallel Path Space Filtering Bottleneck: Calculating averages � include many “close by” contributions in average – efficient culling by range search – but still have to iterate over all of them – and every vertex needs to do this individually 6

  23. Massively Parallel Path Space Filtering Principle input 7

  24. Massively Parallel Path Space Filtering Principle input local averaging 7

  25. Massively Parallel Path Space Filtering Principle input local averaging average per cell � instead of calculating one average per vertex , calculate one average per cell – cell identified by quantizing a descriptor ( x i ,... ) – proximity defined by equality after quantization instead of distance – worst case complexity O ( N ) instead of O ( N 2 ) 7

  26. Massively Parallel Path Space Filtering Resolving quantization artifacts input average per cell 8

  27. Massively Parallel Path Space Filtering Resolving quantization artifacts input average per cell with jittering 8

  28. Massively Parallel Path Space Filtering Resolving quantization artifacts input average per cell with jittering � jittering descriptor ( x i , ...) on store and look up 9

  29. Massively Parallel Path Space Filtering Resolving quantization artifacts input average per cell with jittering � jittering descriptor ( x i , ...) on store and look up – hides quantization artifacts 9

  30. Massively Parallel Path Space Filtering Resolving quantization artifacts input average per cell with jittering � jittering descriptor ( x i , ...) on store and look up – hides quantization artifacts – resulting uniform noise amenable to (existing) post filtering 9

  31. Massively Parallel Path Space Filtering Resolving quantization artifacts input average per cell with jittering � jittering descriptor ( x i , ...) on store and look up – hides quantization artifacts – resulting uniform noise amenable to (existing) post filtering � amounts to stochastic evaluation of interpolation 9

  32. Massively Parallel Path Space Filtering Hashing instead of searching � descriptors for selected vertices include world space location x 10

  33. Massively Parallel Path Space Filtering Hashing instead of searching � descriptors for selected vertices include world space location x and optionally normal n , 10

  34. Massively Parallel Path Space Filtering Hashing instead of searching � descriptors for selected vertices include world space location x and optionally normal n , incident angle ω , 10

  35. Massively Parallel Path Space Filtering Hashing instead of searching � descriptors for selected vertices include world space location x and optionally normal n , incident angle ω , and BRDF layer 10

  36. Massively Parallel Path Space Filtering Storing and looking up data with quantized descriptors � fast updates, no pre-processing 11

  37. Massively Parallel Path Space Filtering Storing and looking up data with quantized descriptors � fast updates, no pre-processing � access in constant time 11

  38. Massively Parallel Path Space Filtering Storing and looking up data with quantized descriptors � fast updates, no pre-processing � access in constant time – requires injective mapping ( x , n ,... ) �→ [ 0 , M ) 11

  39. Massively Parallel Path Space Filtering Storing and looking up data with quantized descriptors � fast updates, no pre-processing � access in constant time – requires injective mapping ( x , n ,... ) �→ [ 0 , M ) ⇒ hash map 11

  40. Massively Parallel Path Space Filtering Fast hash map � trade a larger table size for faster access 12

  41. Massively Parallel Path Space Filtering Fast hash map � trade a larger table size for faster access � simple, fast hash functions 12

  42. Massively Parallel Path Space Filtering Fast hash map � trade a larger table size for faster access � simple, fast hash functions � linear probing for collision resolution 12

  43. Massively Parallel Path Space Filtering Fast hash map � trade a larger table size for faster access � simple, fast hash functions � linear probing for collision resolution � use a second hash of the descriptor instead of storing full keys – may fail, but is very very unlikely 12

  44. Massively Parallel Path Space Filtering Linear instead of quadratic � finding the hash table location i i ← hash (˜ x ,... ) % table size for both averaging and querying 13

  45. Massively Parallel Path Space Filtering Linear instead of quadratic � finding the hash table location i i ← hash (˜ x ,... ) % table size v ← hash2 (˜ x , n ,... ) for both averaging and querying 13

  46. Massively Parallel Path Space Filtering Linear instead of quadratic � finding the hash table location i l ′ ← level of detail ( | p cam − x ′ | ) � x ′ � ˜ x ← scale · 2 l ′ i ← hash (˜ x ,... ) % table size v ← hash2 (˜ x , n ,... ) for both averaging and querying 13

  47. Massively Parallel Path Space Filtering Linear instead of quadratic � finding the hash table location i l ← level of detail ( | p cam − x | ) x ′ ← x + jitter ( n ) · scale · 2 l l ′ ← level of detail ( | p cam − x ′ | ) � x ′ � ˜ x ← scale · 2 l ′ i ← hash (˜ x ,... ) % table size v ← hash2 (˜ x , n ,... ) for both averaging and querying 13

  48. Massively Parallel Path Space Filtering Linear instead of quadratic � finding the hash table location i l ← level of detail ( | p cam − x | ) x ′ ← x + jitter ( n ) · scale · 2 l l ′ ← level of detail ( | p cam − x ′ | ) � x ′ � ˜ x ← scale · 2 l ′ i ← hash (˜ x ,... ) % table size v ← hash2 (˜ x , n ,... ) for both averaging and querying 13

  49. Massively Parallel Path Space Filtering Linear instead of quadratic � finding the hash table location i l ′ ← level of detail ( | p cam − x ′ | ) � x ′ � ˜ x ← scale · 2 l ′ i ← hash (˜ x ,... ) % table size v ← hash2 (˜ x , n ,... ) for both averaging and querying 13

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend