Skip to main content

Vad är självskuggande?

Självskuggning är en term som beskriver omständigheten i vilken en del av ett objekt kastar en skugga på sig själv.Exempel på självskuggning inkluderar skuggan som gjuts av en mänsklig näsa i ansiktet eller överläppen när ljuskällan kommer uppifrån, eller skuggan som kastas av sätet på en stol på stolens ben.När termen används i datorgrafik mdash;specifikt datorgrafikprogrammering mdash;Det är en hänvisning till skuggor som kastas av en scen som tredimensionella (3D) föremål på sig själva, eller skuggor som kastas av dynamiska föremål på sig själva och föremål runt dem.Arten av realtid 3D-datorgrafikprogrammering får många applikationer att använda tekniker som ofta tar bort möjligheten att göra självskuggor till förmån för andra optimeringar, även om datorns hastighet och kapacitet ökar, realtids självskuggningsmetoderhar blivit mer tillgängliga.Det finns flera metoder för att göra självskuggande föremål i realtid, men hårdvarubegränsningar ger vanligtvis resultat som har vissa nackdelar, till exempel felaktiga skuggor, skuggor med konstgjorda hårda kanter eller scener som gör mycket långsamt på grafikkort som inte är oerhört snabba.

En skillnad att göra när man pratar om självskuggning är skillnaden mellan statiska och dynamiska objekt i realtidsgrafik.Statiska objekt är 3D -objekt i en scen som inte rör sig och inte har någon del av deras geometri ändrats under rendering.Ett dynamiskt objekt, å andra sidan, är ett objekt som inte är direkt kopplat till scenen på något sätt och kan vara annorlunda från en ram till nästa.För det mesta gör de flesta statiska föremål och scener som inte är realtid, antingen på grund av renderingsmotorn eller på grund av andra grafik tricks som kan användas.

Flera optimeringar som används för att göra realtid 3DGrafik gör det svårt att genomföra dynamisk självskuggning.Några exempel inkluderar en grafikmotor som bara tillämpar belysningseffekter på en statisk bakgrund, som ignorerar dynamiska föremål som karaktärer i en scen eller en motor som bara behandlar föremål som silhuetter, utan medvetenhet om intern geometri.Med ökningen av grafikprocessorer och datorer tillåter nya tekniker att självskuggade objekt visas i en realtidsscen, med vissa begränsningar och avvägningar.

Skuggvolymer är ett sätt som självskuggning kan implementeras i en 3D-scen.Denna metod skapar i huvudsak 3D -objekt som upptar en sluten volym i en scen där en skugga kastas, vilket gör att renderaren eller skuggaren kan utföra tester om någon punkt är inom en skuggad volym för att avgöra hur den är upplyst.Andra metoder skapar skuggkartor, eller ungefärliga skuggor från vertexpositioner, för att skapa mycket diffusa skuggor som inte nödvändigtvis följer en fördel..Kvalitetsproblem kan uppstå genom användning av snabba men lågupplösta eller fuzzy tekniker som kan göra att vissa självskuggor verkar fel eller på sin plats.Hastighetsproblem uppstår när algoritmerna som används kräver för mycket overhead per ram eller försök att beräkna skuggprognoser för exakt.Även om det inte finns någon enda standard självskugga-producerande algoritm, inkluderar vissa grafikkort inbyggd acceleration för olika metoder som kan öka hastigheten på vissa tekniker.