Okluzja otoczenia - Ambient occlusion

Mapa ambient occlusion (środkowy obraz) dla tej sceny przyciemnia tylko najbardziej wewnętrzne kąty narożników.

W grafice komputerowej 3D , modelowaniu i animacji , ambient occlusion to technika cieniowania i renderowania używana do obliczania stopnia ekspozycji każdego punktu sceny na oświetlenie otoczenia . Na przykład, wnętrze tuby jest zazwyczaj bardziej okludowane (a zatem ciemniejsze) niż odsłonięte powierzchnie zewnętrzne i staje się ciemniejsze im głębiej wchodzi się do tuby.

Okluzja otoczenia może być postrzegana jako wartość dostępności obliczana dla każdego punktu powierzchni. W scenach z otwartym niebem odbywa się to poprzez oszacowanie ilości widocznego nieba dla każdego punktu, podczas gdy w środowiskach wewnętrznych brane są pod uwagę tylko obiekty w określonym promieniu, a ściany są uważane za źródło światła otoczenia. Rezultatem jest rozproszony , bezkierunkowy efekt cieniowania, który nie rzuca wyraźnych cieni, ale przyciemnia obszary zamknięte i osłonięte, co może wpływać na ogólny ton renderowanego obrazu. Jest często używany jako efekt przetwarzania końcowego.

W przeciwieństwie do metod lokalnych, takich jak cieniowanie Phong , ambient occlusion jest metodą globalną, co oznacza, że ​​oświetlenie w każdym punkcie jest funkcją innej geometrii sceny. Jest to jednak bardzo prymitywne przybliżenie do pełnego globalnego oświetlenia . Wygląd osiągnięty przez samą okluzję otoczenia jest podobny do tego, jak obiekt może wyglądać w pochmurny dzień.

Pierwsza metoda pozwalająca na symulację okluzji otoczenia w czasie rzeczywistym została opracowana przez dział badawczo-rozwojowy firmy Crytek ( CryEngine 2 ). Wraz z wydaniem sprzętu zdolnego czasie rzeczywistym śledzenia promieni ( GeForce Seria 20 ) przez Nvidia w 2018 roku, ray odszukane okluzji otoczenia (RTAO) stało się możliwe w grach i innych aplikacjach czasu rzeczywistego. Ta funkcja została dodana do silnika Unreal Engine w wersji 4.22.

Realizacja

Animacja 3D okluzji otoczenia włączona na animacji po prawej stronie.

W przypadku braku sprzętowym wspomaganiem ray odszukane okluzji otoczenia, w czasie rzeczywistym aplikacje, takie jak gry komputerowe mogą wykorzystać przestrzeń ekranu ambient occlusion (SSAO) lub horyzont oparte okluzji otoczenia (HbAo) w postaci szybszego zbliżenia prawdziwej okluzji otoczenia, stosując per- głębię pikseli , a nie geometrię sceny, aby utworzyć mapę okluzji otoczenia .

Okluzja otoczenia jest związana z cieniowaniem dostępności, które określa wygląd na podstawie łatwości dotykania powierzchni przez różne elementy (np. brud, światło itp.). Został spopularyzowany w animacji produkcyjnej ze względu na względną prostotę i wydajność.

Model cieniowania ambient occlusion zapewnia lepszą percepcję trójwymiarowego kształtu wyświetlanych obiektów. Zostało to pokazane w artykule, w którym autorzy raportują wyniki eksperymentów percepcyjnych pokazujące, że rozróżnianie głębokości przy rozproszonym, jednolitym oświetleniu nieba jest lepsze niż przewidywane przez model oświetlenia bezpośredniego.

Okluzja w punkcie na powierzchni o normalnej może być obliczona poprzez całkowanie funkcji widoczności na półkuli względem rzutowanego kąta bryłowego:

