Screen space ambient occlusion
Screen space ambient occlusion (SSAO) is a rendering technique for efficiently approximating the computer graphics ambient occlusion effect in real time. It was developed by Vladimir Kajalin while working at Crytek and was used for the first time in a video game in the 2007 Windows game Crysis made by Crytek.
Contents |
Implementation [edit]
The algorithm is implemented as a pixel shader, analyzing the scene depth buffer which is stored in a texture. For every pixel on the screen, the pixel shader samples the depth values around the current pixel and tries to compute the amount of occlusion from each of the sampled points. In its simplest implementation, the occlusion factor depends only on the depth difference between sampled point and current point.
Without additional smart solutions, such a brute force method would require about 200 texture reads per pixel for good visual quality. This is not acceptable for real-time rendering on current graphics hardware. In order to get high quality results with far fewer reads, sampling is performed using a randomly rotated kernel. The kernel orientation is repeated every N screen pixels in order to have only high-frequency noise in the final picture. In the end this high frequency noise is greatly removed by a NxN post-process blurring step taking into account depth discontinuities (using methods such as comparing adjacent normals and depths). Such a solution allows a reduction in the number of depth samples per pixel to about 16 or fewer while maintaining a high quality result, and allows the use of SSAO in soft real-time applications like computer games.
Compared to other ambient occlusion solutions, SSAO has the following advantages:
- Independent from scene complexity.
- No data pre-processing needed, no loading time and no memory allocations in system memory.
- Works with dynamic scenes.
- Works in the same consistent way for every pixel on the screen.
- No CPU usage – it can be executed completely on the GPU.
- May be easily integrated into any modern graphics pipeline.
Of course it has its disadvantages as well:
- Rather local and in many cases view-dependent, as it is dependent on adjacent texel depths which may be generated by any geometry whatsoever.
- Hard to correctly smooth/blur out the noise without interfering with depth discontinuities, such as object edges (the occlusion should not "bleed" onto objects).
Games using SSAO [edit]
|
|
This section needs additional citations for verification. (August 2011) |
- Crysis (2007) (Windows) [1]
- Gears of War 2 (2008) (Xbox 360)[2]
- S.T.A.L.K.E.R.: Clear Sky (2008) (Windows)[3]
- Crysis Warhead (2008) (Windows) [1]
- Bionic Commando (2009) (Windows and Xbox 360 versions)[4]
- Burnout Paradise: The Ultimate Box (2009) (Windows)[5]
- Empire: Total War (2009) (Windows)[6]
- Risen (2009) (Windows and Xbox 360 versions)[7]
- BattleForge (2009) (Windows)[8]
- Borderlands (2009) (Windows and Xbox 360 versions)[9]
- F.E.A.R. 2: Project Origin (2009) (Windows) [10]
- Fight Night Champion (2011) (PlayStation 3 and Xbox 360) [11]
- Batman: Arkham Asylum (2009) (Windows and Xbox 360 versions)[12]
- Uncharted 2: Among Thieves (2009) (PlayStation 3)[13]
- Shattered Horizon (2009) (Windows)[14]
- NecroVision (2009) (Windows)
- S.T.A.L.K.E.R.: Call of Pripyat (2009) (Windows)[15]
- Red Faction: Guerrilla (2009) (Windows)[16]
- Napoleon: Total War (2010) (Windows)[17]
- Star Trek Online (2010) (Windows)
- Just Cause 2 (2010) (Windows)[18]
- Metro 2033 (2010) (Windows and Xbox 360 versions)[19]
- Dead to Rights: Retribution (2010) (PlayStation 3 and Xbox 360)
- Alan Wake (2010) (Xbox 360)[20]
- Toy Story 3: The Video Game (2010) (PlayStation 3 and Xbox 360)
- Eve Online (Nvidia GPUs only) [21]
- Halo: Reach (2010) (Xbox 360)[22][23]
- Transformers: War for Cybertron (2010) (PlayStation 3 and Xbox 360)[24]
- StarCraft II: Wings of Liberty (2010) (Windows) (after Patch 1.2.0 released 1/12/2011)[25]
- City of Heroes (2010) (Windows) [26]
- ArmA 2/Operation Arrowhead (2009-2010) (Windows)[27]
- The Settlers 7: Paths to a Kingdom (2010) (Windows) [28]
- Mafia II (2010) (Windows and Xbox 360)[29][30]
- Amnesia: The Dark Descent (2010) (Linux, Windows)[31]
- Arcania: A Gothic Tale (2010) (Windows)[32]
- Assassin's Creed: Brotherhood (2010) (PlayStation 3, Xbox 360 and Windows)[33][34]
- Battlefield: Bad Company 2 (2010) (Windows) (uses HBAO - improved form of SSAO)[35]
- Costume Quest (2010) (PlayStation 3, Xbox 360 and Windows)
- James Bond 007: Blood Stone (2010) (PlayStation 3, Xbox 360 and Windows)[36]
- Dragon Age II (2011) (Windows)[37]
- Crysis 2 (2011) (Windows, Xbox 360 and PlayStation 3)[38]
- IL-2 Sturmovik: Cliffs of Dover (2011) (Windows)[39]
- The Witcher 2: Assassins of Kings (2011) (Windows)[40]
- L.A. Noire (2011) (PlayStation 3, Xbox 360 and Windows)[41]
- Infamous 2 (2011) (PlayStation 3)[42]
- Deus Ex: Human Revolution (2011) (PlayStation 3, Xbox 360 and Windows)[43]
- Dead Island (2011) (PlayStation 3, Xbox 360 and Windows)[44]
- Battlefield 3 (2011) (PlayStation 3, Xbox 360 and Windows)[45]
- Call of Duty: Modern Warfare 3 (2011) (Windows version only)[46]
- Saints Row: The Third (2011) (PlayStation 3, Xbox 360 and Windows)[47]
- F.E.A.R. 3 (2011) (Windows and Xbox 360)
- Batman: Arkham City (2011) (Windows version only) (uses HBAO)
- The Elder Scrolls V: Skyrim (2011) (Windows version only through modification, or enabling AO through Nvidia driver control panel)
- 7554 (2011) (Windows)
- World of Tanks (2010) (since patch 0.8.0)
- World of Warcraft (2012) (Windows, Mac OS) (since Mists of Pandaria expansion prepatch 5.0.4)
- Binary Domain (2012) (Windows, PlayStation 3, Xbox 360)
- Max Payne 3 (2012) (Windows, PlayStation 3, Xbox 360)
- The Secret World (2012) (Windows)
- Darksiders II (2012) (Windows version only)
- Overgrowth (TBD) (Windows, Mac and Linux)
- The War Z (2012) (Windows)
- Hitman: Absolution (2012)
- Far Cry 3 (2012)
- Chivalry: Medieval Warfare (2012)
- Vox (2012) (Windows)
- The Cave (video game) (2013) (Windows, Mac and Linux)[48]
- Tomb Raider (2013) (Windows)
- Slender: The Arrival (2013) (Windows) [49]
See also [edit]
References [edit]
- ^ a b "CryENGINE® 2". Crytek. Retrieved 2011-08-26.
- ^ "Gears of War Series | Showcase | Unreal Technology". Unrealengine.com. 2008-11-07. Retrieved 2011-08-26.
- ^ "STALKER: Clear Sky Tweak Guide". TweakGuides.com. Retrieved 2011-08-26.
- ^ "Head2Head: Bionic Commando". Lens of Truth. 2009-05-29. Retrieved 2011-08-26.
- ^ "Benchmarks: SSAO Enabled : Burnout Paradise: The Ultimate Box, Performance Analysis". Tomshardware.com. Retrieved 2011-08-26.
- ^ "Empire: Total War – No anti-aliasing in combination with SSAO on Radeon graphics cards – Empire Total War, anti-aliasing, SSAO, Radeon, Geforce" (in (German)). PC Games Hardware. 2009-03-11. Retrieved 2011-08-26.
- ^ "Risen Tuning Tips: Activate Anti Aliasing, improve graphics and start the game faster – Risen, Tipps, Anti Aliasing, Graphics Enhancements" (in (German)). PC Games Hardware. 2009-10-06. Retrieved 2011-08-26.
- ^ "AMD’s Radeon HD 5850: The Other Shoe Drops". AnandTech. Retrieved 2011-08-26.
- ^ "Head2Head: Borderlands Analysis". Lens of Truth. 2009-10-29. Retrieved 2011-08-26.
- ^ http://www.pcgameshardware.com/aid,675766/Fear-2-Project-Origin-GPU-and-CPU-benchmarks-plus-graphics-settings-compared/Reviews/
- ^ http://imagequalitymatters.blogspot.com/2011/03/tech-analysis-fight-night-champion-360_12.html
- ^ "Head2Head – Batman: Arkham Asylum". Lens of Truth. 2009-08-24. Retrieved 2011-08-26.
- ^ "Among Friends: How Naughty Dog Built Uncharted 2 – Page 3 | DigitalFoundry". Eurogamer.net. 2010-03-20. Retrieved 2011-08-26.
- ^ http://mgnews.ru/read-news/otvety-glavnogo-dizajnera-shattered-horizon-na-vashi-voprosy
- ^ http://www.pcgameshardware.com/aid,699424/Stalker-Call-of-Pripyat-DirectX-11-vs-DirectX-10/Practice/
- ^ http://www.eurogamer.net/articles/digitalfoundry-red-faction-guerilla-pc-tech-comparison?page=2
- ^ http://www.pcgameshardware.com/aid,705532/Napoleon-Total-War-CPU-benchmarks-and-tuning-tips/Practice/
- ^ http://ve3d.ign.com/articles/features/53469/Just-Cause-2-PC-Interview
- ^ http://www.eurogamer.net/articles/metro-2033-4a-engine-impresses-blog-entry
- ^ "Alan Wake FAQ – Alan Wake Community Forums". Forum.alanwake.com. Retrieved 2011-08-26.
- ^ CCP. "EVE Insider | Patchnotes". EVE Online. Retrieved 2011-08-26.
- ^ "Bungie Weekly Update: 04.16.10 : 4/16/2010 3:38 PM PDT". Bungie.net. Retrieved 2011-08-26.
- ^ "Halo: Reach beta footage analysis – Page 1 | DigitalFoundry". Eurogamer.net. 2010-04-25. Retrieved 2011-08-26.
- ^ http://www.eurogamer.net/articles/digitalfoundry-xbox360-vs-ps3-round-27-face-off?page=2
- ^ Entertainment, Blizzard (2011-08-19). "Patch 1.2.0 Now Live – StarCraft II". Us.battle.net. Retrieved 2011-08-26.
- ^ "Issue 17: Dark Mirror Patch Notes | City of Heroes® : The Worlds Most Popular Superpowered MMO". Cityofheroes.com. Retrieved 2011-08-26.
- ^ "Ask Bohemia (about Operation Arrowhead... or anything else you want to ask)! – Bohemia Interactive Community". Community.bistudio.com. 2010-05-06. Retrieved 2011-08-26.
- ^ "The Settlers 7: Paths to a Kingdom – Engine". YouTube. 2010-03-21. Retrieved 2011-08-26.
- ^ http://imagequalitymatters.blogspot.com/2010/08/tech-analysis-mafia-ii-demo-ps3-vs-360.html
- ^ http://www.eurogamer.net/articles/digitalfoundry-mafia-ii-demo-showdown
- ^ http://geekmontage.com/texts/game-fixes-amnesia-the-dark-descent-crashing-lag-black-screen-freezing-sound-fixes/
- ^ http://www.bit-tech.net/gaming/pc/2010/10/25/arcania-gothic-4-review/1
- ^ "Face-Off: Assassin's Creed: Brotherhood – Page 2 | DigitalFoundry". Eurogamer.net. 2010-11-18. Retrieved 2011-08-26.
- ^ "Assassins Creed: Brotherhood PC Performance Analysis". Dasreviews.com. 2011-02-14. Retrieved 2012-05-10.
- ^ http://www.guru3d.com/news/battlefield-bad-company-2-directx-11-details-/
- ^ http://www.lensoftruth.com/head2head-blood-stone-007-hd-screenshot-comparison/
- ^ http://www.techspot.com/review/374-dragon-age-2-performance-test/
- ^ http://crytek.com/sites/default/files/Crysis%202%20Key%20Rendering%20Features.pdf
- ^ http://store.steampowered.com/news/5321/?l=russian
- ^ http://www.pcgamer.com/2011/05/25/the-witcher-2-tweaks-guide/
- ^ "Face-Off: L.A. Noire – Page 1 | DigitalFoundry". Eurogamer.net. 2011-05-23. Retrieved 2011-08-26.
- ^ http://imagequalitymatters.blogspot.com/2010/07/tech-analsis-infamous-2-early-screens.html
- ^ http://www.eurogamer.net/articles/deus-ex-human-revolution-face-off
- ^ http://www.eurogamer.net/articles/digitalfoundry-dead-island-face-off
- ^ http://publications.dice.se/attachments/BF3_NFS_WhiteBarreBrisebois_Siggraph2011.pdf
- ^ http://community.callofduty.com/thread/4682
- ^ http://www.eurogamer.net/articles/digitalfoundry-face-off-saints-row-the-third
- ^ http://www.doublefine.com/forums/viewthread/8547/#261785
- ^ "Slender: The Arrival". Parsec Productions. Retrieved 2013-05-03.
External links [edit]
- Finding Next Gen – CryEngine 2
- Video showing SSAO in action
- Image Enhancement by Unsharp Masking the Depth Buffer
- Hardware Accelerated Ambient Occlusion Techniques on GPUs
Overview on Screen Space Ambient Occlusion Techniques(as of March 1, 2012)- Real-Time Depth Buffer Based Ambient Occlusion
- Source code of SSAO shader used in Crysis
- Approximating Dynamic Global Illumination in Image Space
- Accumulative Screen Space Ambient Occlusion
- NVIDIA has integrated SSAO into drivers
- Several methods of SSAO are described in ShaderX7 book
- SSAO Shader ( Russian )
- SSAO Tutorial, extension of the technique used in Crysis