1

OpenGL2.1 を使用して OpenGL アプリケーションを開発しており、スレッド経由でテクスチャをアップロードしたいと考えています。

私がこれまでに行ったこと:

  1. 2 番目のコンテキストを作成し、2 つの間で共有する
  2. テクスチャ データをスレッドにアップロードする

テクスチャのアップロード時に小さな「ラグ」が発生することを除けば、すべて正常に動作しています。これは、ドライバーが 2 つのコンテキストを同期する必要があるためです。問題は、テクスチャをストリーミングしたいということです。後でテクスチャを更新したくありません。アプリケーション全体を失速させることなく、「ほぼスムーズな」読み込みアニメーションを表示しながら、バックグラウンドでテクスチャを読み込みたいだけです。

それが私が検索したポイントであり、ピクセルデータの DMA データ転送に PBO を使用できることがわかりました。テクスチャのアップロードに PBO を使用することはできますか? もしそうなら、どのように?

4

1 に答える 1

3

テクスチャ データを非同期でアップロードするために、2 つ目のコンテキストは必要ありません。アップロードをトリガーした直後にバッファーを使用しないようにしてください。そうしないと、コピーが完了するのを待って停止します。

このプロセスの例を次に示します: http://www.songho.ca/opengl/gl_pbo.html#unpack

また、PBO とは何か、またどのように使用すべきかについて、もう少し詳しい情報があります: http://www.opengl.org/wiki/Pixel_Buffer_Object

于 2014-08-06T19:17:09.950 に答える