Sto facendo dei test con OpenGL ES 2 e ho ricevuto alcune domande, il mio programma attuale è così:
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
Il problema
Il crash del codice dato, dopo alcune ricerche, ho capito perché: ho bisogno di separare il mio buffer di indice nella parte init (dopo "riempire il buffer di indice glBufferData") o separarlo prima del primo "Bind VAO"
Le mie domande sono:
- Posso inserire il mio buffer di indice in VAO (buffer di indice azionario VAO?)?
- Ho dovuto separare i buffer dopo ogni aggiornamento (glBufferData)?
Nella mia applicazione ho alcuni buffer che vengono aggiornati su ciascun frame (Esempio: Particelle), quindi ho uno stack OpenGL del genere:
-> bind buffer 1
-> update buffer 1
-> close buffer 1
-> bind buffer 1
-> draw
Le prime 3 righe aggiornano il buffer dei vertici, gli ultimi due oggetti di disegno, che dovrebbero essere qualcosa del genere:
-> bind buffer 1
-> update buffer 1
-> draw
Grazie