SSAO

SSAO ( anglicky  screen space ambient occlusion - obstruction of ambient light in screen space ) je softwarová technika (metoda) v trojrozměrné počítačové grafice , která je přibližnou imitací globálního osvětlení a je upravenou a vylepšenou verzí techniky Ambient occlusion . . Algoritmus SSAO pracuje v reálném čase a simuluje rozptýlené nepřímé osvětlení a odpovídající ztmavení ve 3D virtuálním prostoru.

SSAO vyvinulo oddělení výzkumu a vývoje německé společnosti Crytek při vývoji grafických komponent herního enginu CryEngine 2 . [1] Crysis , první hra CryEngine 2 vyvinutá společností Crytek a vydaná na podzim roku 2007, byla první, která používala SSAO. Později byl tento algoritmus a jeho modifikace použity v mnoha herních enginech, včetně Leadwerks Engine , Dagor Engine , Unreal Engine , Unity , X-Ray , Glacier 2 a dalších.

Popis práce

Algoritmus SSAO běží na grafickém procesoru grafické karty a je implementován jako pixel shader , který analyzuje hloubkový buffer ( Z-buffer ) scény, který je uložen v textuře .

Při spuštění algoritmu Ambient occlusion, pixel shader vzorkuje hodnotu hloubky pro každý pixel na obrazovce kolem aktuálního pixelu a pokusí se vypočítat počet okluzí z každého z vybraných bodů. Ve své nejjednodušší implementaci závisí faktor okluze pouze na rozdílu hloubky mezi vybraným bodem a aktuálním bodem. Bez dalších pokročilých řešení a algoritmů by toto přímé řešení vyžadovalo přibližně 200 čtení textur na pixel pro dobrou vizuální kvalitu. Toto číslo není přijatelné pro vykreslování v reálném čase na moderních GPU.

Algoritmus SSAO si klade za cíl zjednodušit výpočetní složitost algoritmu Ambient occlusion a učinit jej vhodným pro provoz v reálném čase na GPU. Kvalita výsledného obrazu v SSAO je však horší než v původní Ambient okluzi, protože SSAO používá aproximační (aproximační) techniky vykreslování.

Chcete-li vytvořit prostorovou okluzi obrazovky, musíte mít dvě textury scény:

Poté se vezme mapa polohy a normální mapa každého texelu na obrazovce a zpracují se sousední texely. Ve vztahu k polohám sousedních texelů ke zpracovávanému je mu přiřazena určitá úroveň „stínování“.

Pro vysoce kvalitní výsledky s mnohem menším počtem čtení textur než Ambient occlusion využívá SSAO vzorkování ve spojení s náhodně rotovaným jádrem. Orientace jádra se opakuje každých N pixelů obrazovky, aby výsledný obraz byl pouze vysokofrekvenční zkreslení. Na konci je toto vysokofrekvenční zkreslení odstraněno NxN počtem průchodů postprocesorem, čímž se obraz rozmaže ( anglicky  Blur ). To bere v úvahu hloubku nepravidelností pomocí metod, jako je porovnání sousedních normál a hloubek. Toto řešení umožňuje snížit počet vzorků hloubky na pixel na přibližně 16 nebo méně, přičemž stále poskytuje vysoce kvalitní výsledek a umožňuje použití SSAO v aplikacích v reálném čase, jako jsou počítačové hry.

Výhody a nevýhody

Ve srovnání s jinými algoritmy modelu ambientní okluze má SSAO následující výhody:

Spolu s výhodami algoritmu SSAO existují také nevýhody:

Poznámky

  1. Ambient Occlusion – přístupy v prostoru obrazovky (SSAO  ) . CG-Blog (16. ledna 2010). Datum přístupu: 22. května 2011. Archivováno z originálu 29. března 2012.

Odkazy

Zdroje v anglickém jazyce Zdroje v ruském jazyce