Mikä on itsevarjostus?

“Itsevarjostus” on termi, joka kuvaa tilannetta, jossa esineen yksi osa heittää varjon itselleen. Esimerkkejä itsensä varjostamisesta ovat varjo, jonka ihmisen nenä heittää kasvoihin tai ylähuuliin, kun valonlähde tulee ylhäältä, tai tuolin istuimen tuolin jaloille muodostama varjo. Kun termiä käytetään tietokonegrafiikassa-erityisesti tietokonegrafiikan ohjelmoinnissa-se viittaa varjoihin, jotka kohtauksen kolmiulotteiset (3D) esineet heittävät itseensä, tai varjoihin, jotka dynaamiset esineet heittävät itseensä ja ympärillään oleviin esineisiin . Reaaliaikaisen 3D-tietokonegrafiikkaohjelmoinnin luonne saa monet sovellukset käyttämään tekniikoita, jotka usein poistavat mahdollisuuden tehdä itsestään varjoja muiden optimointien hyväksi, vaikka reaaliaikaiset itsesävytysmenetelmät, kun tietokoneiden nopeus ja ominaisuudet lisääntyvät ovat tulleet helpommin saataville. Reaaliaikaisia ​​itsevarjostuvia kohteita voidaan hahmottaa useilla tavoilla, mutta laitteistorajoitukset tuottavat yleensä tuloksia, joilla on joitain haittoja, kuten epätarkkoja varjoja, varjoja keinotekoisesti kovilla reunoilla tai kohtauksia, jotka renderöitään hyvin hitaasti näytönohjaimilla, jotka eivät ole uskomattoman nopeita .

Yksi ero, joka on tehtävä, kun puhutaan itsevarjostamisesta, on ero staattisten ja dynaamisten kohteiden välillä reaaliaikaisessa grafiikassa. Staattiset objektit ovat näkymän 3D -objekteja, jotka eivät liiku ja joiden geometriaa ei muuteta renderöinnin aikana. Dynaaminen kohde on toisaalta kohde, joka ei ole millään tavalla suoraan kiinnitetty kohtaukseen ja voi olla erilainen eri kehyksissä. Suurin osa staattisista objekteista ja ei-reaaliaikaisista kohtauksista häivyttää itseään joko renderointimoottorin tai muiden käytettävien grafiikkatemppujen vuoksi.

Useat optimoinnit, joita käytetään reaaliaikaisen 3D-grafiikan esittämiseen, vaikeuttavat dynaamisen itsevarjostamisen toteuttamista. Joitakin esimerkkejä ovat grafiikkamoottori, joka käyttää vain valotehosteita staattiseen taustaan, jättäen huomiotta dynaamiset objektit, kuten kohtauksen hahmot, tai moottori, joka kohtelee esineitä vain siluetteina ilman sisäistä geometriaa. Grafiikkaprosessorien ja tietokoneiden lisääntymisen myötä uudet tekniikat mahdollistavat itsevarjostettujen kohteiden näkymisen reaaliaikaisessa tilanteessa tietyin rajoituksin ja kompromissein.

Varjotilavuudet ovat yksi tapa, jolla itsevarjostus voidaan toteuttaa 3D-näkymässä. Tämä menetelmä luo olennaisesti 3D -objekteja, jotka vievät suljetun äänenvoimakkuuden kohtauksessa, jossa varjo heitetään, jolloin renderöija tai varjostin voi testata, onko jokin kohta varjostetun tilavuuden sisällä, määrittääkseen sen valaistustavan. Muut menetelmät luovat varjokarttoja tai likimääräisiä varjoja pisteiden sijainneista luodakseen hyvin hajanaisia ​​varjoja, jotka eivät välttämättä noudata reunan tarkkuutta.

Lähes kaikkien itsevarjostustapojen on vaihdettava nopeutta tai laatua hyväksyttävän tuloksen saamiseksi. Laatuongelmia voi ilmetä käyttämällä nopeita mutta matalan resoluution tai sumeita tekniikoita, jotka saattavat saada jotkut itsevarjot näyttämään väärältä tai väärältä. Nopeusongelmia ilmenee, kun käytetyt algoritmit vaativat liikaa ylimääräistä kuvaa kohti tai yrittävät laskea varjoennusteet liian tarkasti. Vaikka ei ole olemassa yhtä standardia itsevarjoa tuottavaa algoritmia, jotkin näytönohjaimet sisältävät natiivikiihdytyksen eri menetelmille, jotka voivat lisätä joidenkin tekniikoiden nopeutta.