QMLでQQuickFramebufferObjectを使用してOpenGLコードを描画しています。 QMLを使ってOpenGLを行う方法をいくつか見つけました。(QtのSquircleの例では)すべてのOpenGLをすべてのものの下に描画することですが、上記の両方のQMLオブジェクトを必要とするためQQuickFramebufferObjectメソッドを使用していますOpenGL描画オブジェクトの下に表示されます。QQuickFramebufferObjectの背景を透明に設定できますか?
すべてのOpenGLコードが正常に動作します。 QQuickFramebufferObjectの背景は透過的である必要があり、下にあるQMLオブジェクトを見ることができます。 (私のQQuickFramebufferObjectは抽象的な形状を描画します)しかし、QQuickFramebufferObjectは、画面上の四角形をブロックして、下に何も表示していないようです。私は試しました
glClearColor(0.0, 0.0, 0.0, 0.0f);
glClear(GL_COLOR_BUFFER_BIT);
背景は透明ですが、代わりに私はちょうど白い矩形を取得します。 FBOのレンダリングを全部呼び出すのをスキップしても、それはまだすべてを描画しているので、OpenGLコードの外で、QMLがFBOをどのように処理するのかと思っています。私が欲しいもの
:
私は何を得る:
QSG_VISUALIZE = overdrawオプションを指定して起動すると、その矩形が不透明かどうかを確認できます。おそらく、QQuickFramebufferObjectメソッドはQSGSimpleTextureNodeになります。おそらく、透明性を有効にする方法があります。十分でない場合は、QSGGeometryNodeを使用してアイテムレンダリングを実装する必要があります。そのため、テクスチャ付きのビルボードを経由せずにジオメトリを直接レンダリングします。 – Velkan