Skip to main content

Hvad er en OpenGL Vertexbuffer?

Et åbent grafikbibliotek og reg;(OpenGL ) Vertex -buffer er et område med computerhukommelse, der ofte findes direkte på et grafikkort, der giver meget hurtig adgang til en række vertikater og deres egenskaber.Oftest en OpenGL Vertex-puffer bruges til at oprette et Vertex Buffer-objekt (VBO), hvilket tillader objekter inden for en tredimensionel (3D) scene, der kan gengives som en del af en displayliste og ikke i øjeblikkelig tilstand.Lejlighedsvis kan en toppunktbuffer imidlertid bruges uden for en VBO til at gemme information om et objekt eller til at hjælpe med at gøre transformationer lettere på komplekse modeller.Det skal bemærkes, at en toppunktbuffer ikke behøver at være placeret i grafikkorthukommelsen, fordi det kan tildeles som enhver datastruktur.Hvis OpenGL Vertex -buffer vil blive brugt som en del af en VBO, derefter skal det grafikkort, der bruges, understøtte Special OpenGL VBO -udvidelse for at sikre, at bufferen er placeret i grafikhukommelse.

På det mest basale niveau, en OpenGL Vertexbuffer er bare en simpel buffer, et tildelt hukommelsesområde, hvor data kan gemmes.Det bliver en toppunktbuffer, når en toppunktarray opbevares i den.En OpenGL Vertex Array er en række datastrukturer, der definerer alle egenskaber ved individuelle vertikater.Disse oplysninger kan omfatte X-, Y- og Z -placeringer af toppunktet i 3D -scenen, farven på toppunktet, de normale og andre egenskaber.

I øjeblikkelig tilstand gengivelse, openGL Kommandoer udføres direkte, som de kaldes inden for et program.Det er i disse tilfælde unødvendigt at have et toppunkt -array, fordi kommandoerne til placering og tegning af et toppunkt kan gives direkte til hardware, selvom dette kan forårsage alvorlige ydelsesproblemer.Til gengivelse af ikke-primit-tilstand skal oplysningerne om et 3D-objekt eller model først placeres i et toppunkt-array, så den har en struktur, der openGL kan let fortolke;Denne array skal derefter opbevares i et specielt hukommelsesområde kendt som en OpenGL Vertexbuffer.

Af sig selv har Vertex -bufferen ikke nødvendigvis nogen andre specielle attributter end at være en komplet samling af oplysninger, der bruges til at tegne et objekt.Når OpenGL Vertexbuffer omdannes til en OpenGL Vertexbufferobjekt gennem OpenGL -udvidelsen forekommer imidlertid en speciel rækkefølge af begivenheder for at hjælpe med at optimere tegningen af objektet, der er defineret i toppunktbufferen.Nemlig er bufferen tildelt og gemt i grafikkorthukommelse på serversiden af klient-serveropsætningen OpenGL anvendelser.Nogle beregninger kan også udføres på forhånd på VBO, så det kan gengives så hurtigt som muligt.Uden for en VBO modtager en almindelig toppunktbuffer normalt ikke denne behandling og kan tildeles og bruges som enhver anden datatype.