Hvad er en OpenGL® VBO?

Når du bruger Open Graphics Library® (OpenGL®) computergrafikbiblioteker til computerprogrammering, er et vertex bufferobjekt (VBO) en datastruktur, der tillader et tredimensionelt (3D) objekt at konstrueres og gemmes i grafikens hukommelse kort- eller grafikhardware. Dette gør det muligt at gengive en OpenGL® VBO meget hurtigt og bruge langt færre systemressourcer end andre teknikker, der bruger øjeblikkelig tilstandstegning. Ud over gevinsten i hastighed og reduktion i grafikoverhead er en OpenGL® VBO også en dynamisk datastruktur - i modsætning til en OpenGL®-displayliste - der kan ændres, når den er i hukommelsen. Konceptet med en OpenGL® VBO startede faktisk med hardwareproducenter, der oprindeligt inkluderede - under forskellige navne - en lignende type funktionalitet som en udvidelse af OpenGL®-bibliotekerne, der senere blev standardiseret af OpenGL® Architecture Review Board (ARB).

En OpenGL® VBO er dybest set en kombination af to andre typer OpenGL®-datastrukturer. Det omfatter den grundlæggende funktionalitet i en toppunktgruppe, fordi informationen til geometrien - inklusive toppunktkoordinater, normaler og farve - alle kan gemmes i en struktureret matrix, der kan overføres til OpenGL® til behandling. I modsætning til en toppunktgruppe, er en OpenGL® VBO imidlertid gemt på serversiden af ​​rendereren og behøver ikke konstant at få adgang til klientsiden for vertexinformationen.

Ved at tillade, at VBO gemmes i grafikhukommelse, tager det også nogle af egenskaberne på en displayliste. Den største forskel er, at en OpenGL® VBO kan ændres, og en displayliste kan ikke. Derudover kopieres VBO ikke nødvendigvis til grafikhukommelsen, som en visningsliste ville være, så kun en datastruktur behøver at være til stede i hukommelsen.

Når en OpenGL® VBO endelig gengives, er afstanden fra grafikhukommelsen, hvori den er gemt, og grafikbehandlingsenheden (GPU) meget lille, hvilket giver mulighed for meget hurtig rasterisering uden behov for at gå gennem langsommere systemhardware. I nogle tilfælde understøttes imidlertid brugen af ​​VBO'er ikke af grafikkorthardware. Dette kan føre til programmeringsproblemer, der fjerner eventuelle ekstra fordele ved at bruge en VBO, eller et program, der vil være uforenelig med nogle grafikkort.

Der er nogle metoder, der kan hjælpe med at optimere, hvordan en OpenGL® VBO behandles, når den bruges. Et af disse er at give tip til grafikkortet eller til OpenGL® for at hjælpe med at bestemme, hvor VBO skal placeres i hukommelsen. Afhængigt af de angivne tip kan VBO lagres direkte i grafikhukommelsen på grafikkortet, eller det kan muligvis gemmes i systemets hoved tilfældige adgangshukommelse (RAM), hvis det anses for nødvendigt.

ANDRE SPROG

Hjalp denne artikel dig? tak for tilbagemeldingen tak for tilbagemeldingen

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