Was ist ein OpenGL® VBO?

Bei Verwendung der Open Graphics Library® (OpenGL®) Computergrafikbibliotheken zur Computerprogrammierung ist ein Vertex Buffer Object (VBO) eine Datenstruktur, mit der ein dreidimensionales (3D) Objekt konstruiert und im Speicher der Grafik gespeichert werden kann Karten- oder Grafikhardware. Auf diese Weise kann ein OpenGL®-VBO sehr schnell gerendert werden und es werden weitaus weniger Systemressourcen benötigt als bei anderen Techniken, die das Zeichnen im Sofortmodus verwenden. Neben dem Geschwindigkeitsgewinn und der Reduzierung des Grafik-Overheads ist ein OpenGL®-VBO auch eine dynamische Datenstruktur, die - anders als eine OpenGL®-Anzeigeliste - geändert werden kann, sobald sie sich im Speicher befindet. Das Konzept eines OpenGL®-VBO begann tatsächlich mit Hardware-Herstellern, die ursprünglich - unter verschiedenen Namen - eine ähnliche Art von Funktionalität enthielten wie eine Erweiterung der OpenGL®-Bibliotheken, die später vom OpenGL® Architecture Review Board (ARB) standardisiert wurde.

Ein OpenGL®-VBO ist im Grunde genommen eine Kombination aus zwei anderen OpenGL®-Datenstrukturtypen. Es umfasst die grundlegende Funktionalität eines Vertex-Arrays, da die Informationen für die Geometrie - einschließlich der Vertex-Koordinaten, Normalen und Farben - in einem strukturierten Array gespeichert werden können, das zur Verarbeitung an OpenGL® übergeben werden kann. Im Gegensatz zu einem Vertex-Array wird ein OpenGL®-VBO jedoch auf der Serverseite des Renderers gespeichert und muss nicht ständig auf die Clientseite zugreifen, um die Vertex-Informationen zu erhalten.

Indem der VBO im Grafikspeicher gespeichert werden kann, werden auch einige Eigenschaften einer Anzeigeliste übernommen. Der Hauptunterschied besteht darin, dass ein OpenGL®-VBO geändert werden kann und eine Anzeigeliste nicht. Zusätzlich wird der VBO nicht notwendigerweise in den Grafikspeicher kopiert, wie es eine Anzeigeliste wäre, so dass nur eine Datenstruktur im Speicher vorhanden sein muss.

Wenn ein OpenGL®-VBO endgültig gerendert wird, ist der Abstand zwischen dem Grafikspeicher, in dem es gespeichert ist, und der Grafikverarbeitungseinheit (GPU) sehr gering, wodurch eine sehr schnelle Rasterung möglich ist, ohne dass zuerst langsamere Systemhardware durchlaufen werden muss. In einigen Fällen wird die Verwendung von VBOs jedoch von der Grafikkartenhardware nicht unterstützt. Dies kann zu Programmierproblemen führen, bei denen die Verwendung eines VBO keinen zusätzlichen Nutzen bringt, oder zu Programmen, die mit einigen Grafikkarten nicht kompatibel sind.

Es gibt einige Methoden, die helfen können, die Behandlung eines OpenGL® VBO bei der Verwendung zu optimieren. Eine davon ist die Angabe von Hinweisen zur Grafikkarte oder zu OpenGL®, um zu bestimmen, wo sich der VBO im Speicher befinden soll. Abhängig von den gegebenen Hinweisen kann der VBO direkt im Grafikspeicher der Grafikkarte oder, falls erforderlich, im Arbeitsspeicher (RAM) des Systems gespeichert werden.

ANDERE SPRACHEN

War dieser Artikel hilfreich? Danke für die Rückmeldung Danke für die Rückmeldung

Wie können wir helfen? Wie können wir helfen?