Wat is een OpenGL® Vertex Buffer?

Een hoekpuntbuffer van Open Graphics Library® (OpenGL®) is een gedeelte van het computergeheugen dat zich vaak direct op een grafische kaart bevindt en een zeer snelle toegang biedt tot een reeks hoekpunten en hun eigenschappen. Meestal wordt een OpenGL® hoekpuntbuffer gebruikt om een ​​hoekpuntobject (VBO) te maken, waarmee objecten binnen een driedimensionale (3D) scène kunnen worden weergegeven als onderdeel van een weergavelijst en niet in de onmiddellijke modus. Af en toe kan een hoekpuntbuffer echter buiten een VBO worden gebruikt om informatie over een object op te slaan of om transformaties op complexe modellen gemakkelijker te maken. Opgemerkt moet worden dat een hoekpuntbuffer zich niet in het geheugen van de grafische kaart hoeft te bevinden, omdat deze kan worden toegewezen zoals elke gegevensstructuur. Als de OpenGL® hoekpuntbuffer wordt gebruikt als onderdeel van een VBO, moet de grafische kaart die wordt gebruikt de speciale OpenGL® VBO-extensie ondersteunen om ervoor te zorgen dat de buffer in het grafische geheugen wordt geplaatst.

Op het meest basale niveau is een OpenGL® hoekpuntbuffer slechts een eenvoudige buffer, een toegewezen geheugengebied waarin gegevens kunnen worden opgeslagen. Het wordt een hoekpuntbuffer wanneer een hoekpuntmatrix erin wordt opgeslagen. Een OpenGL® hoekpuntmatrix is ​​een reeks gegevensstructuren die alle eigenschappen van afzonderlijke hoekpunten definieert. Deze informatie kan de X-, Y- en Z-locaties van het hoekpunt in de 3D-scène, de kleur van het hoekpunt, de normale en andere eigenschappen bevatten.

In onmiddellijke modusweergave worden OpenGL®-opdrachten direct uitgevoerd zoals ze vanuit een programma worden aangeroepen. In deze gevallen is het niet nodig om een ​​hoekpuntmatrix te hebben, omdat de opdrachten voor het plaatsen en tekenen van een hoekpunt rechtstreeks aan de hardware kunnen worden gegeven, hoewel dit ernstige prestatieproblemen kan veroorzaken. Voor niet-onmiddellijke modusweergave moet de informatie over een 3D-object of -model eerst in een hoekpuntreeks worden geplaatst, zodat deze een structuur heeft die OpenGL® gemakkelijk kan interpreteren; die array moet dan worden opgeslagen in een speciaal geheugengebied dat bekend staat als een OpenGL® hoekpuntbuffer.

Op zichzelf heeft de hoekpuntbuffer niet noodzakelijkerwijs speciale kenmerken anders dan een complete verzameling informatie te zijn die wordt gebruikt om een ​​object te tekenen. Wanneer de OpenGL® hoekpuntbuffer wordt omgezet in een OpenGL® hoekpuntbufferobject via de OpenGL-extensie, vindt echter een speciale reeks gebeurtenissen plaats om de tekening van het object dat in de hoekpuntbuffer is gedefinieerd te helpen optimaliseren. De buffer wordt namelijk toegewezen en opgeslagen in het geheugen van de grafische kaart, aan de serverzijde van de client-serverconfiguratie die OpenGL® gebruikt. Sommige berekeningen kunnen ook vooraf worden uitgevoerd op de VBO, zodat deze zo snel mogelijk kan worden weergegeven. Buiten een VBO ontvangt een gewone hoekpuntbuffer meestal deze behandeling niet en kan deze worden toegewezen en gebruikt zoals elk ander gegevenstype.

ANDERE TALEN

heeft dit artikel jou geholpen? bedankt voor de feedback bedankt voor de feedback

Hoe kunnen we helpen? Hoe kunnen we helpen?