はのは、私は頂点の配列とVBOポインタを持っているとしましょう:OpenGL:VBOにバッファリングした後でもまだ頂点の配列が必要ですか?
std::vector<Vertex> vertices;
GLuint vbo;
glBindBuffer(GL_ARRAY_BUFFER, vbo);
今、私はデータをバッファリング:
glBufferData(
GL_ARRAY_BUFFER,
vertices.size()*sizeof(Vertex),
&vertices[0],
GL_STATIC_DRAW
);
私はこれを正しく理解していれば、私はまだ起因する頂点の配列を維持する必要がありますGL_STATIC_DRAW
。しかし、それをGL_STATIC_COPY
に変更すると、すべてのデータがGPUのメモリにコピーされ、vertices
で使用されるメモリを解放できます。あれは正しいですか?その場合、なぜ*_DRAW
が必要ですか?それはGPUのメモリ制限のために役立つのですか?プラスGL_STATIC_READ
はどのように実際に動作しますか?