Robię testy z OpenGL ES 2 i mam pytania, mój obecny program jest taki:
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
Problem
Podany błąd kodu, po kilku badaniach, zrozumiałem, dlaczego: muszę rozpiąć mój bufor indeksu w części początkowej (po „wypełnieniu bufora indeksu glBufferData”) lub usunąć powiązanie przed pierwszym „Bind VAO”
Moje pytania to:
- Czy mogę umieścić bufor indeksu w VAO (bufor indeksu giełdowego VAO?)?
- Czy musiałem rozpinać bufory po każdej aktualizacji (glBufferData)?
W mojej aplikacji mam kilka buforów, które są aktualizowane w każdej ramce (Exemple: Particles), więc mam taki stos OpenGL:
-> bind buffer 1
-> update buffer 1
-> close buffer 1
-> bind buffer 1
-> draw
Pierwsze 3 linie aktualizują bufor wierzchołka, dwa ostatnie obiekty do rysowania, które powinny wyglądać mniej więcej tak:
-> bind buffer 1
-> update buffer 1
-> draw
Dzięki
źródło