OpenGLアプリケーション用のテキストレンダラーを作成しています。実行時にサイズ、色、フォント、およびアンチエイリアスが混乱する可能性があります(複数のフォントフェイスが一度に画面に表示される可能性があります)。文字列と属性の各組み合わせに1つのテクスチャを割り当てるには組み合わせが多すぎます。ただし、文字列のデータベース全体のうちの小さなサブセットのみが、いつでも画面に表示されます。OpenGLでキャッシュテクスチャをどのように管理できますか?
これは、フレームの後に印刷されている文字列のキャッシュを作成する機会に繋がります。多くのテクスチャのキャッシュを作成すると、キャッシュから印刷された異なる文字列ごとにテクスチャスワッピングペナルティが発生するため、操作全体で1つのテクスチャしか使用しないことが義務づけられています。
私は2048x2048のテクスチャを持っています。キャッシングの目的でアプリケーションから要求されている文字列を配置することができます。私はすぐに、2次元空間で利用可能な自由空間を追跡することは自明ではないことを認識しました。
私はBest FitとNext fitのようなものを見てきましたが、それらは1dスペースに適しているようです。
このキャッシュテクスチャをOpenGLでどのように管理できますか?
編集:これは「2dパッキングの問題」のインスタンスであることがわかっています。
ああ、投稿前に日付をチェックしておいたはずです:) –
完全な実装のために、libcinderを見てください。 –