Я робив кілька тестів з 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
Проблема
Даний збій коду, після деяких досліджень, я зрозумів, чому: мені потрібно відв’язати свій індексний буфер в init частині (після "заповнення індексу буфера glBufferData") або відв'язати його перед першим "Зв'язати 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
Дякую