Saya membuat beberapa tes dengan OpenGL ES 2 dan mendapat beberapa pertanyaan, program saya saat ini seperti itu:
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
Masalah
Kode yang diberikan macet, setelah beberapa penelitian, saya mengerti mengapa: Saya perlu melepaskan ikatan buffer indeks saya di bagian init (setelah "mengisi indeks buffer glBufferData") atau melepas ikatan sebelum "Bind VAO" pertama
Pertanyaan saya adalah:
- Dapatkah saya menempatkan buffer indeks saya di VAO (buffer indeks saham VAO?)?
- Apakah saya harus melepaskan ikatan buffer setelah setiap pembaruan (glBufferData)?
Dalam aplikasi saya, saya punya beberapa buffer yang diperbarui pada setiap frame (Contoh: Partikel) jadi saya punya tumpukan OpenGL seperti itu:
-> bind buffer 1
-> update buffer 1
-> close buffer 1
-> bind buffer 1
-> draw
3 baris pertama memperbarui buffer Vertex, dua objek undian terakhir, yang seharusnya seperti itu:
-> bind buffer 1
-> update buffer 1
-> draw
Terima kasih
sumber