澄清一下,当我说“默认帧缓冲区”时,我指的是窗口系统提供的那个,它最终出现在你的显示器上。
为了提高 CAD 应用程序的渲染速度,我设法将 3D 元素与 Qt 处理的 2D 元素分开,现在它们各自渲染到自己的 FBO 中。当需要将它们放到屏幕上时,我将 3D FBO 位 block 传输到默认 FB 上,然后我想在其上混合我的 2D FBO。
我已经很好地完成了 blitting 部分,但我看不出如何将我的 2D FBO 混合到它上面?两个 FBO 的大小和格式完全相同,并且都与默认 FB 相同。
我确信这是一个简单的操作,但我在网上找不到任何东西 - 大概是我错过了我正在尝试做的事情的正确术语。虽然我使用的是 Qt,但我可以毫无问题地使用 native OpenGL 命令。
最佳答案
blit 操作归根结底是像素复制操作。如果你想将一个图像叠加在另一个图像之上,你不能 blit 它。您必须改为将全屏四边形渲染为纹理并使用 proper blending parameters为您的混合操作。
关于c++ - 将 FBO 混合到默认帧缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8972252/