問題タブ [transform-feedback]
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.
java - GLES30.glGetBufferSubData はどこにありますか? トランスフォーム フィードバック データの読み取り方法 opengles 3.0
そのため、変換フィードバックで見つけた最も単純な例の 1 つ (ここ) に従い、それを Android/Java に変換していますが、AndroidglGetBufferSubData
には OpenGL ES 3.0 で利用できる機能がないようです。
Android ソースを検索して、JNI で別のメソッドを呼び出すときにこのメソッドが使用されているかどうかを確認しようとしましたが、正しい場所を探しているかどうかさえわかりません。
この関数が存在しない場合、変換フィードバックからデータを読み取るにはどうすればよいですか? 私は見ましたがglGetTransformfeedbackVarying
、私が望むことをglGetBufferPointerv
しglReadBuffer
ている人はいません。
これが私のコードです:
私の最終的な実装では、必ずしもデータを読み取る必要はありません。次のパス (フィードバック) でシェーダーで使用するだけです。しかし、これは本当に最初のステップです。
android - Android デバイスでの in および out ストレージ修飾子の OpenGLES 3.0 シェーダー コンパイル エラー
そのため、変換フィードバックを利用するために OpenGLES 3.0 を使用するようにアプリを更新していますが、シェーダーがコンパイルされていません。
エラー:
頂点シェーダー コードは次のとおりです。
コンパイルコードは次のとおりです。
...
誰かがこれに何か問題があると思いますか? in
とout
をそれぞれ変更しattribute
varying
てもエラーはスローされませんが、glUseProgram は gl エラー 1282「無効な操作」をスローします。
これは、es バージョン 3.0 の GL をセットアップする方法です。
c++ - トランスフォーム フィードバック デモ Xcode でゼロを取得
hereからデモをダウンロードしました。xcode で glewInit() を削除し、他のすべては同じままにしました。エラーも警告もなしに実行しましたが、出力はすべてゼロです。なぜですか?
私の mac: OS X EI キャプテン、Intel Iris Graphics 6100
デモは次のとおりです。
私の出力:
opengl - glDrawTransformFeedbackStream、ストリームは何を参照していますか?
このサンプルをg-trucから joglに移植したところ、うまくいきました。
しかし今、私は of が何stream
をglDrawTransformFeedbackStream
指しているのかを正確に理解しようとしています。
基本的に、vec4 position
入力は次のように変換されます
次のように:
transform-stream.vert、transform-stream.geom
そして、変換されたオブジェクトを単純にレンダリングしますglDrawTransformFeedbackStream
feedback-stream.vert、feedback-stream.frag
今、彼らが言うドキュメントに基づいて:
プリミティブ カウントを取得する変換フィードバック ストリームのインデックスを指定します。
かっこいいので、ここfeedbackArrayBufferName
にバインドすると0
そうあるべきだと思います。
また、ジオメトリ シェーダーは(のみ) 色をインデックス 0 に出力します。位置についてはどうでしょうか。それらはすでにストリーム 0 にあると想定されていますか? どのように?からglTransformFeedbackVaryings
?
したがって、このストリームへのすべての参照を 1 に切り替えて、それらがすべて一貫しているかどうか、およびそれらが同じインデックスを参照しているかどうかを確認しようとしました。
だから私は修正しました
と
また、ジオメトリ シェーダー内
しかし、実行すると、次のようになります。
何が起こっているのか知りたいと思ったら、ここでこれを見つけました
それは私に何が起こるのですか?position
インデックス 0 に、色をインデックス 1 にしますか?
私の仮説が正しいかどうか知りたいだけです。はいの場合は、ストリーム インデックスを変更して証明したいと思います。position
したがって、変更後にオン ストリーム 1 を色と一緒に設定する方法も知りたいです。この方法でジオメトリ シェーダーの出力を変更しますlayout(triangle_strip, max_vertices = 3, xfb_buffer = 1) out;
か?
文句を言うから
それから私はそれを追加し、私は得る
しかし、今では両方ともストリーム 1 にあるはずですが、何が欠けていますか?
また、ストリームの定義は何ですか?