Was ist ein OpenGL® Vertex-Puffer?

Ein Open Graphics Library® (OpenGL®) -Vertex-Puffer ist ein Bereich des Computerspeichers, der sich häufig direkt auf einer Grafikkarte befindet und einen sehr schnellen Zugriff auf eine Reihe von Vertices und deren Eigenschaften ermöglicht. In den meisten Fällen wird ein OpenGL® Vertex Buffer verwendet, um ein Vertex Buffer Object (VBO) zu erstellen, mit dem Objekte in einer dreidimensionalen Szene (3D) als Teil einer Anzeigeliste und nicht im unmittelbaren Modus gerendert werden können. Gelegentlich kann jedoch ein Scheitelpunktpuffer außerhalb eines VBO verwendet werden, um Informationen zu einem Objekt zu speichern oder um Transformationen für komplexe Modelle zu vereinfachen. Es ist zu beachten, dass ein Vertex-Puffer nicht im Grafikkartenspeicher liegen muss, da er wie jede Datenstruktur zugeordnet werden kann. Wenn der OpenGL® Vertex-Puffer als Teil eines VBO verwendet werden soll, muss die verwendete Grafikkarte die spezielle OpenGL® VBO-Erweiterung unterstützen, um sicherzustellen, dass der Puffer im Grafikspeicher abgelegt wird.

Auf der einfachsten Ebene ist ein OpenGL® Vertex-Puffer nur ein einfacher Puffer, ein zugewiesener Speicherbereich, in dem Daten gespeichert werden können. Es wird zu einem Vertex-Puffer, wenn ein Vertex-Array darin gespeichert wird. Ein OpenGL® Vertex-Array ist ein Array von Datenstrukturen, das alle Eigenschaften einzelner Vertices definiert. Diese Informationen können die X-, Y- und Z-Positionen des Scheitelpunkts in der 3D-Szene, die Farbe des Scheitelpunkts, die normalen und andere Eigenschaften enthalten.

Beim sofortigen Rendern werden OpenGL®-Befehle direkt ausgeführt, wenn sie in einem Programm aufgerufen werden. In diesen Fällen ist es nicht erforderlich, ein Vertex-Array zu haben, da die Befehle zum Platzieren und Zeichnen eines Vertex direkt an die Hardware übergeben werden können, obwohl dies schwerwiegende Leistungsprobleme verursachen kann. Für das Rendern im nicht unmittelbaren Modus müssen die Informationen zu einem 3D-Objekt oder -Modell zunächst in einem Vertex-Array platziert werden, damit eine Struktur vorliegt, die OpenGL® leicht interpretieren kann. Dieses Array muss dann in einem speziellen Speicherbereich gespeichert werden, der als OpenGL® Vertex Buffer bezeichnet wird.

Der Vertex-Puffer selbst muss keine besonderen Attribute aufweisen, außer eine vollständige Sammlung von Informationen, die zum Zeichnen eines Objekts verwendet werden. Wenn der OpenGL®-Scheitelpunktpuffer über die OpenGL-Erweiterung in ein OpenGL®-Scheitelpunktpufferobjekt konvertiert wird, tritt jedoch eine spezielle Ereignissequenz auf, um das Zeichnen des im Scheitelpunktpuffer definierten Objekts zu optimieren. Der Puffer wird nämlich auf der Serverseite des von OpenGL® verwendeten Client-Server-Setups zugewiesen und im Grafikkartenspeicher gespeichert. Einige Berechnungen können auch im Voraus auf dem VBO durchgeführt werden, damit es so schnell wie möglich gerendert werden kann. Außerhalb eines VBO erhält ein einfacher Vertex-Puffer diese Behandlung normalerweise nicht und kann wie jeder andere Datentyp zugewiesen und verwendet 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?