Hvad er selvskyggende?
"Selvskyggende" er et udtryk, der beskriver omstændigheden, hvor den ene del af et objekt kaster en skygge på sig selv. Eksempler på selvskygning inkluderer skyggen, der er støbt af en menneskelig næse i ansigtet eller overlæben, når lyskilden kommer ovenfra, eller skyggen, der støbes af sædet af en stol på stolens ben. Når udtrykket bruges i computergrafik - specifikt computergrafikprogrammering - er det en henvisning til skygger, der er støbt af en scenes tredimensionelle (3D) objekter på sig selv, eller skygger, der er støbt af dynamiske objekter på sig selv og objekter omkring dem . Arten af realtids 3D-computergrafikprogrammering får mange applikationer til at bruge teknikker, der ofte fjerner muligheden for at gengive selvskygger til fordel for andre optimeringer, selvom computernes hastighed og kapacitet øges, realtids-selvskygge-metoder er blevet mere tilgængelige. Der er flere metoder til gengivelse af selvskyggende objekter i realtid, men hardwarebegrænsninger giver normalt resultater, der har nogle ulemper, såsom unøjagtige skygger, skygger med kunstigt hårde kanter eller scener, der gengives meget langsomt på grafikkort, der ikke er utroligt hurtigt .
En sondring, man skal gøre, når man taler om selvskygge, er forskellen mellem statiske og dynamiske objekter i realtidsgrafik. Statiske objekter er 3D-objekter i en scene, der ikke bevæger sig og ikke har ændret nogen del af deres geometri i løbet af gengivelsen. Et dynamisk objekt er på den anden side et objekt, der ikke er direkte knyttet til scenen på nogen måde og kan være forskelligt fra den ene ramme til den næste. For det meste skaber de fleste statiske objekter og scener, der ikke er i realtid, selvskygge, enten på grund af gengivelsesmotoren eller på grund af andre grafiktricks, der kan bruges.
Flere optimeringer, der bruges til at gengive 3D-grafik i realtid, gør implementering af dynamisk selvskygge vanskelig. Nogle eksempler inkluderer en grafikmotor, der kun anvender lyseffekter på en statisk baggrund, idet man ignorerer dynamiske objekter som tegn i en scene, eller en motor, der kun behandler objekter som silhuetter uden bevidsthed om intern geometri. Med stigningen i grafikprocessorer og computere tillader nye teknikker, at selvskyggede objekter vises i en realtidsscene med nogle begrænsninger og afvekslinger.
Skyggevolumener er en måde, hvorpå selvskygge kan implementeres i en 3D-scene. Denne metode skaber i det væsentlige 3D-objekter, der optager et lukket volumen i en scene, hvor en skygge er støbt, hvilket giver rendereren eller skyggeren mulighed for at udføre test om, hvorvidt et punkt er inden for et skygge lydstyrke for at bestemme, hvordan det lyser. Andre metoder opretter skyggekort eller tilnærmelsesvis skygger fra toppunktpositioner for at skabe meget diffuse skygger, der ikke nødvendigvis følger en kantens troværdighed.
Næsten alle metoder til selvskygge er nødt til at udveksle enten hastighed eller kvalitet for at få et acceptabelt resultat. Kvalitetsproblemer kan opstå ved brug af hurtige, men lave opløsninger eller uklar teknikker, der kan få nogle selvskygger til at virke forkerte eller ude af sted. Hastighedsproblemer opstår, når de anvendte algoritmer kræver for meget overhead pr. Ramme eller forsøger at beregne skyggeprojektioner for præcist. Selvom der ikke findes en enkelt standard selvskygge-producerende algoritme, indeholder nogle grafikkort indbygget acceleration til forskellige metoder, der kan øge hastigheden for nogle teknikker.