バックグラウンド
私はゲームBitfighterに取り組んでいます。OpenGL 1.1との互換性はあり、OSX、Windows、およびLinux用にコンパイルできます。
テキストのレンダリングや操作など、すべてにベクターグラフィックを使用しています。GLUTの「FontStrokeRoman」のわずかに変更されたバリエーションを使用します。これは単なる静的な線の集まりです。非常にうまく機能し、回転/スケーリング/操作が簡単なように見えるので、これが気に入っています。また、ゲーム内チャットも可能であるため、テキストはその場で描画されます。
問題
より多くの/異なるフォントを使用したい。
他にも気に入ったフォントがいくつか見つかりましたが、それらはすべて、ストロークやスパインではなく、ポリゴン(曲線など)として作成されたTTFタイプのフォントです。これにより、いくつかの問題が発生します。
- テクスチャを使用する必要があります(これまでゲームで避けてきました)
- それらは簡単にサイズ変更/回転可能/などではありません。
- パフォーマンスは大幅に低下します(理論的には?)
TTFフォントをポリゴンポイント配列に変換してから、塗りつぶしを三角形分割することを試みました。ただし、これを適切にレンダリングすることは困難でした。この場合、ピクセルヒント/アンチエイリアシングを実行するのは難しいようです。
'campskeleton'などのライブラリを使用してポリゴンフォントをスケルトン化する実験も行ったので、ベクトルストロークフォントを出力できます(あまり成功していませんが、見栄えがします)。
私たちは何をすべき?
私はこの質問がやや一般的であることを知っています。パフォーマンスとテキスト操作機能を維持しながら、より優れたフォントを使用できるようにしたいと考えています。私はあらゆる方向の提案を受け入れます。
いくつかの解決策は、次の答えになる可能性があります。
- ポリゴンベースのテキストを適切にアンチエイリアスし、パフォーマンスを維持するにはどうすればよいですか?
- テクスチャは、静的なポイント配列よりも実際にパフォーマンスが劣りますか?多分私は間違った仮定を持っています
- テクスチャフォントをすばやくサイズ変更/回転できますか?
- まったく違うもの?