如何将缓冲区读回帧?

2024-06-12 10:32:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个FBO中的一个,我一直在用glsl来乒乓一些计算,我需要将纹理数据(dtype='f4')读回numpy数组中以进行进一步的计算。我在文档中找不到任何解释如何做到这一点的东西。有什么帮助吗?在

我用这个来创造纹理

self.texturePing = self.ctx.texture( (width, height), 4, dtype='f4')
self.texturePong = self.ctx.texture( (width, height), 4, dtype='f4')

我是这样处理的:

^{pr2}$

Tags: 数据文档selfnumpy数组widthctxglsl
2条回答

可以使用^{}读取帧缓冲区的内容。在

可以使用^{}将缓冲区转换为numpy数组

示例:

raw = self.fbo1.read(components=4, dtype='f4') # RGBA, floats
buf = np.frombuffer(raw, dtype='f4')

使用glGetTexImage(或者最好是glGetTextureImage)将数据复制到缓冲区(从用于颜色数据的纹理)。在

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glGetTexImage.xhtml

glGetTextureImage(textureToReadFrom, 0, GL_RGBA, GL_FLOAT, bufferSize, bufferPointer);

相关问题 更多 >