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行は、最後の2つの描画オブジェクトであるVertexバッファーを更新します。
-> bind buffer 1
-> update buffer 1
-> draw
ありがとう