Was ist ein OpenGL® -Scheitelpunktpuffer?
Ein Open Graphics Library® (OpenGL®) -Puffer ist ein Bereich des Computerspeichers, der sich häufig direkt auf einer Grafikkarte befindet, die einen sehr schnellen Zugriff auf eine Reihe von Scheitelpunkten und deren Eigenschaften ermöglicht. In den meisten Fällen wird ein OpenGL®-Scheitelpunktpuffer verwendet, um ein VBO (Scheitelpunktpufferobjekt) zu erstellen, mit dem Objekte in einer dreidimensionalen (3D) Szene 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 über ein Objekt zu speichern oder um die Transformationen komplexer Modelle zu erleichtern. Es ist zu beachten, dass sich ein Scheitelpunktpuffer nicht im Grafikkartenspeicher befinden muss, da er wie jede Datenstruktur zugewiesen werden kann. Wenn der OpenGl® -Vertex -Puffer als Teil eines VBO verwendet wird, muss die verwendete Grafikkarte die spezielle OpenGl® VBO -Erweiterung unterstützen, um sicherzustellen, dass der Puffer im Grafikspeicher platziert wird.Nur ein einfacher Puffer, ein zugewiesener Speicherbereich, in dem Daten gespeichert werden können. Es wird ein Scheitelpunktpuffer, wenn ein Scheitelpunktarray darin gespeichert ist. Ein OpenGL® -Scheitelpunktarray ist ein Array von Datenstrukturen, das alle Eigenschaften einzelner Scheitelpunkte definiert. Diese Informationen können die X-, Y- und Z -Stellen des Scheitelpunkts in der 3D -Szene, die Farbe des Scheitelpunkts, die normalen und andere Eigenschaften enthalten.
Im unmittelbaren Modus -Rendering werden OpenGL® -Befehle direkt ausgeführt, wie sie innerhalb eines Programms aufgerufen werden. In diesen Fällen ist es unnötig, ein Scheitelpunktarray zu haben, da die Befehle zum Platzieren und Zeichnen eines Scheitelpunkts direkt an die Hardware gegeben werden können, obwohl dies zu ernsthaften Leistungsproblemen führen kann. Für die Renderung des Nichtmietungsmoduss müssen die Informationen zu einem 3D-Objekt oder Modell zuerst in ein Scheitelpunktarray platziert werden, sodass OpenGL® leicht interpretiert werden kann. thaT -Array muss dann in einem speziellen Speicherbereich gespeichert werden, der als OpenGL® -Scheitelpunktpuffer bekannt ist.
Für sich selbst hat der Scheitelpunktpuffer nicht unbedingt spezielle Attribute, als eine vollständige Sammlung von Informationen zu sein, die zum Zeichnen eines Objekts verwendet werden. Wenn der OpenGL® -Vertex -Puffer durch die OpenGL -Erweiterung in ein OpenGL® -Vertex -Pufferobjekt konvertiert wird, tritt jedoch eine spezielle Folge von Ereignissen auf, um die Zeichnung des im Scheitelpunktpuffer definierten Objekts zu optimieren. Der Puffer wird nämlich zugewiesen und im Grafikkartenspeicher auf der Serverseite des Client-Server-Setups OpenGl® gespeichert. Einige Berechnungen können auch im Voraus auf dem VBO durchgeführt werden, damit sie so schnell wie möglich gerendert werden können. Außerhalb eines VBO erhält ein einfacher Scheitelpunktpuffer diese Behandlung normalerweise nicht und kann wie jeder andere Datentyp zugeteilt und verwendet werden.