9
テクスチャをスクリーンバッファにblitする機能はありますか? 逆数glCopyTexImage2D()
が必要です。テクスチャをスクリーンバッファに描画せずにテクスチャをコピーする(opengl)
このような機能はありますか?
テクスチャをスクリーンバッファにblitする機能はありますか? 逆数glCopyTexImage2D()
が必要です。テクスチャをスクリーンバッファに描画せずにテクスチャをコピーする(opengl)
このような機能はありますか?
最も近いのはglBlitFramebufferです。その名前が示すように、フレームバッファ用です。はい、framebuffers can include texturesですが、これをクワッドを使用してテクスチャを描画する代わりに使用することはありません。クワッドを使用してフレームバッファをブリッティングするよりもはるかに優れたテクスチャを描画するためのパフォーマンスが得られます。
また、クワッドを描画すると、テクスチャを描画する高速機能となります。
クワッドを描くことは、フルスクリーン/ノー・デプス・テスト/などにするための状態の変化を考慮しても、非常に高速です。その中で最も遅い部分は、バッファからテクスチャへのコピーですが、バッファを使ったピンポン方式のほうが高速である場合があります。バックバッファーとの間のブリッジング、またはフロントバッファーの悪化は、常に極端に遅くなります。 – ssube
いくつかのOpenGL実装では、glBlitFramebufferは実際には4重レンダリングを使用します。そして、 'memcpy'のようなものの代わりに、gpuは完全なパイプラインを使って1つのfboを別のものにblitします。しかし一方で、それはスケーリングとフィルタリングを実行する能力を与えます。 – fen
私のシステム(GTX 660)では、(フレームバッファにラップされた)テクスチャからメインフレームバッファにglBlitFramebufferを実行すると、クワッドを描画するよりも約20マイクロ秒遅くなります。魅力的な – subb