gdzie jest funkcją widoczności w , zdefiniowaną jako zero, jeśli jest przesłonięta w kierunku i jeden w przeciwnym razie, i jest nieskończenie małym krokiem kąta bryłowego zmiennej całkowania . W praktyce do przybliżenia tej całki używa się różnych technik: być może najprostszym sposobem jest użycie metody Monte Carlo poprzez rzutowanie promieni z punktu i testowanie przecięcia z inną geometrią sceny (tj. rzutowanie promieni ). Innym podejściem (bardziej dostosowanym do akceleracji sprzętowej) jest renderowanie widoku przez rasteryzację czarnej geometrii na białym tle i przyjęcie średniej (ważonej cosinusem) zrasteryzowanych fragmentów. Podejście to jest przykładem podejścia „zbierającego” lub „od środka na zewnątrz”, podczas gdy inne algorytmy (takie jak okluzja otoczenia na mapie głębi) wykorzystują techniki „rozpraszania” lub „od zewnątrz do wewnątrz”.

Oprócz wartości ambient occlusion często generowany jest wektor „zgięty normalny” , który wskazuje średni kierunek niezamkniętych próbek. Wygiętej normalnej można użyć do wyszukania padającego promieniowania na mapie środowiska w celu przybliżenia oświetlenia opartego na obrazie . Istnieją jednak sytuacje, w których kierunek zagiętej normalnej jest zafałszowaniem dominującego kierunku oświetlenia, np.

W tym przypadku zagięta normalny N b posiada niefortunną kierunek, ponieważ jest skierowany w zatkanej powierzchni.

W tym przykładzie światło może docierać do punktu p tylko z lewej lub prawej strony, ale zagięta normalna wskazuje na średnią z tych dwóch źródeł, czyli niestety bezpośrednio w stronę przeszkody.

Warianty

SSAO
Okluzja otoczenia w przestrzeni ekranu
SSDO
Okluzja kierunkowa w przestrzeni ekranu
RTAO
Okluzja otoczenia ze śledzeniem promienia wodzącego
HDAO
Okluzja otoczenia w wysokiej rozdzielczości
HBAO+
Okluzja otoczenia oparta na horyzoncie+
AAO
Alchemia Okluzja otoczenia
ABAO
Okluzja otoczenia oparta na kącie
PBAO
Wstępnie upieczona okluzja otoczenia
VXAO
Przyspieszona okluzja otoczenia woksela
GTAO
Okluzja otoczenia oparta na naziemnych prawdach

Uznanie

W 2010 roku Hayden Landis, Ken McGaugh i Hilmar Koch otrzymali nagrodę Akademii Naukowo-Technicznej za pracę nad renderowaniem okluzji otoczenia.

Zobacz też

Bibliografia

  1. ^ „Co to jest okluzja otoczenia? Czy to ma znaczenie w grach?” .
  2. ^ Miller, Gavin (1994). „Wydajne algorytmy do lokalnego i globalnego cieniowania dostępności”. Materiały 21. dorocznej konferencji Grafika komputerowa i techniki interaktywne . s. 319–326.
  3. ^ "OKLUZJA OTOCZENIA: ROZSZERZONY PRZEWODNIK PO JEGO ALGORYTMACH I ZASTOSOWANIU W VR" . ARVIlab . Źródło 2018-11-26 .
  4. ^ Okluzja otoczenia ze śledzeniem promienia wodzącego . Nvidii.
  5. ^ „Unreal Engine dodaje wsparcie dla DX12 Raytracing” . ExtremeTech .
  6. ^ Langer, MS; J.Ś. Buelthoff (2000). „Dyskryminacja głębokości z cieniowania w świetle rozproszonym”. Percepcja . 29 (6): 649–660. CiteSeerX  10.1.1.69.6103 . doi : 10.1068/p3060 . PMID  11040949 .
  7. ^ „Praktyczne strategie w czasie rzeczywistym dla dokładnej pośredniej okluzji” (PDF) .
  8. ^ Oscar 2010: Nagrody Naukowe i Techniczne , Alt Przewodnik po filmach , 7 stycznia 2010