ビットマップフォント、テクスチャフォント、ベクターフォントの3つのオプションがあります。
Bitmap fontsは、2D GUIのテキストをレンダリングするだけの場合に便利です。ただし、ビットマップフォントを使用する場合は、アンチエイリアシングを実行できません。一方、彼らは使い方が簡単で、レンダリングも素早いです。
テクスチャフォントではアンチエイリアスが可能ですが、2Dグラフィックスの場合にも最適です。ワールド空間でテキストをレンダリングする場合は、テクスチャのスケーリングが行われるため、多くのアーティファクトが発生します。テクスチャフォントを使用するには、使用する特定のフォントの各文字のイメージを含むテクスチャアトラスを作成する必要があります(通常、文字セットをASCIIに制限したい場合は、テクスチャが大きすぎます) 。 AWTを使用して、必要なすべての文字を含む長方形のイメージを作成できます。次に、その文字の適切なテクスチャ座標で四角形をレンダリングすることによって、文字をレンダリングすることができます。ルミナンスアルファテクスチャを使用して、テキストを表示する色とブレンドできるようにすることをお勧めします。各文字の表示リストと各文字列の表示を使用して最適化することはできますが、問題が発生しますカーニングなどを使用します。
ベクターフォントは、ワールドスペースでテキストをレンダリングする場合に最適な結果をもたらします。彼らはあなたに完全なフォントレンダリングを提供します。カーニングが必要ですがレンダリングするのにはコストがかかります。私の通常のアプローチは、レンダリングしたい文字列ごとにパス(AWTを使用)を作成し、そのパスを平坦化してから、GLUテッセレータを使用してトレースします。これにより、最適なパフォーマンスを得るためにVBOに入れることができる三角形、三角形のストリップ、三角形のファンがたくさんあります。次に、VBOの適切なレンダリングコマンドを発行して、その文字列をレンダリングできます。これをさらに最適化するには、各文字列の表示リストを使用します。そうすれば、文字列ごとに1つのコマンドを送るだけで済みますが、もちろんこれは他の方法よりも高価になります。
特に、このような特定のリクエストに対して、あなたが試したことやあなたが書いたコードを投稿するのは忘れてしまいました。 – Chris
@クリス私は何かを試したことはありません。なぜなら、どこから始めなければならないのか、何をすべきか分かりません。私は私の質問をGoogleで検索しましたが、有益なウェブサイトはありません。それは古くなっています。 –
@Chris * "あなたは言いました.." * OPはまた質問を忘れました。 - OP:質問がありますか? –