Я делаю некоторые тесты с OpenGL ES 2 и получил несколько вопросов, моя текущая программа выглядит так:
Init
-------
-> create index buffer
-> fill index buffer glBufferData …
-> create vertex buffer
-> fill vertex buffer glBufferData …
Draw
-------
1. Apply vertex buffer
-> Bind VAO
-> bind vertex buffer
- enable attributs (glVertexPointer, …)
-> unbind vertex buffer
-> Unbind VAO
-> Bind VAO
3. Apply index buffer
4. Draw
Проблема
После некоторых исследований произошел сбой данного кода, и я понял, почему: мне нужно отменить привязку буфера индекса в части инициализации (после «заполнения буфера индекса glBufferData») или отменить привязку перед первым «Bind VAO»
Мои вопросы:
- Могу ли я поместить свой индексный буфер в VAO (буфер фондового индекса VAO?)?
- Нужно ли было откреплять буферы после каждого обновления (glBufferData)?
В моем приложении у меня есть несколько буферов, которые обновляются в каждом кадре (Пример: Частицы), поэтому у меня есть такой стек OpenGL:
-> bind buffer 1
-> update buffer 1
-> close buffer 1
-> bind buffer 1
-> draw
Первые 3 строки обновляют буфер Vertex, два последних объекта рисования, которые должны быть примерно такими:
-> bind buffer 1
-> update buffer 1
-> draw
Благодарность
источник