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