2015-07-13 3 views
-1

Я пытаюсь использовать один VAO для представления одного VBO, который содержит несколько сеток. Сейчас у меня есть:Настройка VAO для обработки VBO с несколькими сетками

glVertexArrayElementBuffer (vertexArray, buffer); 
    glVertexArrayVertexBuffer (vertexArray, positionLocation, buffer, 0, 3 * sizeof (float)); 
    glVertexArrayVertexBuffer (vertexArray, normalLocation, buffer, (objectVertexBytes + objectIndexBytes), 3 * sizeof (float)); // Issue 2 

Больше источника здесь: http://pastebin.com/PDuk3fDu

Я думаю, что моя проблема заключается, главным образом, в последней строке сниппета.

Я думал, что смогу набить две разнородные сетки в одном и том же VBO? Как это возможно, если я могу настроить состояние только для создания источников буфера?

Я переживаю эту проблему, потому что я читал, что наличие единого VAO для каждого VBO ужасно неэффективно из-за того, что привязка является относительно дорогой вещью. Я также читал, что хранение ячеек с аналогичными потребностями в одном и том же VBO - хорошая идея.

+0

Почему я вниз проголосовали? – Stradigos

ответ

0

Не смешивайте буферный указатель с буфером VBO.

В итоге:

VBO 1 
Mesh 1 indices + Mesh 2 indices 

(Of course you could separate out Mesh 1 and Mesh 2 here if you'd like) 

VBO 2 
Mesh 1 Attributes (Vertex, Normal, etc.) 
Mesh 2 Attributes (Vertex, Normal, etc.) 
+0

Не уверен, что я понимаю вашу терминологию. В чем разница между «вершиной VBO» и «атрибутом VBO»? –

Смежные вопросы