Hvad er en OpenGL® VBO?
Når du bruger Open Graphics Library® (OpenGL®) computergrafikbiblioteker til computerprogrammering, er et Vertex Buffer-objekt (VBO) en datastruktur, der gør det muligt at konstruere et tredimensionelt (3D) objekt og gemmes i mindet om grafikkortet eller grafikhardware. Dette gør det muligt at gengives en OpenGL® VBO meget hurtigt og bruge langt færre systemressourcer end andre teknikker, der bruger øjeblikkelig tilstandstegning. Ud over gevinsterne i hastighed og reduktion i grafikomkostninger er en OpenGL® VBO også en dynamisk datastruktur - i modsætning til en OpenGL® -displayliste - der kan ændres, når den er i hukommelsen. Begrebet 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 grundlæggende er enKombination af to andre typer OpenGL® -datastrukturer. Det omfatter den grundlæggende funktionalitet af et toppunkt -array, fordi informationen til geometrien - inklusive toppunkt -koordinater, normaler og farve - alle kan gemmes i en struktureret matrix, der kan overføres til OpenGL® til behandling. I modsætning til en Vertex -array gemmes imidlertid en OpenGL® VBO på serversiden af rendereren og behøver ikke konstant at få adgang til klientsiden for toppunktinformationen.
Ved at lade 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 at en displayliste ikke kan. Derudover kopieres VBO ikke nødvendigvis i grafikhukommelsen, som en displayliste ville være, så kun en datastruktur skal være til stede i hukommelsen.
Når en OpenGL® VBO endelig ergengivet, afstanden fra grafikhukommelsen, hvor den er gemt, og grafikbehandlingsenheden (GPU) er meget lille, hvilket giver mulighed for meget hurtig rasterisering uden behov for at bevæge sig gennem langsommere systemhardware først. 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 uforeneligt med nogle grafikkort.
Der er nogle metoder, der kan hjælpe med at optimere, hvordan en OpenGL® VBO behandles, når det bruges. En af disse er at give tip til grafikkortet eller til OpenGL® at hjælpe med at bestemme, hvor VBO skal være placeret i hukommelsen. Afhængig af de anførte tip, kan VBO gemmes direkte i grafikhukommelse på grafikkortet eller kan blive gemt i systemets vigtigste tilfældige adgangshukommelse (RAM), hvis det anses for nødvendigt.