c++ - 将 FBO 混合到默认帧缓冲区

标签 c++ qt opengl framebuffer

澄清一下,当我说“默认帧缓冲区”时,我指的是窗口系统提供的那个,它最终出现在你的显示器上。

为了提高 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/

相关文章:

qt - 使用 Qt4 调用 REST 服务

c++ - Crytek SSAO 算法 OpenGL

c++ - 在RemoteHostClosedError之后重新连接到服务器时,QTcpSocket无法传输数据

c++ - 在 C++ 程序的 main 函数中, `return 0` 是什么意思?

c++ - 当在错误槽中启动事件循环时发生 ContentNotFoundError 时,QNetworkReply 会发出两次错误信号

opengl - 启用深度测试不会导致任何内容出现

java - 用于 fovy 和 aspect 透视的 OpenGL 投影矩阵

c++ - 返回临时的右值作为值

c++ - Visual Studio 调试器在内联代码中速度变慢

c++ - Qt C++ 隔离键盘