Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SSDO

3,246 views

Published on

Presentation on screen space directional occlusion. Original paper: https://people.mpi-inf.mpg.de/~ritschel/Papers/SSDO.pdf

Published in: Software
  • Be the first to comment

SSDO

  1. 1. Approximating Dynamic Global Illumination in Image Space Tobias Ritschel Thorsten Grosch Hans-Peter Seidel Slides & Presentation: Marc Sunet December 3, 2014
  2. 2. Table of contents Motivation From SSAO to SSDO Implementation Beyond SSDO’s inherited limitations Integration with GI Results SSDO in CryEngine 3 Links and References
  3. 3. Plan Motivation From SSAO to SSDO Implementation Beyond SSDO’s inherited limitations Integration with GI Results SSDO in CryEngine 3 Links and References
  4. 4. Realtime GI Light Propagation Volumes in CryEngine 3 Enlighten’s Real-Time Radiosity Playing with Real-Time Shadows
  5. 5. Motivation Many real-time GI techniques exist that can simulate 1 bounce of diffuse/glossy transfer. But only capture low-frequency lighting (lpv uses 2nd order SH). High-freq detail baked in for high quality results: Reflections: SSRT High-freq shadows: SSAO High-freq directional shadows + 1 bounce diffuse transfer: SSDO
  6. 6. Previous Work Diverse set of AO methods. Pre-computed AO. AO fields. AO for animated characters. Color bleeding effects. But these required a discretisation of the surface or relied on ray tracing.
  7. 7. Plan Motivation From SSAO to SSDO Implementation Beyond SSDO’s inherited limitations Integration with GI Results SSDO in CryEngine 3 Links and References
  8. 8. Ambient Occlusion https://developer.nvidia.com/shadowworks
  9. 9. Ambient occlusion has just one minor inconvenience...
  10. 10. www.derschmale.com/2013/12/12/screen-space-ambient-occlusion-battling-your-contrast-bias/
  11. 11. Ambient Occlusion Pipeline http://lonerobot.net/?p=349
  12. 12. Ambient Occlusion: Typical Model 1. Compute colour L∗ o(x, ωo) = Ω L∗ i (x, ωi ) p(x, ωi , ωo) cos θ dωi 2. Compute AO AO(x) = 1 π Ω V (x, ωi ) cos θ dωi 3. Blend Lo(x, ωo) = L∗ o(x, ωo) · AO(x)
  13. 13. Discussion AO decouples illumination and visibility. AO is undirectional. AO is not physically correct. www.derschmale.com/2013/12/12/screen-space-ambient-occlusion-battling-your-contrast-bias/
  14. 14. From AO to SSDO AO Lo(x, ωo) = 1 π Ω V (x, ωi ) cos θ dωi · Ω L∗ i (x, ωi) p(x, ωi , ωo) cos θ dωi SSDO Lo(x, ωo) = Ω L∗ i (x, ωi) p(x, ωi , ωo) V (x, ωi ) cos θ dωi
  15. 15. SSDO Screen space directional occlusion (SSDO): Accounts for the direction of the incoming light. Includes one bounce of indirect illumination. Complements standard, object-based global illumination. Requires only minor additional computational time (wrt SSAO, modulo fixes).
  16. 16. Plan Motivation From SSAO to SSDO Implementation Beyond SSDO’s inherited limitations Integration with GI Results SSDO in CryEngine 3 Links and References
  17. 17. SSDO Implementation Input: http://gamasutra.com/blogs/AlexandruVoica/20140318/213148/Practical_techniques_for_ray_tracing_in_games.php Two-pass algorithm: 1. Compute direct lighting. 2. Compute 1 bounce of indirect lighting.
  18. 18. Pass 1: Direct Lighting P n
  19. 19. Pass 1: Direct Lighting P B A C D n
  20. 20. Pass 1: Direct Lighting P B A C D n
  21. 21. Pass 1: Direct Lighting P B A C D n
  22. 22. Pass 1: Direct Lighting Ldir(P) = N i=1 ρ π Lin(ωi ) V (ωi ) cos θ ∆ω, ∆ω = 2π N
  23. 23. Pass 2: Indirect Lighting P B θsi θri As
  24. 24. Pass 2: Indirect Lighting Lind(P) = N i=1 ρ π Lpixel(1 − V (ωi )) As cos θsi cos θri d2 i
  25. 25. Implementation details Pass 1: Use additional samples for important light sources (e.g. sun). Use shadow maps instead of screen space visibility. Sampling: M × N texture storing M sets of N pre-computed samples λi ωi . Final pass: Apply geometry-sensitive blur to remove noise introduced by randomisation.
  26. 26. Coloured Shadows SSDO gives rise to coloured shadows (with and without bounce):
  27. 27. Coloured Shadows P n SSAO : (red + green + blue) * AO = black SSDO : (red*0 + green*1 + blue*0) = green
  28. 28. Colour Bleeding The additional bounce results in colour bleeding:
  29. 29. Plan Motivation From SSAO to SSDO Implementation Beyond SSDO’s inherited limitations Integration with GI Results SSDO in CryEngine 3 Links and References
  30. 30. Limitations SSDO essentially follows the same sampling scheme as SSAO. Limitations of SSAO are inherited by SSDO. Authors propose a set of solution to these limitations. This is the part where ”requires only minor additional computation time” ends.
  31. 31. The Problem at a Glance Source of indirect illumination becomes occluded. Indirect lighting smoothly fades out. Resulting artifacts are not visually disturbing, but result is biased (more biased than it originally was).
  32. 32. The Actual Problems (and a peek at their solutions)
  33. 33. Solutions Blocker misclassified as visible. Take multiple samples. Visible misclassified as blocked. Depth peeling. Multiple cameras.
  34. 34. Depth Peeling Assumption: 2-manifold geometry. Perform n render passes to store n depth values. Occlusion if point is between z1 and z2, or z3 and z4, or . . . or zn−1 and zn. Avg. overhead: +30%
  35. 35. Depth Peeling
  36. 36. Multiple Cameras Introduce multiple cameras to prevent occlusions. But how many, and where do we place them?
  37. 37. Multiple Cameras Authors’ solution: 4 additional cameras Low-res framebuffer. Standard depth buffer. Directed towards same center-of-interest. Relative position of additional cameras set manually as a function of scene’s bounding sphere. Avg. overhead: +58 − 160%
  38. 38. Multiple Cameras
  39. 39. Plan Motivation From SSAO to SSDO Implementation Beyond SSDO’s inherited limitations Integration with GI Results SSDO in CryEngine 3 Links and References
  40. 40. Integration with Existing GI Solutions Idea: 1. Compute GI on a coarse representation of geometry. 2. Bake in high-freq details in screen space at runtime. Authors demonstrate SSDO combined with: Environment map illumination. Instant radiosity.
  41. 41. Low-Freq Shadows and Depth Bias Small-scale details lost due to coarse shadow map and depth bias.
  42. 42. Low-Freq Shadows and Depth Bias Small-scale details baked in with SSDO.
  43. 43. Environment Mapping + SSDO
  44. 44. Instant Radiosity + SSDO
  45. 45. Plan Motivation From SSAO to SSDO Implementation Beyond SSDO’s inherited limitations Integration with GI Results SSDO in CryEngine 3 Links and References
  46. 46. Results NVIDIA GeForce 8800 GTX
  47. 47. Plan Motivation From SSAO to SSDO Implementation Beyond SSDO’s inherited limitations Integration with GI Results SSDO in CryEngine 3 Links and References
  48. 48. SSDO in CryEngine 3: Bent Normals N (x) = 1 π Ω V (x, ω) ω dω http://pages.cs.wisc.edu/~ltokheim/ambenv/ 1. Compute N · L and N · L. 2. Attenuate light with clamped difference.
  49. 49. SSDO Off The Art and Technology behind Crysis 3
  50. 50. SSDO On The Art and Technology behind Crysis 3
  51. 51. Plan Motivation From SSAO to SSDO Implementation Beyond SSDO’s inherited limitations Integration with GI Results SSDO in CryEngine 3 Links and References
  52. 52. Links Approximating Dynamic Global Illumination in Image Space http://people.mpi-inf.mpg.de/~ritschel/SSDO/ Bent Normals and Cones in Screen-Space https://people.mpi-inf.mpg.de/~ritschel/Papers/ ScreenSpaceBentCones.pdf CryENGINE 3: Three Years of Work in Review, GPU Pro 3 http://www.amazon.com/ GPU-PRO-Advanced-Rendering-Techniques/dp/1439887829 Secrets of CryENGINE 3 Graphics Technology http://www.crytek.com/cryengine/presentations/ secrets-of-cryengine-3-graphics-technology
  53. 53. Links The Art and Technology behind Crysis 3 http://www.crytek.com/cryengine/presentations/ the-art-and-technology-behind-crysis-3 Shining the Light on Crysis 3 http://www.crytek.com/cryengine/presentations/ shining-the-light-on-crysis-3 Playing with Real-Time Shadows http://www.crytek.com/cryengine/presentations/ playing-with-real-time-shadows

×