SSAO

SSAO ( engelsk  screen space ambient occlusion - obstruction of ambient light in screen space ) er en softwareteknik (metode) i tredimensionel computergrafik , som er en omtrentlig efterligning af global belysning og er en modificeret og forbedret version af Ambient-okklusionsteknikken . SSAO-algoritmen fungerer i realtid og simulerer diffus indirekte belysning og tilsvarende mørklægning i et virtuelt 3D-rum.

SSAO blev udviklet af forsknings- og udviklingsafdelingen i det tyske firma Crytek , mens de udviklede grafikkomponenterne i CryEngine 2 -spilmotoren . [1] Crysis , det første CryEngine 2-spil udviklet af Crytek og udgivet i efteråret 2007, var det første til at bruge SSAO. Senere blev denne algoritme og dens modifikationer brugt i mange spilmotorer, herunder Leadwerks Engine , Dagor Engine , Unreal Engine , Unity , X-Ray , Glacier 2 og andre.

Beskrivelse af arbejdet

SSAO-algoritmen kører på grafikkortets grafikprocessor og er implementeret som en pixel shader , der analyserer scenens dybdebuffer ( Z-buffer ), som er gemt i teksturen .

Når du kører Ambient-okklusionsalgoritmen, prøver pixelshaderen dybdeværdien for hver pixel på skærmen omkring den aktuelle pixel og forsøger at beregne antallet af okklusioner fra hvert af de valgte punkter. I sin enkleste implementering afhænger okklusionsfaktoren kun af dybdeforskellen mellem det valgte punkt og det aktuelle punkt. Uden yderligere avancerede løsninger og algoritmer ville denne direkte løsning kræve cirka 200 teksturlæsninger pr. pixel for god visuel kvalitet. Dette tal er ikke acceptabelt til realtidsgengivelse på moderne GPU'er.

SSAO-algoritmen har til formål at forenkle den beregningsmæssige kompleksitet af Ambient-okklusionsalgoritmen og gøre den velegnet til realtidsdrift på GPU'er. Kvaliteten af ​​det resulterende billede i SSAO er dog dårligere end i den oprindelige Ambient-okklusion, da SSAO bruger tilnærmende (approksimerende) gengivelsesteknikker.

For at oprette en omgivende okklusion af skærmrum skal du have to sceneteksturer:

Derefter tages positionskortet og normalkortet for hver texel på skærmen, og nabotexelerne behandles. I forhold til positionerne af nabotexels til den, der behandles, er der tildelt et vist niveau af "skygge".

For at opnå resultater af høj kvalitet med langt færre teksturlæsninger end Ambient-okklusion, bruger SSAO sampling i forbindelse med en tilfældigt roteret kerne. Kernelorientering gentages for hver N pixel på skærmen for kun at have højfrekvent forvrængning i det endelige billede. Til sidst fjernes denne højfrekvente forvrængning med NxN antal post-processor-passager, hvilket slører billedet ( English  Blur ). Dette tager højde for dybden af ​​uregelmæssigheder ved at bruge metoder som at sammenligne tilstødende normaler og dybder. Denne løsning gør det muligt at reducere antallet af dybdeprøver pr. pixel til ca. 16 eller mindre, mens den stadig giver et resultat af høj kvalitet og tillader SSAO at blive brugt i realtidsapplikationer såsom computerspil.

Fordele og ulemper

Sammenlignet med andre Ambient-okklusionsmodelalgoritmer har SSAO følgende fordele:

Sammen med fordelene ved SSAO-algoritmen er der også ulemper:

Noter

  1. Ambient Okklusion – tilgange i skærmrum (SSAO  ) . CG-Blog (16. januar 2010). Dato for adgang: 22. maj 2011. Arkiveret fra originalen 29. marts 2012.

Links

Engelsksprogede kilder Russisksprogede kilder