Tôi đang thực hiện một số thử nghiệm với OpenGL ES 2 và nhận được một số câu hỏi, chương trình hiện tại của tôi là như thế:
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
Vấn đề
Sự cố mã đã cho, sau một số nghiên cứu, tôi đã hiểu tại sao: Tôi cần hủy liên kết bộ đệm chỉ mục của mình trong phần init (sau khi "điền vào bộ đệm chỉ số glBufferData") hoặc hủy liên kết trước "Bind VAO" đầu tiên
Câu hỏi của tôi là:
- Tôi có thể đặt bộ đệm chỉ mục của mình trong VAO (bộ đệm chỉ mục chứng khoán VAO không?)?
- Tôi có phải hủy liên kết bộ đệm sau mỗi lần cập nhật (glBufferData) không?
Trong ứng dụng của tôi, tôi đã có một số bộ đệm được cập nhật trên mỗi khung (Ví dụ: Hạt) vì vậy tôi đã có một ngăn xếp OpenGL như thế:
-> bind buffer 1
-> update buffer 1
-> close buffer 1
-> bind buffer 1
-> draw
3 dòng đầu tiên cập nhật bộ đệm Vertex, hai đối tượng vẽ cuối cùng, tương tự như vậy:
-> bind buffer 1
-> update buffer 1
-> draw
Cảm ơn