Skip to main content

Hva er en OpenGL Skygge?

Et åpent grafikkbibliotek og reg;(OpenGL ) Shadow er en visuell tilnærming i en tredimensjonal (3D) OpenGL Scene for hvordan en skygge ville bli kastet i det virkelige liv under lignende lysforhold.Shadows er et komplekst visuelt trekk å implementere i OpenGL , hovedsakelig fordi det ikke er noen medfødt støtte for å støpe skygger i en scene.Det er i stedet en rekke teknikker som kan brukes til å lage skygger fra objekter og geometri i en scene ved hjelp av forskjellige verktøy, for eksempel de forskjellige tilgjengelige bufferne, skyggeleggerne, og i noen tilfeller utvidelser som gir tilgang til spesielle funksjoner på visse grafikkkort.I de fleste tilfeller kvaliteten, nøyaktigheten og hastigheten til OpenGL Shadow Rendering er direkte relatert til behandlingskraften og minnet til grafikkmaskinvaren som er til stede på en datamaskin eller enhet.Noen av de mer populære metodene for å implementere en OpenGL Shadow inkluderer skyggevolum, skyggekartlegging og sporing av strålen.

Skyggestøtte krever matematisk kunnskap og en dyp forståelse av hvordan OpenGL virker.OpenGL brukes i stor grad til å lage 3D -scener som er dynamiske og gjengis i sanntid, så algoritmene som brukes til å lage skygger må ikke bare optimaliseres for hastighet, men også må måles nøye for deres forbruk av ressurser og eventuelle forstyrrelser som kan væreforårsaket i grafikkledningen som brukes til gjengivelse.Av disse grunner er den mest grunnleggende metoden for å lage en skygge, kalt strålesporing, ofte upraktisk for full 3D -scener, fordi det kan ta veldig lang tid. Ray -sporing følger i utgangspunktet en tenkt linje, eller stråle, fra visningenFly eller plassering av kameraet gjennom en scene til et objekts overflate og beregner deretter fargen på overflaten basert på plasseringen av en eller flere lyskilder og andre faktorer.Under rasteriseringsprosessen, der 3D-scenen trekkes til en todimensjonal (2D) overflate slik at den kan vises, må prosessen med strålesporing utføres på hver piksel som blir trukket og spesielt med teksturer eller andreOverflateegenskaper, kan trenge å vurdere de samme pikslene flere ganger.Dette betyr at sanntidsstrålesporing, selv om den nøyaktig vil gjengi skygger, vanligvis ikke er praktisk. En annen metode som kan brukes til å lage en OpenGL Shadow er kjent som skyggekartlegging.Denne metoden bruker dybden eller sjablongbufferen for å gjengi en scene fra lyskildens vinkel som en serie avstander fra lyskilden til overflatene til forskjellige gjenstander i scenen.Scenen blir deretter gjengitt en gang fra riktig synsvinkel, og sjekker for å se om hver piksel faller innenfor et visst avstandsområde innenfor bufferen, noe som indikerer om pikselen er tent eller skyggelagt.Å bruke skyggekartlegging kan være minnekrevende og med scener som har mer enn en lyskilde, kan innebære å lage flere kart fra flere vinkler. Shadow Volumes er en måte å lage en OpenGL reg;Skygge som er mer nøyaktig enn noen andre metoder, men den gir sine egne problemer.Et skyggevolum er egentlig et usynlig stykke geometri i en scene som utvides fra den opplyste overflaten til et objekt bort fra lyskilden.Dette volumet kan sjekkes mot andre gjenstander for å se om de faller i skyggen av overflaten som volumet har sin opprinnelse fra.Denne prosedyren kan være veldig kompleks og til slutt lage visuelle gjenstander når den er optimalisert for hastighet.