在PyOpenGL中渲染程序以使用多组参数进行纹理处理

时间:2020-03-19 06:32:35

标签: python pyqt5 glsl pyopengl

我目前正在尝试使用python模仿用GLSL编写的着色器。我首先在GLSL中编写一个着色器,然后使用PyOpenGL对其进行渲染,然后使用python编写相同的算法,并使用numpy和Pillow对其进行渲染。我想编写可以更改着色器输入参数并比较其图像输出的测试。

我当前用于将OpenGL渲染为纹理的解决方案是打开一个QOpenGLWidget窗口,将其命名为Program,然后渲染为FrameBuffer。现在,如果我只想渲染一个图像,这很好用。由于某种原因,Program不能在多个渲染实例中使用,因此我必须重新创建Program,并为每个测试打开一个新窗口。这很慢,我需要编写一些额外的代码。

我想知道是否有更简单的方法可以将GLSL着色器渲染为纹理,或者是否可以通过某种方式重建Window使其保持打开状态并为我提供TextureBuffer。我尝试了最后一个解决方案,但是使用GLSL打开窗口将阻止任何代码进度,直到将其关闭为止:/。

谢谢!

0 个答案:

没有答案
相关问题