我正在使用OpenGL实时进行一些视频处理。
我通过FBO + RBO和着色器对纹理进行渲染,以便在视频帧上进行简单处理。然后我使用该纹理渲染(而不是blit)到默认的帧缓冲区。
我的部分视频处理需要帧精确。如果我逐帧浏览视频,一切看起来都不错;当我以视频速率播放时,它会失去同步。
我认为我从FBO + RBO中获取的纹理不是基于我输入的纹理,因为缓冲/其他问题。
这似乎是一个相关的问题,但目前还没有答案:double buffering with FBO+RBO and glFinish()
在我的情况下,我使用Qt QGLWidget和QGL :: DoubleBuffer格式选项。
我需要刷新FBO的输出;或者如果我能弄清楚哪个帧纹理来自FBO我可以补偿同步问题。