VBO の内容を変更しようとしていますが、それはストリーム ドロー用であるため、ここ(およびここ) で説明されている概念を理解し、従おうとしていますが、それを試みるとエラーが発生します。
これは私がやろうとしていることです:
void Model::Draw()
{
//Changing only the vertexesVBO
_vertexes[0] += 0.0001f;
glBindBuffer(GL_ARRAY_BUFFER, _vboVertexes._bufferID);
//This works
//glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(float), &_vertexes[0]);
//But this doesn't
glBufferData(GL_ARRAY_BUFFER, 0, NULL, GL_STREAM_DRAW);
glBufferSubData(GL_ARRAY_BUFFER, 0, _vertexCount * sizeof(float), _vertexes);
//Call vertexVBO, uvVBO, indexIBO, disable them
}
おそらく、サイズ _vertexCount * sizeof(float) の新しい BufferData と初期化されていないデータを作成し、同じ_vertexesデータをそれにアップロードして、次の描画呼び出しで使用します。しかし、これはアクセス違反読み取りのエラーをスローしています。
これを機能させるにはどうすればよいですか?そして、私が正しく理解していれば、これでアニメーション用のダブルバッファ VBO を実装する必要はありませんよね?