Looking for opengl Keywords? Try Ask4Keywords

openglVAOs verwenden


Einführung

Das Vertex Array Object speichert, wie opengl eine Gruppe von VBOs interpretieren soll.

Im Wesentlichen können Sie glVertexAttribPointer nicht jedes Mal aufrufen, wenn Sie ein neues Netz rendern möchten.

Wenn Sie nicht mit VAOs arbeiten möchten, können Sie einfach eines erstellen und es während der Programminitialisierung binden.

Syntax

  • void glEnableVertexAttribArray (GLuint attribIndex);

  • void glDisableVertexAttribArray (GLuint attribIndex);

  • void glVertexAttribPointer (GLuint attribIndex, GLint-Größe, GLenum-Typ, GLboolean normalisiert, GLsizei-Schritt, const GLvoid * -Zeiger);

  • void glVertexAttribFormat (GLuint attribIndex, GLint-Größe, GLenum-Typ, GLboolean-normalisiert, GLuint-Relativoffset);

  • void glVertexAttribBinding (GLuint attribIndex, GLuint bindingIndex);

  • void glBindVertexBuffer (GLuint-Bindungsindex, GLuint-Puffer, GLintptr-Offset, GLintptr-Schritt);

Parameter

Parameter Einzelheiten
attribIndex Die Position für das Vertex-Attribut, an das das Vertex-Array Daten zuführt
Größe Die Anzahl der Komponenten, die aus dem Attribut abgerufen werden sollen
Art Der C ++ - Typ der Attributdaten im Puffer
normalisiert ob Integer-Typen dem Gleitkommabereich [0, 1] (für vorzeichenlose) oder [-1, 1] (für vorzeichenbehaftet) zugeordnet werden sollen
Zeiger der Byte-Versatz in den Puffer zum ersten Byte der Attributdaten (aus void* Gründen in void* )
Versatz das Basisbyte-Offset vom Anfang des Puffers bis zum Beginn der Array-Daten
relativeOffset der Versatz zu einem bestimmten Attribut, relativ zum Basisversatz für den Puffer
schreiten die Anzahl der Bytes von den Daten eines Scheitelpunkts zum nächsten
Puffer das Pufferobjekt, in dem die Vertex-Arrays gespeichert sind
bindingIndex der Index, an den das Quellpufferobjekt gebunden wird

Bemerkungen

Das separate Attributformat-VAO-Setup kann mit glVertexAttribPointer (letzterer wird als glVertexAttribPointer definiert). Aber Sie müssen dabei vorsichtig sein.

Die Version des separaten Attributformats weist DSA-Entsprechungen (Direct State Access) in 4.5 auf. Diese haben dieselben Parameter, aber anstatt den gebundenen VAO zu verwenden, wird der VAO, der geändert wird, explizit übergeben. Bei Verwendung von DSA kann der glVertexArrayElementBuffer(vao, ebo); für glDrawElements mit glVertexArrayElementBuffer(vao, ebo);

VAOs verwenden Verwandte Beispiele