pyopengl缓冲区动态读取numpy数组

use*_*596 8 python opengl buffer numpy pyopengl

我试图在python中编写一个模块,它将绘制一个numpy数组数据(rgb)到屏幕.目前我正在使用这样的三维颜色数组:

numpy.ones((10,10,3),dtype=np.float32,order='F')   # (for 10x10 pure white tiles)
Run Code Online (Sandbox Code Playgroud)

将它绑定到缓冲区并使用a glVertexAttribArray将数据广播到一个tile数组(点精灵)(在这种情况下是一个10x10数组),这适用于静态图像.

但我希望能够更改数组中的数据并让缓冲区反映此更改,而无需从头开始重建.

目前我已经构建了缓冲区:

glBufferData(GL_ARRAY_BUFFER, buffer_data.nbytes, buffer_data, GL_DYNAMIC_DRAW)
Run Code Online (Sandbox Code Playgroud)

其中buffer_data是numpy数组.我可以传递什么(如果有的话)(某些指针可能会进入内存?)

ali*_*i_m 2

如果你想快速渲染快速变化的 numpy 数组,你可以考虑看看glumpy。如果您确实使用纯 pyopengl 解决方案,我也很想知道它是如何工作的。

编辑:请参阅我的答案,了解如何使用 Glumpy 查看不断更新的 numpy 数组的示例