“Isevarjutamine” on termin, mis kirjeldab olukorda, kus objekti üks osa heidab endale varju. Enesevarjutuse näideteks on inimese nina poolt näole või ülahuulele heidetud vari, kui valgusallikas tuleb ülalt, või tooli istme poolt tooli jalgadele heidetud vari. Kui seda terminit kasutatakse arvutigraafikas – täpsemalt arvutigraafika programmeerimises –, viitab see varjudele, mida heidavad stseeni kolmemõõtmelised (3D) objektid iseendale, või varjudele, mida heidavad dünaamilised objektid endale ja neid ümbritsevatele objektidele. . Reaalajas 3D-arvutigraafika programmeerimise olemus sunnib paljusid rakendusi kasutama tehnikaid, mis sageli eemaldavad enda varjude renderdamise võimaluse muude optimeerimiste kasuks, kuigi arvutite kiiruse ja võimaluste kasvades muutuvad reaalajas enesevarju meetodid. on muutunud kättesaadavamaks. Reaalajas isevarjuvate objektide renderdamiseks on mitu meetodit, kuid riistvarapiirangud annavad tavaliselt tulemusi, millel on mõned puudused, nagu ebatäpsed varjud, kunstlikult kõvade servadega varjud või stseenid, mis renderdatakse väga aeglaselt graafikakaartidel, mis ei ole väga kiired. .
Üks erinevus, mida enesevarjutusest rääkides teha, on erinevus staatiliste ja dünaamiliste objektide vahel reaalajas graafikas. Staatilised objektid on stseeni 3D-objektid, mis ei liigu ja mille geomeetria ei muutu renderdamise käigus. Dünaamiline objekt seevastu on objekt, mis ei ole kuidagi otseselt stseeni külge kinnitatud ja võib kaadrite kaupa erineda. Enamasti varjutavad enamik staatilisi objekte ja mittereaalajas stseene kas renderdusmootori või muude kasutatavate graafiliste trikkide tõttu.
Mitmed reaalajas 3D-graafika renderdamiseks kasutatavad optimeerimised muudavad dünaamilise enesevarjutuse rakendamise keeruliseks. Mõned näited hõlmavad graafikamootorit, mis rakendab valgusefekte ainult staatilisele taustale, ignoreerides dünaamilisi objekte, näiteks stseeni tegelasi, või mootorit, mis käsitleb objekte ainult siluettidena, ilma sisemise geomeetriata. Graafikaprotsessorite ja arvutite arvu suurenemisega võimaldavad uued tehnikad teatud piirangute ja kompromissidega ilmuda reaalajas stseenis isevarjutatud objekte.
Varjude maht on üks viis, kuidas 3D-stseenis enesevarjutamist rakendada. See meetod loob sisuliselt 3D-objekte, mis hõivavad varju heidetud stseenis suletud ruumi, võimaldades renderdajal või varjutajal testida, kas mõni punkt asub varjutatud ruumalas, et teha kindlaks, kuidas see on valgustatud. Teised meetodid loovad varikaardid või ligikaudsed varjud tipupositsioonidest, et luua väga hajusaid varje, mis ei pruugi järgida serva täpsust.
Peaaegu kõik enesevarjutamise meetodid peavad vastuvõetava tulemuse saamiseks vahetama kas kiirust või kvaliteeti. Kvaliteediprobleemid võivad tekkida kiirete, kuid madala eraldusvõimega või hägusate tehnikate kasutamisel, mis võivad muuta mõned varjud valeks või kohatuks. Kiiruseprobleemid ilmnevad siis, kui kasutatavad algoritmid nõuavad liiga palju üldkulusid kaadri kohta või üritavad arvutada varjuprojektsioone liiga täpselt. Kuigi ühtset standardset isevarju tekitavat algoritmi pole, sisaldavad mõned graafikakaardid erinevate meetodite jaoks natiivset kiirendust, mis võib mõne tehnika kiirust suurendada.