O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

mssao presentation

6.736 visualizações

Publicada em

Publicada em: Tecnologia, Diversão e humor
  • Seja o primeiro a comentar

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 />

×