SSAO

SSAO ( englanniksi  screen space ambient occlusion - obstruction of ambient light in screen space ) on ohjelmistotekniikka (menetelmä) kolmiulotteisessa tietokonegrafiikassa , joka on likimääräinen jäljitelmä globaalista valaistuksesta ja on muunneltu ja paranneltu versio Ambient occlusion -tekniikasta. . SSAO-algoritmi toimii reaaliajassa ja simuloi hajanaista epäsuoraa valaistusta ja vastaavaa tummenemista 3D-virtuaalitilassa.

SSAO:n kehitti saksalaisen Crytekin tutkimus- ja kehitysosasto samalla kun kehitettiin CryEngine 2 -pelimoottorin grafiikkakomponentteja . [1] Crysis , ensimmäinen Crytekin kehittämä CryEngine 2 -peli, joka julkaistiin syksyllä 2007, oli ensimmäinen, joka käytti SSAO:ta. Myöhemmin tätä algoritmia ja sen muunnelmia käytettiin monissa pelimoottoreissa, mukaan lukien Leadwerks Engine , Dagor Engine , Unreal Engine , Unity , X-Ray , Glacier 2 ja muut.

Työn kuvaus

SSAO-algoritmi toimii näytönohjaimen grafiikkaprosessorilla ja se on toteutettu pikselivarjostimena , joka analysoi kohtauksen syvyyspuskuria ( Z -puskuri ), joka on tallennettu tekstuuriin .

Kun ajetaan Ambient occlusion -algoritmia, pikselien varjostin ottaa näytteitä syvyysarvosta jokaiselle näytöllä nykyisen pikselin ympärillä olevalle pikselille ja yrittää laskea okkluusioiden lukumäärän kustakin valitusta pisteestä. Yksinkertaisimmassa toteutuksessaan okkluusiokerroin riippuu vain valitun pisteen ja nykyisen pisteen välisestä syvyyserosta. Ilman ylimääräisiä edistyneitä ratkaisuja ja algoritmeja tämä ratkaisu vaatisi noin 200 pintakuviolukua pikseliä kohden hyvän visuaalisen laadun saavuttamiseksi. Tätä numeroa ei voida hyväksyä reaaliaikaiseen renderöintiin nykyaikaisissa grafiikkasuorituksissa.

SSAO-algoritmin tavoitteena on yksinkertaistaa ympäristön okkluusioalgoritmin laskennallista monimutkaisuutta ja tehdä siitä sopiva reaaliaikaiseen GPU-käyttöön. Tuloksena olevan kuvan laatu SSAO:ssa on kuitenkin huonompi kuin alkuperäisessä Ambient-okkluusiossa, koska SSAO käyttää approksimoivaa (approksimoivaa) renderöintitekniikkaa.

Jotta voit luoda Screen Space Ambient Occlusionin, sinulla on oltava kaksi kohtaustekstuuria:

Tämän jälkeen kunkin ruudun tekselin sijaintikartta ja normaalikartta otetaan ja viereiset tekselit käsitellään. Prosessoitavan tekselien viereisten paikkojen suhteen sille on määritetty tietty "varjostustaso".

SSAO käyttää näytteenottoa satunnaisesti kierretyn ytimen yhteydessä saadakseen korkealaatuisia tuloksia, joissa on paljon vähemmän tekstuurilukuja kuin ympäristön okkluusio. Ytimen suuntaus toistetaan joka näytön N pikselin välein, jotta lopullisessa kuvassa olisi vain korkeataajuinen vääristymä. Lopussa tämä korkeataajuinen vääristymä poistetaan NxN määrällä jälkiprosessorin kulkua, mikä sumentaa kuvaa ( englanniksi  Blur ). Tämä ottaa huomioon epäsäännöllisyyksien syvyyden käyttämällä menetelmiä, kuten vertaamalla viereisiä normaaleja ja syvyyksiä. Tämä ratkaisu mahdollistaa syvyysnäytteiden määrän pienentämisen pikseliä kohden noin 16:een tai pienempään, mutta tarjoaa silti korkealaatuisen tuloksen ja mahdollistaa SSAO:n käytön reaaliaikaisissa sovelluksissa, kuten tietokonepeleissä.

Edut ja haitat

Muihin ympäristön okkluusiomallialgoritmeihin verrattuna SSAO:lla on seuraavat edut:

SSAO-algoritmin etujen lisäksi on myös haittoja:

Muistiinpanot

  1. Ambient Occlusion – lähestyy näyttöavaruudessa (SSAO  ) . CG-Blogi (16. tammikuuta 2010). Käyttöönottopäivä: 22. toukokuuta 2011. Arkistoitu alkuperäisestä 29. maaliskuuta 2012.

Linkit

Englanninkieliset lähteet Venäjänkieliset lähteet