Hva er en OpenGL® Vertex Buffer?

En vertexbuffer med Open Graphics Library® (OpenGL®) er et område av dataminne som ofte er plassert direkte på et grafikkort som gir veldig rask tilgang til en rekke toppunkt og deres egenskaper. Oftest brukes en OpenGL® vertexbuffer for å lage et vertexbufferobjekt (VBO), slik at objekter i en tredimensjonal (3D) scene kan gjengis som en del av en visningsliste og ikke i umiddelbar modus. Noen ganger kan imidlertid en toppunktbuffer brukes utenfor en VBO for å lagre informasjon om et objekt eller for å gjøre transformasjoner lettere på komplekse modeller. Det skal bemerkes at en toppunktbuffer ikke trenger å være plassert i grafikkortminnet, fordi den kan tildeles som hvilken som helst datastruktur. Hvis OpenGL®-vertexbufferen skal brukes som en del av en VBO, må grafikkortet som brukes støtte den spesielle OpenGL® VBO-utvidelsen for å sikre at bufferen er plassert i grafikkminnet.

På det mest grunnleggende nivået er en OpenGL® toppunktbuffer bare en enkel buffer, et tildelt minneområde der data kan lagres. Det blir en toppunktbuffer når en toppunktoppstilling lagres i den. En OpenGL® toppunktgruppe er en rekke datastrukturer som definerer alle egenskapene til individuelle vertikaler. Denne informasjonen kan inkludere X-, Y- og Z-plasseringen av toppunktet i 3D-scenen, fargen på toppunktet, de normale og andre egenskaper.

Ved gjengivelse av øyeblikkelig modus utføres OpenGL®-kommandoer direkte som de blir kalt fra et program. Det er unødvendig i disse tilfellene å ha en toppunktoppstilling, fordi kommandoene for å plassere og tegne en toppunkt kan gis direkte til maskinvaren, selv om dette kan forårsake alvorlige problemer med ytelsen. For gjengivelse av ikke-øyeblikkelig modus, må informasjonen om et 3D-objekt eller en modell først plasseres i en toppunktgruppe, slik at den har en struktur som OpenGL® enkelt kan tolke; den arrayen må da lagres i et spesielt minneområde kjent som en OpenGL® toppunktbuffer.

I seg selv har toppunktbufferen ikke nødvendigvis andre spesielle attributter enn å være en komplett samling av informasjon som brukes til å tegne et objekt. Når OpenGL® vertexbufferen blir konvertert til et OpenGL® vertexbufferobjekt gjennom OpenGL-utvidelsen, oppstår det imidlertid en spesiell hendelsesrekkefølge for å optimalisere tegningen av objektet som er definert i toppunktbufferen. Nemlig at bufferen blir tildelt og lagret i grafikkortminnet, på serversiden av klient-serveroppsettet som OpenGL® bruker. Noen beregninger kan også utføres på forhånd på VBO, slik at den kan gjengis så raskt som mulig. Utenfor en VBO får en vanlig toppunktbuffer vanligvis ikke denne behandlingen og kan tildeles og brukes som alle andre datatyper.

ANDRE SPRÅK

Hjalp denne artikkelen deg? Takk for tilbakemeldingen Takk for tilbakemeldingen

Hvordan kan vi hjelpe? Hvordan kan vi hjelpe?