Wielu graczy słyszało o technikach poprawy wyglądu gier, takich jak filtrowanie anizotropowe czy wygładzanie krawędzi. Technologia cieniowania ambient occlusion nie jest może tak dobrze znana, ale również potrafi przynieść świetne efekty i ucieszyć oko gracza. Technologia Screen Space Ambient Occlusion (SSAO) szacuje wystawienie danej powierzchni na światło rozproszone. Jest to metoda opracowana w 2007 roku przez pracownika studia Crytek i została po raz pierwszy użyta w grze Crysis. Efektem zastosowania SSAO jest realistyczny wygląd powierzchni obiektów w grze, jak i naturalne oświetlenie całej sceny.
Algorytm SSAO jest aplikowany jako Pixel Shader i analizuje bufor głębokości. Zazwyczaj jest on renderowany w rozdzielczości o połowę mniejszej niż cała scena, przy użyciu 16 próbek głębi na piksel.
Niestety renderowanie w niepełnej rozdzielczości potrafi spowodować niepożądane migotanie, które może być ciężkie do ukrycia. Z tego powodu opracowano SSAO+. Jest to usprawniona wersja SSAO, w której efekt jest renderowany w pełnej rozdzielczości sceny. Jak można się domyślić, odbija się to na wydajności, ponieważ proces wymaga czterokrotnie wyższej mocy obliczeniowej.
Spadek wydajności był powodem opracowania kolejnych usprawnień. Horizon Based Ambient Occlusion (HBAO) używa nieco innych algorytmów i jest renderowane w pełnej rozdzielczości sceny, ale używa tylko 4 próbek głębi na piksel. Natomiast HBAO+ używa 36 próbek, zapewniając większą precyzję cieniowania kosztem dwukrotnego zwiększenia zapotrzebowania na moc obliczeniową względem HBAO.
Wpływ na wydajność
Platforma testowa:
- Intel Core i7-7700K @ 5 GHz
- 2 x 8 GB DDR4 @ 2800 MHz
- Sapphire NITRO Radeon RX 470 8 GB
- Radeon Software Crimson ReLive Edition 17.2.1
- Windows 7 x64 SP1
W zależności od gry i jej optymalizacji, wpływ ambient occlusion na wydajność może być znaczący (rzędu 25%) bądź bardzo niewielki. Generalnie SSAO+ powoduje największy spadek wydajności, a HBAO – najmniejszy.
Warto spróbować High Definition Ambient Occlusion (HDAO), jeśli tylko jest dostępne w opcjach gry. Ze względu na optymalizacje pod kątem kart AMD, ta metoda cieniowania powinna najmniej wpływać na liczbę wyświetlanych klatek na sekundę.
Wpływ na jakość obrazu
Zaaplikowanie nawet najbardziej podstawowej metody ambient occlusion znacząco poprawia wygląd gry i czyni ją milszą dla oka. Natomiast różnice między poszczególnymi trybami cieniowania nie są już tak łatwe do wychwycenia.