Wat is een OpenGL® VBO?

Bij gebruik van de Open Graphics Library® (OpenGL®) Computer grafische bibliotheken voor computerprogrammering, is een hoekpuntbufferobject (VBO) een gegevensstructuur waarmee een driedimensionaal (3D) object kan worden geconstrueerd en opgeslagen in het geheugen van de grafische kaart of grafische hardware. Hierdoor kan een OpenGL® VBO zeer snel worden weergegeven en veel minder systeembronnen gebruiken dan andere technieken die de onmiddellijke modustekening gebruiken. Naast de winst in snelheid en de vermindering van de grafische overhead, is een OpenGL® VBO ook een dynamische gegevensstructuur - in tegenstelling tot een OpenGL® -weergavelijst - die kan worden gewijzigd zodra deze in het geheugen is. Het concept van een OpenGL® VBO begon eigenlijk met hardwarefabrikanten die oorspronkelijk - onder verschillende namen - een soortgelijk type functionaliteit hebben opgenomen als een uitbreiding van de OpenGL® -bibliotheken die later werd gestandaardiseerd door de OpenGL® Architecture Review Board (ARB).

Een OpenGL® VBO is in feite eenCombinatie van twee andere soorten OpenGL® -gegevensstructuren. Het omvat de basisfunctionaliteit van een hoekpuntreeks, omdat de informatie voor de geometrie - inclusief de hoekpuntcoördinaten, normalen en kleur - allemaal kan worden opgeslagen in een gestructureerde array die kan worden doorgegeven aan OpenGL® voor verwerking. In tegenstelling tot een hoekpuntreeks wordt echter een OpenGL® VBO opgeslagen aan de serverzijde van de renderer en hoeft u niet constant toegang te krijgen tot de clientzijde voor de hoekpuntinformatie.

Door toe te staan ​​dat de VBO in grafisch geheugen wordt opgeslagen, neemt het ook enkele eigenschappen van een weergavelijst op. Het grote verschil is dat een OpenGL® VBO kan worden gewijzigd en dat een weergavelijst niet kan. Bovendien wordt de VBO niet noodzakelijkerwijs in het grafische geheugen gekopieerd als een weergavelijst, dus er hoeft slechts één gegevensstructuur in het geheugen aanwezig te zijn.

Wanneer een OpenGL® VBO eindelijk isweergegeven, de afstand tot het grafische geheugen waarin het wordt opgeslagen en de grafische verwerkingseenheid (GPU) is erg klein, waardoor zeer snelle rasterisatie mogelijk is zonder dat u eerst door langzamere systeemhardware moet bewegen. In sommige gevallen wordt het gebruik van VBO's echter niet ondersteund door grafische kaarthardware. Dit kan leiden tot programmeerproblemen die toegevoegde voordelen verwijderen van het gebruik van een VBO of een programma dat niet compatibel is met sommige grafische kaarten.

Er zijn enkele methoden die kunnen helpen om te optimaliseren hoe een OpenGL® VBO wordt behandeld bij gebruik. Een daarvan is om hints te geven aan de grafische kaart, of om OpenGL® te openen, om te helpen bepalen waar de VBO zich in het geheugen moet bevinden. Afhankelijk van de verstrekte hints, kan de VBO direct worden opgeslagen in grafisch geheugen op de grafische kaart, of kan het worden opgeslagen in het belangrijkste willekeurige toegangsgeheugen (RAM) van het systeem, indien nodig geacht.

ANDERE TALEN