OpenGL を使用して、非常に多く (数万) の画像を画面外にレンダリングする必要があります。
私は Windows で実行しており、QT をフレームワークとして使用しています。解決策はWindowsのみですが、実際には問題ではありません。
私が Google を使用して見つけたものから、これを行うための多くのオプションがあります。 この記事はかなり古いようですが、いくつかの方法を提案しています。そのうちの関連するものは次のとおりです。
- Windows 固有 -
CreateDIBSection
テクスチャを使用して何らかの方法でバインドします。 - 私のカードでサポートされていると思われる pbuffers 拡張機能を使用します。
このスレッド(メッセージ 6) は、これを使用してこれを行う QT 固有の方法を提案しています。QGLWidget::renderPixmap
私の質問は、どれが最速の方法でしょうか? pbuffers は、ハードウェア上で実行されることが保証されているため、最も安全な方法のようですが、CreateDIB メソッドを使用していないため、ハードウェアも通過しますか? QT法はどうですか?これにはコンテキスト作成の問題があるようです。確かに、作成するすべての画像に対して新しいコンテキストを作成したくはありません。
これで良い経験をした人はいますか?
EDIT : コメント
への回答 - まったく変わらない一定のシーンがあり、さまざまな視点からレンダリングしています。今のところ、画像はユーザーに返され、CPU によって処理されます。将来的には、GPU で処理される可能性があります。