Wie binde ich eine Modellmatrix in ein VBO ein?

Ich möchte eine Pufferliste (an die GPU / den Vertex-Shader) senden, die Informationen zur Vertex-Position, Weltposition, Farbe, Skalierung und Drehung enthält.

Wenn jedes meiner 3D-Objekte transformationsbezogene Informationen in einer Matrix enthält, wie kann ich dieses Matrixarray (zusätzlich zu den anderen Vertex-Daten) über die VBO (s) an die GPU übergeben?

Aktualisiert Bitte entschuldigen Sie eventuelle Tippfehler:

// bind & set vertices.
gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);
gl.vertexAtribPointer(a_Position, 3, gl.FLOAT, false, stride, 0);

// bind & set vertex normals.
gl.bindBuffer(gl.ARRAY_BUFFER,, vertexNormalsBuffer);
gl.vertexAttribPointer(a_Normal, 3, gl.FLOAT, false, stride, 0);

// becaue i cant pass in a model matrix via VBO, im tryng to pass in my world coordinates.
gl.bindBuffer(gl.ARRAY_BUFFER, worldPositionBuffer);

// not sure why i need to do this, but most tutorials i've read says to do this.
gl.bindBuffer(gl.ARRAY_BUFFER, null);

// bind & draw index buffer.
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, vertexIndexBuffer);
gl.drawElements(gl.TRIANGLES, vertexIndexCount, gl.UNSIGNED_SHORT, 0);

Beachten Sie, dass diese Puffer (vertexBuffer, vertexNormalsBuffer, worldPostiionBuffer, vertexIndexBuffer) sind eine Verkettung aller entsprechenden 3D-Objekte in meiner Szene (die ich nacheinander über Attribute / Uniformen gerendert habe - ein naiver Ansatz, der viel einfacher und verständlicher ist, aber für 1000-Objekte furchtbar langsam).

Antworten auf die Frage(2)

Ihre Antwort auf die Frage