私たちが知っているようにglReadPixels()
、パイプラインをブロックし、CPU を使用してデータ形式を変換します。特に、深さの値をシステム RAM に読み出したい場合はそうです。
glReadPixels()
Songho が提供する PBO を試してみましたが、param ofが GL_BGRA に設定されている場合にのみ有用であることがわかりました。
- param で PBO を使用すると
GL_BGRA
、読み取り時間はほぼ 0.1ms で、CPU 使用率は 4% です。 - param を に変更すると
GL_RGBA
、CPU 使用率が 50% で 2ms と表示されます。
やってみると同じGL_DEPTH_COMPONENT
です。どうやら速度の低下は変換によって引き起こされているようです。データ形式の変換を停止する方法を知っている人はいますか?
私のプログラムでは、深度値を読み取り、1 秒以内に 16*25 回計算する必要があるため、2ms は受け入れられません。