我正在尝试在python中编写一个模块,该模块将向屏幕绘制一个彩色数据(rgb)的numpy数组。目前,我目前正在使用3维颜色数组,如下所示:

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

将其绑定(bind)到缓冲区,并使用glVertexAttribArray将数据广播到图块(点 Sprite )数组(在本例中为10x10数组),这对于静态图像而言效果很好。

但是我希望能够更改数组中的数据,并使缓冲区能够反射(reflect)此更改,而不必从头开始进行重建。

目前,我已经使用以下方法构建了缓冲区:
glBufferData(GL_ARRAY_BUFFER, buffer_data.nbytes, buffer_data, GL_DYNAMIC_DRAW)

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

最佳答案

如果要快速呈现快速变化的numpy数组,则可以考虑查看glumpy。如果您确实选择了纯pyopengl解决方案,那么我也很想知道它是如何工作的。

编辑:see my answer here有关如何使用Glumpy查看不断更新的numpy数组的示例

10-05 22:42
查看更多