Hva er en OpenGL® VBO?

Når du bruker Open Graphics Library® (OpenGL®) Computer Graphics Libraries for Computer Programming, er et Vertex Buffer-objekt (VBO) en datastruktur som gjør at et tredimensjonalt (3D) -objekt kan konstrueres og lagres i minnet til grafikkortet eller grafikken. Dette gjør at en OpenGL® VBO kan gjengis veldig raskt og bruke langt færre systemressurser enn andre teknikker som bruker øyeblikkelig modus. I tillegg til gevinstene i hastighet og reduksjon i grafikkoverhead, er en OpenGL® VBO også en dynamisk datastruktur - i motsetning til en OpenGL® -visningsliste - som kan endres når den er i minnet. Konseptet med en OpenGL® VBO startet faktisk med maskinvareprodusenter som opprinnelig inkluderte - under forskjellige navn - en lignende type funksjonalitet som en utvidelse av OpenGL® -bibliotekene som senere ble standardisert av OpenGL® Architecture Review Board (ARB).

An OpenGL® VBO er i utgangspunktet enKombinasjon av to andre typer OpenGL® -datastrukturer. Det omfatter den grunnleggende funksjonaliteten til en toppunktgruppe, fordi informasjonen for geometrien - inkludert toppunktkoordinatene, normalene og fargen - alle kan lagres i et strukturert utvalg som kan sendes til OpenGL® for behandling. I motsetning til en Vertex -matrise, lagres imidlertid en OpenGL® VBO på serversiden av gjengivelsen og trenger ikke å stadig få tilgang til klientsiden for Vertex -informasjonen.

Ved å la VBO lagres i grafikkminnet, tar den også på seg noen av egenskapene til en visningsliste. Den største forskjellen er at en OpenGL® VBO kan endres og en visningsliste ikke kan. I tillegg er ikke VBO nødvendigvis kopiert til grafikkminnet som en visningsliste vil være, så bare en datastruktur må være til stede i minnet.

Når en OpenGL® VBO er endeligGjengitt, avstanden fra grafikkminnet det lagres i og grafikkbehandlingsenheten (GPU) er veldig liten, noe som gir veldig rask rasterisering uten å måtte gå gjennom langsommere systemmaskinvare først. I noen tilfeller støttes imidlertid ikke bruk av VBO -er av grafikkortmaskinvare. Dette kan føre til programmeringsproblemer som fjerner eventuelle ekstra fordeler ved å bruke en VBO, eller et program som vil være uforenlig med noen grafikkort.

Det er noen metoder som kan bidra til å optimalisere hvordan en OpenGL® VBO blir behandlet når den brukes. En av disse er å gi hint til grafikkortet, eller til OpenGL®, for å bestemme hvor VBO skal være plassert i minnet. Avhengig av antydningene som følger med, kan VBO lagres direkte i grafikkminne på grafikkortet, eller kan lagres i det viktigste tilfeldige tilgangsminnet (RAM) til systemet, hvis det anses som nødvendig.

ANDRE SPRÅK