フレームバッファ オブジェクトにレンダリングされたシーンの深度コンポーネントを読み取りたいです。最初に glReadPixels() を使用しましたが、デフォルトのフレームバッファからしかピクセルを読み取れないことがわかりました。
この Web サイトのいくつかの関連する質問への回答では、PBO の使用が提案されていますが、私はまだ試していません。PBO の読み取りは非同期のようですが、最後にどのコマンドを使用して読み取りを同期できますか?
フレームバッファ オブジェクトにレンダリングされたシーンの深度コンポーネントを読み取りたいです。最初に glReadPixels() を使用しましたが、デフォルトのフレームバッファからしかピクセルを読み取れないことがわかりました。
この Web サイトのいくつかの関連する質問への回答では、PBO の使用が提案されていますが、私はまだ試していません。PBO の読み取りは非同期のようですが、最後にどのコマンドを使用して読み取りを同期できますか?
ここでは PBO は役に立ちません。なぜなら、これらは (ホスト上のメモリを OpenGL 実装のメモリに読み込むのではなく) 読み込む別の種類のバッファだからです。
OpenGL で深度コンポーネントを読み取り可能にする通常の方法は、深度アタッチメントにアタッチされた深度テクスチャを使用し、glGetTexImageを使用してレンダリングした後に日付を取得することです。
通常のカラー アタッチメントの場合、以前の glReadBuffer の呼び出しで glReadPixels を使用してGL_COLOR_ATTACHMENT<i>
、バインドされた FBO を選択できます。