1

フレームバッファ オブジェクトにレンダリングされたシーンの深度コンポーネントを読み取りたいです。最初に glReadPixels() を使用しましたが、デフォルトのフレームバッファからしかピクセルを読み取れないことがわかりました。

この Web サイトのいくつかの関連する質問への回答では、PBO の使用が提案されていますが、私はまだ試していません。PBO の読み取りは非同期のようですが、最後にどのコマンドを使用して読み取りを同期できますか?

4

1 に答える 1

2

ここでは PBO は役に立ちません。なぜなら、これらは (ホスト上のメモリを OpenGL 実装のメモリに読み込むのではなく) 読み込む別の種類のバッファだからです。

OpenGL で深度コンポーネントを読み取り可能にする通常の方法は、深度アタッチメントにアタッチされた深度テクスチャを使用し、glGetTexImageを使用してレンダリングした後に日付を取得することです。

通常のカラー アタッチメントの場合、以前の glReadBuffer の呼び出しで glReadPixels を使用してGL_COLOR_ATTACHMENT<i>、バインドされた FBO を選択できます。

于 2013-09-22T16:05:17.730 に答える