問題タブ [pbo]

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 投票する
1 に答える
579 参照

c++ - ソースPBOはいつリリースできますか?

CPUとGPUの間でデータを非同期的に移動するためにPBOを使用しています。

GPUから移動するとき、PBOでglMapBufferを呼び出した後、ソーステクスチャを削除できることを知っています。

しかし、その逆はどうですか?PBOからテクスチャ(glTexSubImage2D(...、NULL))への転送が完了し、PBOを安全に解放または再利用できることをいつ知ることができますか?テクスチャか何かをバインドするとすぐですか?

0 投票する
2 に答える
25425 参照

opengl - ピクセル バッファ オブジェクト (PBO) を使用してフレーム バッファ オブジェクト (FBO) からピクセル値を読み取る

Pixel Buffer Object (PBO) を使用して、FBO からピクセル値を (glReadPixels を使用して) 直接読み取ることはできますか?

もし、そうなら、

  1. FBO で PBO を使用する利点と欠点は何ですか?
  2. 次のコードの問題は何ですか

{

以下の glReadPixels は正常に動作します

次の glReadPixels は機能しません:(

0 投票する
3 に答える
1587 参照

android - Android NDK OpenGL ES 2.0 テクスチャ ピッチ

その幅とは異なるピッチでopengl es 2.0のテクスチャをブリットする方法はありますか? 通常、PBO を使用するか、glPixelStore を介して GL_PACK_ROW_LENGTH を調整することで、これを修正します。ただし、Android プラットフォームには、バッファをバインドするための GL_PIXEL_UNPACK_BUFFER も GL_PACK_ROW_LENGTH も存在しないようです。

glTex(Sub)Image2D はこれをサポートしていません。

任意のヒント?

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

c++ - OpenGL/PBO ピクセル描画の例が必要

画面上でピクセルを非常に高速に描画する必要があります。

この興味深いページを見つけました 高速ピクセル描画ライブラリ

著者は次のように投稿しています。

OpenGL/PBO が必要だと思います。

ここで PBO について読んでいましたhttp://www.opengl.org/registry/specs/ARB/pixel_buffer_object.txt とここhttp://www.songho.ca/opengl/gl_pbo.htmlでもわかり ません。 ..

PBO拡張機能を使用して2Dテクスチャのビットマップにピクセルを描画する方法の簡単な例を誰かが提供できますか?

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

opengl - opengl / CUDAの相互運用性を使用する場合、テクスチャを再作成する必要がありますか?

openglで使用しているテクスチャをCUDAを使って操作したい。これにはPBOを使用する必要があることを知っているので、次のようにPBOに変更を加えるたびにテクスチャを再作成する必要があるのではないかと思います。

glTexSubImage2DなどはPBOからデータをコピーしますか?

0 投票する
2 に答える
4100 参照

opengl - Opengl非同期/非ブロッキングマップ

の次のOpenGL仕様をARB_map_buffer_range見つけました。

この拡張機能を使用して非ブロッキングマップ呼び出しを実行できるかどうか疑問に思っていますか?

現在、私のアプリケーションでは、FBOにレンダリングし、ホストPBOバッファーにマップしています。

ただし、これに伴う問題は、データの転送中にレンダリングスレッドがブロックされることです。

レンダリングをパイプライン化することでこの問題を減らすことができますが、私のアプリケーションではレイテンシーが大きな問題です。

私の質問は、map_buffer_rangeをMAP_UNSYNCHRONIZED_BITとともに使用して、別のスレッドでマップ操作が終了するのを待つか、レンダリングスレッドが次のフレームをレンダリングする間、同じスレッドでマップ操作を延期できるかどうかです。

例えば

また

私が確信していないのは、マップ操作の準備ができたことをどのように知るかです。仕様には、「正しい操作を保証するための他の同期手法」のみが記載されています。

何か案は?

0 投票する
2 に答える
908 参照

opengl - opengl ビデオ フリーズ

私は IDS ueye cam を持っており、PBO 経由で OpenGL (OpenTK) にキャプチャを進めています。私の開発者用 PC では問題なく動作しますが、低速のマシンではしばらくするとビデオがフリーズします。

opengl を介してメモリを割り当て、ueye にマップするためのコード。カメラは処理された画像をここに保存します。

画像を pbo からテクスチャにコピーするには (テクスチャが作成され、OK):

誰かが間違いに気付くかもしれません... 約 6 秒後、ueye イベントは画像を配信しなくなります。TexSubImage2D を削除するとうまくいきますが、もちろん画像は表示されません。おそらくopenglのロックか何かがありますか?前もって感謝します - トーマス

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

opengl - Pixel Buffer オブジェクトを使用して GPU メモリから 3D テクスチャを読み取る方法

フラグメント シェーダー内から 3D テクスチャにデータを書き込んでいますが、そのデータをシステム メモリに非同期で読み戻す必要があります。バッファ オブジェクトへのパッキング操作を非同期的に開始する唯一の手段はglReadPixels()NULLポインタを使用して呼び出すことのようです。しかし、この関数は、読み返す領域を定義する四角形を渡す必要があります。PBO を使用するときにこれらのパラメーターが無視されるかどうかはわかりませんが、そうではないと思います。この場合、3D テクスチャ全体を取得するために、この関数に何を渡せばよいかわかりません。個々のスライスを読み戻さなければならない場合でも (これはばかげた IMO のようなものです)、どのスライスから読み取るかを OpenGL と通信する方法がわかりません。何か不足していますか?

ところで、すべてのスライスに個別の 2D テクスチャを使用することもできますが、間違っていなければ (3D-) ミップマッピングが台無しになります。結果の 3D テクスチャで関心のある領域を効率的に見つけるために、3D ミップマップを使用したいと考えました。

PS 最適化されていないタグで申し訳ありません。新しいタグを作成することは許可されていないため、以前は誰も 3D テクスチャについて質問していなかったようです...

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

qt - RGBA32 ピクセルを OpenGL ES テクスチャに直接保存する

画面にブリットする必要があるフレームを提供するライブラリを使用しています。バッファを割り当てると、このライブラリはこのバッファに直接書き込みます。必要な場合は、このバッファーの指定された部分を画面にブリットする必要があります。Qt と OpenGL/ES ペイント エンジンを使用してレンダリングしています。

質問: 画面にブリットする最速の方法は何ですか? QImage現在、データへのポインターを受け入れるコンストラクターを使用してバッファーをロードしています。これにより、コピーが回避されます。次に、 のdrawImage()方法を使用QPainterして、画面の正しい領域にブリットします。このメソッドは、領域のコピーを GPU メモリにロードし、OpenGL テクスチャを使用して画面にブリットすると思います。

プロセスをスピードアップするために、このコピーを避けることは可能でしょうか? たとえば、GPU に転送する必要がないように、OpenGL テクスチャで直接描画することは可能でしょうか? ピクセル バッファ オブジェクトを読みました。それが解決策になるのではないでしょうか?この目的で を使用してもQGLFramebufferObjectよろしいですか?

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

opengl-es-2.0 - OpenGL ES 2.0 で PBO を使用して GPU メモリにピクセルを直接コピーする

ピクセル バッファ オブジェクトを使用して、GPU メモリ内でピクセル データを直接転送できるはずだと読みました。私が理解していないのは、OpenGL ES 2.0 で PBO がサポートされているかどうかです。まとまりのない情報を見つけました。PBO は OpenGL ES 2.0 でサポートされていますか?

そうでない場合、OpenGL ES 2.0 でデータ (RGBA32) をテクスチャに直接配置する方法はありますか?