Ambient okkluusio (AO) on 3D-grafiikassa käytetty okkluusiomalli, jonka avulla voit lisätä kuvaan realistisuutta laskemalla pintapisteen saavuttavan valon intensiteetin . Toisin kuin paikalliset menetelmät, kuten Phong-varjostus , ympäristön okkluusio on globaali menetelmä, eli kohteen kunkin pisteen kirkkausarvo riippuu muista näkymän kohteista. Periaatteessa tämä muistuttaa melko etäisesti globaalia valaistusta .
Ympäröivä okkluusio lasketaan yleisimmin rakentamalla pinnan pisteestä kaikkiin suuntiin säteileviä säteitä ja tarkistamalla sitten leikkauspisteet muiden kohteiden kanssa. Taustan tai "taivaan" saavuttavat säteet lisäävät pinnan kirkkautta, kun taas muiden kohteiden yli kulkevat säteet eivät lisää kirkkautta. Tämän seurauksena pisteet, joissa on paljon geometriaa, piirretään tummemmiksi ja pisteet, joilla on vähän geometriaa näkyvällä pallonpuoliskolla, piirretään vaaleiksi.
Ambient okkluusio viittaa menetelmiin, jotka perustuvat pintaelementin saatavuuteen erilaisille tekijöille, kuten lialle, valolle jne. Se on saavuttanut suosiota suhteellisen yksinkertaisuutensa ja melko korkean hyötysuhteensa ansiosta. Usein AO:ta kutsutaan myös "taivaan valoksi".
AO-malli auttaa paremmin havaitsemaan kuvattujen kohteiden tilavuuden kuin suoravalaistusmalli [1] .
Pintapisteen varjostus normaalilla voidaan laskea integroimalla näkyvyysfunktio puolipallon yli :
missä on näkyvyysfunktion arvo pisteessä, joka on yhtä suuri kuin nolla, jos suunnasta tulevalla säteellä on leikkauspiste kohteen kanssa, ja yhtä suuri kuin yksi muissa tapauksissa. Käytännössä tämän integraalin ottamiseksi käytetään erilaisia tekniikoita: ehkä yksi yleisimmin käytetyistä on Monte Carlo -menetelmä . Toinen tapa (hyödyntämällä täydellisemmin laitteistokiihdytyksen tehoa) on renderoida kohtaus pisteestä siten , että geometria on rasteroitu puhtaasti mustaksi valkoisella taustalla. Vastaanotetun kehyksen kirkkauden keskiarvo on funktion likimääräinen arvo tietyssä pisteessä. Tämä menetelmä on esimerkki kollektiivisesta menetelmästä (inside-out-menetelmä), kun taas muissa lähestymistavoissa (kuten syvyyskartan ympäristön okkluusio) käytetään dispersiota (outside-in-menetelmä).
Varjostusarvon lisäksi lasketaan usein ylimääräinen vektori ("poikkeutettu normaali"), joka näyttää likimääräisen suunnan avoimeen (varjostamattomaan) tilaan. Tämän vektorin avulla voidaan saada valaistus ympäristökartalta. On kuitenkin tilanteita, joissa vektori ei osoita maksimaalisen valaistuksen suuntaan.