問題タブ [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.
webgl2 - Webgl2 -- Transformfeedback と CPU へのダンプ。1,000,000 個の頂点位置を再配置する場合、どちらが高速ですか?
物理パーティクル システムのシミュレーションのために、WebGL2 プログラムを最適化したいと考えています。3D テクスチャにアクセスする変換フィードバックを使用して頂点の位置を調整する方が速いかどうかを知りたいです。たとえば、テクスチャのピクセルから「color.r」に位置を設定するか、3D 全体をダンプします。テクスチャを CPU に戻し、テクスチャからすべての頂点の位置値を抽出し、後続の描画サイクルで処理するために新しい頂点配列を GPU に再送信します。
初心者なので何が速いのかわかりません。テクスチャを使用する必要があるのは、位置計算では計算対象の頂点に対する 26 個の隣接パーティクルの位置を知る必要があるためです。
表示するコードはありません。いずれかのアプローチのコードを書く前に、アプローチのガイダンスを期待しています。
私の直感では、描画サイクルごとに 1,000,000 個の頂点 (最小) に相当するデータをやり取りするよりも、GPU にとどまる方が高速になると言われていますが、これは初心者の直感であり、知識に自信のある人から指導を受けることを好みます。
opengl-es - glMapBufferRange は null を返し、GL_INVALID_ENUM? を生成します。
OpenGL ES 3.0 はこちら。次のように TRANSFORM_FEEDBACK バッファの内容を読み戻そうとしています:
そして出力は
つまり、実際には glMapBufferRange() がエラー 1280 を生成しているように見えますが、これは Google によると GL_INVALID_ENUM です。
問題:
https://www.khronos.org/registry/OpenGL-Refpages/es3.0/html/glMapBufferRange.xhtmlによると、 glMapBufferRange がそのようなエラーを生成することは決してありません。GL_INVALID_VALUE、GL_INVALID_OPERATION、GL_OUT_OF_MEMORY のみ?
ios - Transform フィードバックなどの手法を使用して、画像内の特定のピクセルを GPU から CPU にフェッチします。
私は、テクスチャからピクセル データを読み取る必要がある iOS OpenGLES 3.0 画像フィルター アプリに取り組んでいます。次に、ピクセル全体をループし、しきい値を超える明るさなどの条件でいくつかのピクセルを抽出し、抽出されたすべてのピクセルを使用してスプライトを描画します。画面。
現在、Pixel Buffer Object (PBO) を使用して画像を高速に読み取っています。しかし、CPU 側で特定のピクセルを抽出する必要があります。画像サイズが大きいと時間がかかります。「ピクセル抽出」プロセスを高速化するための GPU 側の回避策はありますか。
私が考えているのは、画像を頂点シェーダーにサンプリングし、抽出作業を行ってから、変換フィードバックを使用してそれらをエクスポートすることですか? 実装することは可能ですか?