QQuickFramebufferObject

QQuickFramebufferObject

我在QML中使用QQuickFramebufferObject绘制OpenGL代码。我发现了几种使用QML进行OpenGL的方法,其中一种(在Qt的Squircle示例中)是在所有内容之下或所有内容之上绘制所有OpenGL,但是我使用的是QQuickFramebufferObject方法,因为我在上面都需要常规的QML对象并在OpenGL绘制的对象下方。

所有的OpenGL代码都可以正常工作。 QQuickFramebufferObject的背景必须是透明的,以便可以看到下面的QML对象。 (我的QQuickFramebufferObject绘制了一个抽象的形状。)但是,QQuickFramebufferObject似乎将其矩形遮挡在屏幕上,并且在下方不显示任何内容。我试过了

glClearColor( 0.0, 0.0, 0.0, 0.0f );
glClear( GL_COLOR_BUFFER_BIT );

这样背景是透明的,但是我只是得到了一个白色矩形。即使我完全不调用FBO的渲染,它仍会覆盖所有内容,因此我认为这是OpenGL代码之外的内容,以及QML如何处理FBO。

我想要的是:

c++ - 我可以将QQuickFramebufferObject的背景设置为透明吗?-LMLPHP

我得到的是:

c++ - 我可以将QQuickFramebufferObject的背景设置为透明吗?-LMLPHP

最佳答案

我想通了,这不是FBO的错误,而是Rectangle持有的错误。我从不设置颜色,因为我只是将其用作其他对象的支架,默认情况下它似乎是白色的,而不是透明的。我将其更改为颜色:“透明”,现在一切正常。

关于c++ - 我可以将QQuickFramebufferObject的背景设置为透明吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34664078/

10-10 21:38