Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

mssao presentation

6.782 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie, Unterhaltung & Humor
  • Als Erste(r) kommentieren

mssao presentation

  1. 1. Multi-Resolution Screen-Space Ambient Occlusion<br />Thai-Duong Hoang<br />Kok-Lim Low<br />National University of Singapore<br />1<br />
  2. 2. Ambient Occlusion (AO)<br />𝐩<br /> <br />𝐪<br /> <br />2<br />
  3. 3. AO<br />Cosine-weightedfraction of a tangent hemisphere that is occluded<br />𝐪i<br /> <br />𝐧<br /> <br />𝜽𝒊<br /> <br />𝒅𝒊<br /> <br />𝐩<br /> <br />𝑑𝑚𝑎𝑥<br /> <br />𝐴𝑂𝐩=1𝜋Ω𝜌𝐩,𝑑𝑖cos𝜃𝑖𝑑𝑤𝑖<br /> <br />𝑑𝑖≥𝑑𝑚𝑎𝑥:𝜌=0𝑑𝑖=0        : 𝜌=1<br /> <br />3<br />
  4. 4. Screen-Space AO (SSAO)<br />𝐩<br /> <br />Volumetric AO [SKUT10]<br />4<br />
  5. 5. SSAO(Dis)Advantages<br />Inaccurate<br />Local AO<br />Over/underestimated AO<br />Low quality<br />Noise<br />Blur<br />Simple<br />Fast<br />General<br />Easy to integrate<br />5<br />
  6. 6. Multi-Resolution AO (MSSAO)Intuition<br />𝐴𝑂2<br /> <br />𝐴𝑂1<br /> <br />𝐴𝑂3<br /> <br />𝐴𝑂𝑓𝑖𝑛𝑎𝑙=max𝐴𝑂𝑖<br /> <br />6<br />
  7. 7. Multi-Resolution AO (MSSAO)Intuition<br />256x256<br />𝐴𝑂256<br /> <br />512x512<br />𝐴𝑂512<br /> <br />1024x1024<br />𝐴𝑂1024<br /> <br />𝐴𝑂𝑓𝑖𝑛𝑎𝑙=fmax𝐴𝑂𝑖, average𝐴𝑂𝑖𝐴𝑂𝑓𝑖𝑛𝑎𝑙≥max𝐴𝑂𝑖𝐴𝑂𝑓𝑖𝑛𝑎𝑙∝average𝐴𝑂𝑖<br /> <br />7<br />
  8. 8. MSSAOOverview<br />Geometry<br />g-buffer (1024x1024)<br />Downsample<br />Compute AO<br />(256x256)<br />AO buffer (256x256)<br />g-buffer (256x256)<br />Blur & Upsample<br />g-buffer (512x512)<br />Compute AO<br />(512x512)<br />AO buffer (512x512)<br />Blur & Upsample<br />Compute AO<br />(1024x1024)<br />g-buffer (1024x1024)<br />AO buffer (1024x1024)<br />8<br />
  9. 9. MSSAOAO from Multiple Resolutions<br />9<br />
  10. 10. MSSAOOverview<br />Geometry<br />g-buffer (1024x1024)<br />Downsample<br />Compute AO<br />(256x256)<br />AO buffer (256x256)<br />g-buffer (256x256)<br />Blur & Upsample<br />g-buffer (512x512)<br />Compute AO<br />(512x512)<br />AO buffer (512x512)<br />Blur & Upsample<br />Compute AO<br />(1024x1024)<br />g-buffer (1024x1024)<br />AO buffer (1024x1024)<br />10<br />
  11. 11. MSSAODownsampling<br />𝐩1𝑧≤𝐩2𝑧≤𝐩3𝑧≤𝐩4𝑧<br />if𝐩4𝑧−𝐩1𝑧≤𝑑𝑡h𝑟𝑒𝑠h𝑜𝑙𝑑<br />𝐩←(𝐩2+𝐩3)/2𝐧←(𝐧2+𝐧3)/2<br />else<br />𝐩←𝐩2𝐧←𝐧2<br /> <br />𝑝1<br /> <br />𝑝2<br /> <br />𝑝<br /> <br />𝑝3<br /> <br />𝑝4<br /> <br />11<br />
  12. 12. MSSAOOverview<br />Geometry<br />g-buffer (1024x1024)<br />Downsample<br />Compute AO<br />(256x256)<br />AO buffer (256x256)<br />g-buffer (256x256)<br />Blur & Upsample<br />g-buffer (512x512)<br />Compute AO<br />(512x512)<br />AO buffer (512x512)<br />Blur & Upsample<br />Compute AO<br />(1024x1024)<br />g-buffer (1024x1024)<br />AO buffer (1024x1024)<br />12<br />
  13. 13. MSSAONeighborhood Sampling<br /><ul><li>Project the AO radius of influence to screen space at each pixel 𝑝 at resolution 𝑅𝑒𝑠𝑖 to get 𝑟𝑖(𝑝) (in terms of pixels)
  14. 14. Cap 𝑟𝑖𝑝 to some value 𝑟𝑚𝑎𝑥 (typical value is 5)</li></ul> <br />1024x1024<br />16-point Poisson disk<br />512x512<br />256x256<br />Works well with a 3x3 Gaussian filter<br />13<br />
  15. 15. MSSAOComputing AO<br />Low-variance<br />Cheap<br />Biased<br />𝐪i<br /> <br />𝐧<br /> <br />𝜽𝒊<br /> <br />𝒅𝒊<br /> <br />𝐩<br /> <br />𝐴𝑂(𝐩)=1𝑁𝑖=1𝑁𝜌(𝐩,𝑑𝑖)(𝐧∙𝐪𝑖−𝐩) <br />model after the Monte-Carlo approximation of<br />𝐴𝑂𝐩=1𝜋Ω𝜌𝐩,𝑑𝑖cos𝜃𝑖𝑑𝜔𝑖<br /> <br />14<br />
  16. 16. MSSAOOverview<br />Geometry<br />g-buffer (1024x1024)<br />Downsample<br />Compute AO<br />(256x256)<br />AO buffer (256x256)<br />g-buffer (256x256)<br />Blur & Upsample<br />g-buffer (512x512)<br />Compute AO<br />(512x512)<br />AO buffer (512x512)<br />Blur & Upsample<br />Compute AO<br />(1024x1024)<br />g-buffer (1024x1024)<br />AO buffer (1024x1024)<br />15<br />
  17. 17. MSSAOBilateral Upsampling<br />Bilinear weights 𝑤𝑏<br />Depth weights<br />𝑤𝑧𝑝𝑖=11+𝑧𝑖−𝑧𝑡𝑧<br />Normal weights<br />𝑤𝑛𝑝𝑖=𝐧∙𝐧𝑖𝑡𝑛<br /> <br />916<br /> <br />316<br /> <br />316<br /> <br />116<br /> <br />𝐴𝑂𝑝=𝑖=14𝑤𝑏𝑝𝑖𝑤𝑧𝑝𝑖𝑤𝑛𝑝𝑖𝐴𝑂𝑝𝑖<br /> <br />16<br />
  18. 18. MSSAOCombining AO Values<br />𝐴𝑂𝑓𝑖𝑛𝑎𝑙=1−1−max𝐴𝑂𝑖1−avg𝐴𝑂𝑖<br />max𝐴𝑂𝑖and avg𝐴𝑂𝑖are computed by “propagating” appropriate values across resolutions<br />Avoid underestimating AO by ensuring𝐴𝑂𝑓𝑖𝑛𝑎𝑙≥max𝐴𝑂𝑖<br />And a plausible heuristic𝐴𝑂𝑓𝑖𝑛𝑎𝑙∝avg𝐴𝑂𝑖<br /> <br />17<br />
  19. 19. MSSAOTemporal Filtering<br />𝑘=0.5<br /> <br />𝑘=0<br /> <br />𝐴𝑂𝑐𝑢𝑟𝑟=𝑘 𝐴𝑂𝑝𝑟𝑒𝑣+1−𝑘𝐴𝑂𝑓𝑖𝑛𝑎𝑙<br /> <br />𝑘=0<br /> <br />18<br />
  20. 20. ResultsQuality<br />Blizzard [FM08]<br />MSSAO<br />19<br />
  21. 21. ResultsQuality<br />HBAO [BSD08]<br />MSSAO<br />20<br />
  22. 22. ResultsQuality<br />MSSAO<br />VAO [SKUT10]<br />21<br />
  23. 23. ResultsGround-truth Comparison<br />22<br />MSSAO<br />Blender<br />
  24. 24. ResultsNoise/Blur<br />MSSAO<br />HBAO [BSD08]<br />Blizzard [FM08]<br />23<br />
  25. 25. ResultsMultiple AO Scales<br />Small AO radius<br />MSSAO<br />Large AO radius<br />24<br />
  26. 26. ResultsPerformance<br /><ul><li>Scenes rendered at 1024x1024 on GeForce GTX 460M
  27. 27. Exclusive of geometry pass
  28. 28. The same parameters used to produce the shown images</li></ul>25<br />
  29. 29. MSSAOConclusions<br />Inaccurate<br />Local AO<br />Over/underestimated AO<br />Low quality<br />Noise<br />Blur<br />Use more memory<br />Poor temporal coherence on very thin geometry<br />Not too noticeable<br />Errors due to the use of coarse resolutions<br />Not too noticeable unless compared with ground-truths<br />Simple<br />Fast<br />General<br />Easy to integrate<br />Capture multiple shadow frequencies<br />26<br />
  30. 30. ResultsAdditional Results<br />27<br />
  31. 31. ResultsAdditional Results<br />28<br />
  32. 32. ResultsAdditional Results<br />29<br />
  33. 33. ResultsAdditional Results<br />30<br />
  34. 34. Thank You<br />31<br />

×