Słyszałem o okluzji otoczenia i wygląda to ładnie, ale co to właściwie jest?
Słyszałem o okluzji otoczenia i wygląda to ładnie, ale co to właściwie jest?
Odpowiedzi:
Okluzja otoczenia to metoda przybliżenia jasności światła świecącego na określoną część powierzchni, w oparciu o światło i jego otoczenie. Służy to do dodania realizmu.
Wikipedia ma ładny akapit, który wyjaśnia, co zostało zrobione.
Okluzja otoczenia jest najczęściej obliczana przez rzucanie promieni w każdym kierunku z powierzchni. Promienie docierające do tła lub „nieba” zwiększają jasność powierzchni, a promień, który uderza w jakikolwiek inny obiekt, nie powoduje oświetlenia. W rezultacie punkty otoczone dużą ilością geometrii stają się ciemne, podczas gdy punkty o małej geometrii na widocznej półkuli wydają się jasne.
Światło otoczenia to rodzaj światła w grafice komputerowej, który służy do symulacji globalnego oświetlenia. Okluzja otoczenia jest po prostu symulacją zacienienia spowodowanego przez obiekty blokujące światło otoczenia. Ponieważ światło otoczenia jest środowiskowe, w przeciwieństwie do innych rodzajów oświetlenia, okluzja otoczenia nie zależy od kierunku światła. Jako taki może być wstępnie obliczony dla obiektów statycznych.
Bez AO (po lewej) Zauważ, że cień na lewym obrazie jest powodowany przez światło kierunkowe, z AO (po prawej).
W tradycyjnym śledzeniu promieniowym okluzja otoczenia jest symulowana przez próbkowanie promieni z określonego punktu, który przybiera kształt półkuli, a następnie jest sprawdzana pod kątem przecięcia ze sceną (zwana także Object Space AO).
Zwróć uwagę, w jaki sposób próbki promieniowania są wykorzystywane do symulacji integracji AO.
Zwróć uwagę na aliasing (kropki) spowodowane niedostatecznym próbkowaniem okluzji otoczenia.
Ponieważ technika próbkowania ze śledzeniem promieni jest zbyt wolna, aby stosować ją w grafice komputerowej w czasie rzeczywistym, pojawiły się inne metody symulujące to zachowanie. Jednym z godnych uwagi podejść jest tzw. Screen Space Ambient Occlusion (SSAO).
SSAO to technika ekran-przestrzeń opracowana przez Crytek. Okluzja otoczenia jest obliczana w trybie pełnoekranowym, przy użyciu bufora Z jako jedynego wejścia.
Współczynnik niedrożności otoczenia kA
każdego piksela jest szacowany poprzez przetestowanie zestawu punktów rozmieszczonych w półkuli wokół położenia piksela. To skutecznie symuluje tradycyjne podejście do śledzenia promieni w przestrzeni ekranu.
Wartość kA
zależy od próbek, które znajdują się przed wartością w buforze Z. Jeśli połowa lub więcej próbek przejdzie test głębokości (to znaczy są bliżej kamery niż środkowy piksel), wówczas kA
otrzymuje wartość 1. Mniejsza liczba próbek daje wynik kA
mniejszy niż 1.
Składnik SSAO typowej sceny gry
http://en.wikipedia.org/wiki/Ambient_occlusion
Okluzja otoczenia zwykle oznacza zastosowanie danych, które reprezentują ilość światła z otoczenia padającego na powierzchnię. Dane te są zwykle teksturami w skali szarości lub kolorami wierzchołków, w zależności od implementacji.
Aby obliczyć dane, najczęstszym sposobem jest renderowanie sceny z jednolitą białą teksturą i 1-punktowym światłem wiele razy, przenoszenie światła punktowego za każdym razem w inne miejsce na kuli lub półkuli. Wyniki wszystkich renderowań są uśredniane, co daje dane o poszczególnych lokalizacjach w scenie i ilości światła docierającego do tej lokalizacji.
Na przykład miejsce w scenie, które zawsze będzie jasne, bez względu na to, gdzie umieścisz światło, będzie jasne, gdzie jako miejsce, które jest ciemne, bez względu na to, gdzie umieścisz światło, będzie ciemno. W rezultacie otrzymujesz coś, co spowoduje umieszczenie ciemnych cieni w szczelinach i pęknięciach oraz miękkie oświetlenie, w którym obiekty zwykle rzucają cień.
Okluzja otoczenia jest metodą obliczania oświetlenia na powierzchni obiektu, która uwzględnia jasność światła z powodu okluzji powierzchni w stosunku do źródła światła.
Oznacza to, że okluzja otoczenia jest metodą zacienienia, która ma charakter globalny, co oznacza, że światło / oświetlenie z każdego punktu na scenie może wpływać na inne punkty na scenie. W przeciwieństwie do lokalnych metod cieniowania, takich jak Phong / Blinn, oznacza to, że cieniowanie z okluzją otoczenia dodaje więcej realizmu.
Oto trochę uproszczonego wyjaśnienia. Okluzja otoczenia to ciekawy, sztuczny sposób symulowania globalnego oświetlenia, który jest szybszy niż inne metody, które dotychczas stosowaliśmy. Promienie są rzucane z każdego kierunku od punktu powierzchni „w górę” w stosunku do powierzchni. Promienie, które nie docierają do żadnego obiektu na swojej drodze, czyli osiągają próg pustki tła („niebo”), zwiększają jasność powierzchni. Promienie, które z drugiej strony uderzają w geometrię, gdy są rzucane z powierzchni, nie zwiększają jasności powierzchni. Punkty powierzchni, które są otoczone przez wiele innych geometrii, są jakby w cieniu.
SSAO to tylko jeden ze sposobów wykonywania okluzji otoczenia.
Okluzja otoczenia oznacza, że światło nie dociera. Zagięcia i szczeliny nie odbijają światła otoczenia, więc zazwyczaj nie ma ich w większości, tworząc „najciemniejsze ciemności”, zwykle w zależności od atmosfery.
Ambient Occlusion ... dla osób, które tak naprawdę nie są zaznajomione z technologią grafiki do gier, ambient ambient occlusion dodaje określoną ilość światła do każdego obiektu na scenie. wszystkie wielokąty są renderowane pod innym kątem, w takim przypadku ilość światła jest nierównomierna, co czyni grę bardziej realistyczną i atrakcyjną dla oka