Skip to main content

Hvad er en OpenGL Skygge?

Et åbent grafikbibliotek og reg;(OpenGL ) Shadow er en visuel tilnærmelse i en tredimensionel (3D) OpenGL Scene for, 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 for OpenGL Shadow -gengivelse er direkte relateret til behandlingseffekten og hukommelsen af den grafikhardware, der er til stede på en computer eller en enhed.Nogle af de mere populære metoder til implementering af en OpenGL Shadow Support kræver matematisk viden og en dyb forståelse af, hvordan OpenGL arbejder.OpenGL bruges stort set til at skabe 3D -scener, der er dynamiske og gengives i realtid, så algoritmerne, der bruges til at skabe skyggerforårsaget i den grafikrørledning, der bruges til gengivelse.Af disse grunde er den mest basale metode til at skabe en skygge, kaldet stråleporing, ofte upraktisk til fulde 3D -scener, fordi det kan tage meget lang tid.

Strålesporing følger dybest set en imaginær linje eller stråle, fra visningenplan eller position af kameraet gennem en scene til en objekts overflade og beregner derefter farven på overfladen baseret på placeringen af en eller flere lyskilder og andre faktorer.Under rasteriseringsprocessen, hvor 3D-scenen trækkes til en to-dimensionel (2D) overflade, så den kan vises, skal processen med strålesporing udføres på hver pixel, der trækkes, og især med teksturer eller andetOverfladeegenskaber skal muligvis vurdere de samme pixels flere gange.Dette betyder, at realtidsstrålesporing, selvom den nøjagtigt ville gøre skygger, normalt ikke er praktisk.

En anden metode, der kan bruges til at skabe 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 skyggekortlægning kan være hukommelsesintensiv og med scener, der har mere end en lyskilde, kan involvere at lave flere kort fra flere vinkler.

Shadow -volumener 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.