[DT] Ambient Occlusion
14-03-2014 przez PhorCillic w Ciekawostki
Cześć wszystkim,
Tom przepił swoją szansę (spokojnie - nie ma go w studiu. Ale czy nie ciekawiej będzie, jesli napiszemy w taki sposób?).
Z tego powodu to moim zadaniem jest napisać dla was Pupitowy Wtorek. A że nie mam talentu artystycznego, to napisze o czymś, nad czym pracuję przy silniku gry. Tą rzeczą jest Ambient Occlusion.
W rzeczywistym świecie gdy włączysz światło w ciemnym pokoju, światło z lampy może podążyć niezliczoną liczbą ścieżek do twych oczu. Część dotrze bezpośrednio, część po odbiciu od podłogi (jeżeli oczywiście widzisz tą podłogę!), część zaś najpierw odbije się od ściany, potem podłogi i na przykład stolika zanim dosięgnie twojego wzroku.
Wszystko to sprawia, że mamy dość 'łagodnie' wyglądającą scenerię. Porównajmy to z silnikiem oświetlenia w Stoneherath, który mówi mniej więcej: "Okej, widzisz to ognisko? Emituje światło i jeśli nic go nie blokuje, bedziesz nieco jaśniejszy." Żadnych odbić, żadnego rozmycia... czysty, 'ostry' obraz z marginalnym ciepłem.
Ambient Occlusion jest sposobem wykorzystywanym przez programistów, by imitować część efektów odbijania się światła. Nie liczymy wszystkich odbić - byłoby to zbyt czasochłonne.
Zamiast tego renderujemy scenę normalnie, lecz zanim pojawi się ona na ekranie, przechodzimy przez każdy piksel z pytaniem: "Jak bardzo zatłoczony jest ten piksel"? Im więcej pikseli znajduje się niedaleko, tym jest on ciemniejszy. Wystarczy to zrobić kilka razy z każdym pikselem i... voila!
Po prawej stronie widzimy rzeczony efekt.
Niestety, ta opcja ze względu na wymagania nie będzie dostępna dla posiadaczy słabych kart graficznych.