【发布时间】:2021-02-12 08:17:24
【问题描述】:
我有一个程序,我使用 glReadPixels 获取着色器的输出,并使用一些单独的库处理该输出,我需要将其写回帧缓冲区。 我尝试使用 glDrawPixels,但似乎从 3.2+ 开始不支持它。
事情就是这样
main loop
...
...
glReadPixels(...)
// Do some work
...
...
// Write modified buffer to current frame buffer
// Swap buffers
哪种 OpenGL 结构最适合这种情况?
【问题讨论】:
-
如果你想使用
glDrawPixels,你必须使用兼容配置文件的OpenGL上下文。见18.1 Drawing Pixels -
我将 glfw 设置为使用兼容性配置文件,但由于某种原因它给我带来了麻烦。我也想在 Mac OS 上运行它。以下如何:创建一个单独的 FBO,附加一个纹理。在默认帧缓冲区上渲染,使用 glReadPixels,做工作,绑定单独的 FBO 并复制到其附加的纹理,从单独的 FBO 复制到默认值。你怎么看?
标签: opengl