OpenGL透明对象在背景图像

时间:2018-06-05 19:00:12

标签: c++ qt opengl transparency

由于使用Qt3D框架的Qt3DOffscreenRenderer中的性能不佳(高CPU使用率),我使用/主要是OpenGL实现了新的offscreen renderer

不幸的是,我无法将在背景图像上绘制的对象变得透明。我启用了混合并设置了glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

结果如下:

enter image description here

您无法看到的是Qt徽标的像素' alpha是0.5。

作为参考,这是没有透明度的图像:

enter image description here

我只是希望Qt徽标有点透明,如下所示:

enter image description here

我设法使用this example创建此图像并修改它以使用上面提到的混合函数和着色器中的alpha值为0.5。

如何为屏幕外渲染器实现此目的?我尝试了很多参数,但没有运气。

1 个答案:

答案 0 :(得分:1)

问题在于我将QFramebufferObjectFormat的内部纹理格式设置为GL_RGBA32F,但它必须是GL_RGB32F(即没有Alpha通道)。