Hva er selvskygge?
"Selvskygging" er et begrep som beskriver omstendigheten der en del av et objekt kaster en skygge på seg selv. Eksempler på selvskygging inkluderer skyggen som er støpt av en menneskelig nese i ansiktet eller overleppen når lyskilden kommer ovenfra, eller skyggen som støpes av setet til en stol på bena på stolen. Når begrepet brukes i datamaskingrafikk - spesielt datagrafikkprogrammering - er det en referanse til skygger som er støpt av scenens tredimensjonale (3D) objekter på seg selv, eller skygger som er støpt av dynamiske objekter på seg selv og objekter rundt seg. . Arten av sanntids 3D-grafikkprogrammering får mange applikasjoner til å bruke teknikker som ofte fjerner muligheten for å gjengi selvskygger til fordel for andre optimaliseringer, selv om datamaskinens hastighet og muligheter øker, sanntids-selvskyggingsmetoder har blitt mer tilgjengelig. Det er flere metoder for å gjengi sanntidsskyggeobjekter i sanntid, men maskinvarebegrensninger gir vanligvis resultater som har noen ulemper, for eksempel unøyaktige skygger, skygger med kunstig harde kanter eller scener som gjengir veldig sakte på grafikkort som ikke er utrolig raske .
En forskjell å gjøre når man snakker om selvskygging er forskjellen mellom statiske og dynamiske objekter i sanntidsgrafikk. Statiske objekter er 3D-objekter i en scene som ikke beveger seg og ikke har endret noen del av geometrien i løpet av gjengivelsen. Et dynamisk objekt er derimot et objekt som ikke er direkte festet til scenen på noen måte og kan være forskjellig fra en ramme til den neste. For det meste skaper de fleste statiske objekter og scener som ikke er sanntid, selvskygge, enten på grunn av gjengivelsesmotoren eller på grunn av andre grafikktriks som kan brukes.
Flere optimaliseringer som brukes til å gi 3D-grafikk i sanntid, gjør implementering av dynamisk selvskygging vanskelig. Noen eksempler inkluderer en grafikkmotor som bare bruker lyseffekter på en statisk bakgrunn, ignorerer dynamiske objekter som tegn i en scene, eller en motor som bare behandler objekter som silhuetter, uten bevissthet om intern geometri. Med økningen i grafikkprosessorer og datamaskiner, lar nye teknikker selvskyggede objekter vises i en sanntidsscene, med noen begrensninger og avveininger.
Skyggevolum er en måte å selvskygge kan implementeres i en 3D-scene. Denne metoden skaper i det vesentlige 3D-objekter som opptar et lukket volum i en scene der en skygge er støpt, slik at gjengiveren eller skyggeren kan utføre tester på om et punkt er innenfor et skyggelagt volum for å bestemme hvordan den lyser. Andre metoder lager skyggekart, eller omtrentlige skygger fra toppunktposisjoner, for å lage veldig diffuse skygger som ikke nødvendigvis følger troskapen til en kant.
Nesten alle metoder for selvskygging må utveksle enten hastighet eller kvalitet for å få et akseptabelt resultat. Kvalitetsproblemer kan oppstå ved bruk av raske, men lave oppløsninger eller uklar teknikker som kan gjøre at noen selvskygger virker gale eller malplassert. Hastighetsproblemer oppstår når algoritmene som brukes krever for mye overhead per ramme eller forsøker å beregne skyggeprosjekter for nøyaktig. Selv om det ikke er en eneste standard selvskygge-produserende algoritme, inkluderer noen grafikkort naturlig akselerasjon for forskjellige metoder som kan øke hastigheten på noen teknikker.