Hvad er en OpenGL® Shadow?

Et åbent grafikbibliotek® (OpenGL®) Shadow er en visuel tilnærmelse i en tredimensionel (3D) OpenGL®-scene af, hvordan en skygge ville blive kastet i det virkelige liv under lignende lysforhold. Skygger er en kompleks visuel funktion at implementere i OpenGL®, stort set fordi der ikke er nogen medfødt støtte til casting af skygger i en scene. Der er i stedet en række teknikker, der kan bruges til at skabe skygger fra objekter og geometri inden for en scene ved hjælp af forskellige værktøjer, såsom de forskellige tilgængelige buffere, skygger og i nogle tilfælde udvidelser, der giver adgang til specielle funktioner på visse grafikkort. I de fleste tilfælde er kvaliteten, nøjagtigheden og hastigheden af ​​OpenGL® Shadow -gengivelse direkte relateret til behandlingseffekten og hukommelsen af ​​den grafikhardware, der er til stede i en computer eller enhed. Nogle af de mere populære metoder til implementering af en OpenGL® Shadow inkluderer skyggevolumener, skygge kortlægning og stråleporing.

Oprettelse af en applikation, der har OpenGL® Shadow Support, kræver matematisk viden og en dyb forståelse af, hvordan OpenGL® fungerer. OpenGL® bruges stort set til at skabe 3D -scener, der er dynamiske og gengives i realtid, så algoritmerne, der bruges til at skabe skygger, skal ikke kun optimeres til hastighed, men også skal måles omhyggeligt til deres forbrug af ressourcer og eventuelle forstyrrelser, der kan være forårsaget i grafikrørledningen, der bruges til rendering. Af disse grunde er den mest basale metode til at skabe en skygge, kaldet strålesporing, ofte upraktisk til fulde 3D -scener, fordi det kan tage meget lang tid.

stråleporing følger dybest set en imaginær linje eller stråle fra kameraets visningsplan eller placering gennem en scene til en objekts overflade og beregner derefter overfladenes farve baseret på placeringen af ​​en eller flere lyskilder og andre faktorer. Under rasteriseringsprocessen, hvor3D-scene drages til en to-dimensionel (2D) overflade, så den kan vises, skal processen med strålesporing udføres på hver pixel, der tegnes, og især med teksturer eller andre overfladeegenskaber, kan det være nødvendigt at vurdere de samme pixels flere gange. Dette betyder, at realtidsstrålesporing, selvom det nøjagtigt ville gøre skygger, normalt ikke er praktisk.

En anden metode, der kan bruges til at oprette en OpenGL® Shadow, er kendt som Shadow Mapping. Denne metode bruger dybden eller stencilbufferen til at gengive en scene fra lyskildens vinkel som en række afstande fra lyskilden til overfladerne på forskellige genstande i scenen. Scenen gengives derefter en anden gang fra den rigtige visningsvinkel og kontrollerer for at se, om hver pixel falder inden for et bestemt afstandsområde inden for bufferen, hvilket indikerer, om pixelen er tændt eller skygge. Brug af skygge kortlægning kan være hukommelsesintensiv og med scener, der har mere end en lyskilde, kan involvere mAking flere kort fra flere vinkler.

Skyggevolumener er en måde at skabe en OpenGL® -skygge, der er mere nøjagtig end nogle andre metoder, men den præsenterer sine egne problemer. Et skyggevolumen er i det væsentlige et usynligt stykke geometri i en scene, der udvides fra den oplyste overflade af et objekt væk fra lyskilden. Dette volumen kan kontrolleres mod andre genstande for at se, om de falder i skyggen af ​​den overflade, hvorfra volumen stammer fra. Denne procedure kan være meget kompleks og i sidste ende skabe visuelle artefakter, når de optimeres til hastighed.

ANDRE SPROG

Hjalp denne artikel dig? tak for tilbagemeldingen tak for tilbagemeldingen

Hvordan kan vi hjælpe? Hvordan kan vi hjælpe?