我在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.
我想要的是:
我得到了什么: