由于使用Qt3D框架的Qt3DOffscreenRenderer中的性能不佳(高CPU使用率),我使用/主要是OpenGL实现了新的offscreen renderer。
不幸的是,我无法将在背景图像上绘制的对象变得透明。我启用了混合并设置了glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
。
结果如下:
您无法看到的是Qt徽标的像素' alpha是0.5。
作为参考,这是没有透明度的图像:
我只是希望Qt徽标有点透明,如下所示:
我设法使用this example创建此图像并修改它以使用上面提到的混合函数和着色器中的alpha值为0.5。
如何为屏幕外渲染器实现此目的?我尝试了很多参数,但没有运气。
答案 0 :(得分:1)
问题在于我将QFramebufferObjectFormat
的内部纹理格式设置为GL_RGBA32F
,但它必须是GL_RGB32F
(即没有Alpha通道)。