Как включить матрицу модели в VBO?
Я хочу отправить список буферов (в графический процессор / вершинный шейдер), который содержит информацию о положении вершины, положении в мире, цвете, масштабе и повороте.
Если у каждого из моих трехмерных объектов есть информация, связанная с преобразованием в матрице, как я могу передать этот массив матриц (в дополнение к другим данным вершин) в GPU через VBO?
обновленный Пожалуйста, извините за любые опечатки:
// 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);
Обратите внимание, что эти буферы (vertexBuffer
, vertexNormalsBuffer
, worldPostiionBuffer
, vertexIndexBuffer
) представляют собой объединение всех соответствующих трехмерных объектов в моей сцене (которые я рендерил один за другим с помощью атрибутов / униформ - наивный подход, который намного проще и легче понять, но ужасно медленный для объектов 1000).