OpenGL の変換フィードバック機能を使用しようとしています。ミニマルな頂点シェーダーを作成し、それを使用してプログラムを作成しました (フラグメント シェーダーはありません)。glTransformFeedbackVaryings
また、単一の出力変数名で を呼び出し、バッファ モードを に設定しましたGL_INTERLEAVED_ATTRIBS
。シェーダー プログラムは正常にコンパイルおよびリンクされます (呼び出し後にリンクすることも確認しglTransformFeedbackVaryings
ます。
を使用して単一の頂点属性配列を有効にglEnableVertexAttribArray
し、一般的な頂点属性に VBO を割り当て、属性の呼び出しをglVertexAttribPointer
行いました。
生成した別のバッファーにバインドし、TRANSFORM_FEEDBACK_BUFFER
変換フィードバック中に書き込むのに十分な大きさのデータ ストアを作成しました。
次に、変換フィードバックを有効にして を呼び出しますglDrawArrays(GL_POINTS, 0, 1000)
。プログラムの実行中にクラッシュすることはありません。
問題は、変換フィードバックが呼び出しTRANSFORM_FEEDBACK_BUFFER
中に に何かを書き込んでいるという兆候が得られないことです。glDrawArrays
監視するクエリを設定する GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN
と、これは常に0を返します。何を試しても、変換フィードバックを取得して何も書き込めないようです(意味のあることは気にしないでください!)
何かを書くための変換フィードバックを得る方法や、確認すべきことについて何か提案があれば、教えてください!
注: トランスフォーム フィードバック オブジェクトは使用できず、頂点配列オブジェクトも使用していません。