問題タブ [texturing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
636 参照

qt - QQuickFramebufferObject: 親が「visible: false」であるアイテムをテクスチャ ソースとして使用すると、何も表示されない

これは Canvas3D では正常に機能しますが、QQuickFramebufferObject では機能しません。

私のコード

テストケースは、Qt にバンドルされている textureinsgnode サンプル アプリに基づいています。私の作品は派生作品であるため、最初にライセンス条項をここに投稿する必要があります。

では、実際のソースを。

main.cpp :

main.qml :

visible: falseinのコメントをmain.qml外すと、QQFBO は何も表示しなくなります。それはなぜですか、そして適切な解決策は何ですか?

opacity: 0代わりに設定しようとしましvisible: falseたが、これは同じ問題を引き起こします。

layer: trueで別のShaderEffectSource要素に置き換えようとしましたhideSource: trueが、 を設定visible: falseする必要ShaderEffectSourceがあり、同じ問題が発生します。

x: -10000; y: -10000代わりに設定も試しましたが、うまくいきますvisible: falseが、ハックです。

0 投票する
1 に答える
271 参照

android - OpenGL ES 2.0 FrameBuffer が黒い画面を返す

よし、FBO を使用してテクスチャにレンダリングし、後でこのテクスチャを使用してクワッドに表示するアプリケーションを作成しました。

これは、FBO とテクスチャを初期化するために使用しているコードです。

(1. 内のコードonDrawFrame())

問題はどこにコードを入れればいいのかわからないので、まずはonDrawFrame()メソッドにコードを入れていきます。これを行うと、テクスチャリングが正常に機能し、必要な結果が得られます。しかし、フレームごとに新しい FBO とテクスチャを作成しているため、しばらくするとアプリケーションが遅れ始め、最後にエミュレータがクラッシュします。

(2. 内のコードonSurfaceChanged())

その動作に気づいた後、コードをonSurfaceChanged()メソッドに入れることにしました。今回はアプリケーションはクラッシュしませんでしたが、テクスチャ全体が黒くなっています。テクスチャをクリアするか、その上に白いクワッドを描画しようとしましたが、何も機能しませんでした。そして、エラーを取得しようとすると、GLES20.glCheckFramebufferStatus(GLES20.GL_FRAMEBUFFER)またはGLES20.glGetError()すべてが正常であると表示されます。

また、メソッド内のコードをonDrawFrame()if 句で囲み、一度だけ実行されるようにしました。その結果、黒いテクスチャーも得られます。

(3.onDrawFrame()とのコードonSurfaceChanged())

私が最後に試みたのは、コードを両方のメソッドに入れることでした。onDrawFrame()テクスチャを正常に動作させるコードラインが見つかるまで、メソッドのコードを削減したかったのです。しかし、アプリケーションを起動すると、クワッドがちらつき、黒いテクスチャから適切なテクスチャに変わりました。

1 つの方法で動作するため、テクスチャの表示に問題はありません。コードに深度バッファを追加しようとしましたが、結果は同じです。私のアプリケーションでは必要ないので、コメントアウトしました。

何が起こっているのか言える人はいますか?誰かが動作するアプリケーションを持っているが、私の何が問題なのかわからない場合は、Android プロジェクトをダウンロードできるチュートリアルが見つからなかったので、その人がプロジェクトをアップロードできればいいと思います。