2

Pythonで頂点バッファオブジェクトを正しく削除する方法を知りたいと思っていました。次のように VBO を生成します。

from ctypes import pointer
vbo_id = GLuint()
glGenBuffers(1, pointer(vbo_id))

ときどき、VBO を削除して、代わりに新しい VBO を作成する必要があります。VBOを削除する正しい方法は何だろうと思っていましたか? 次の 2 つの方法を試しましたが、どちらが正しいかわかりません (Python はどちらの方法でも文句を言いません)。

glDeleteBuffers(1, pointer(vbo_id))
or 
glDeleteBuffers(1, vbo_id)

正しい呼び方は?また、VBO を削除すると、GPU のメモリも解放されますか?

4

1 に答える 1

3

私はPythonを作成していないので、その一粒の塩でそれをglDeleteBuffers()取りますが、の仕様はいくつかのバッファーとバッファー名の配列を取ります。したがって、おそらくそうなるはずpointer(vbo_id)です。Cでは、とglGenBuffers()同じなので、Pythonでも同じことを想定しています。その理由は、2番目のパラメーターが単なるバッファー名ではなく、バッファー名の配列であるためです。

于 2012-03-17T15:51:20.463 に答える