5

OpenGLでテキストをすばやくレンダリングする方法について提案をお願いします。

現在、私はTrue Typeフォントを読んでおり、使用されているフォントごとに、使用されているフォントサイズごとに、すべてのASCII文字を含むテクスチャを動的に生成しています。各テクスチャは一度だけ生成され、後で使用するために保持されます。

描画フェーズでは、すべてを1行ずつ描画します。

メモリに静的配列があり、カーニングectを計算し、線の頂点位置とテクスチャ座標を変更します。次に、対応するテクスチャをバインドして線をレンダリングします。

残念ながら、これは非常に遅いようです。もっと良い方法はありますか?

4

5 に答える 5

10

IMOの最良の方法は、距離フィールドを使用することです。使用するスペースが少なく、高速で、いくつかの優れたテキスト効果を簡単にサポートし、実装が非常に簡単です(特に、フォント->テクスチャパーツの準備ができているように見えるため)。

于 2012-07-06T08:46:33.330 に答える
7

レンダリングされたテキストをテクスチャに描画してから、そのテクスチャを画面に描画します。フレーム間にテクスチャを保存します。画面に表示されなくなったテキストを削除するための管理が必要ですが、これは大幅に高速化されているはずです。

グラフィックライブラリは通常、これをStringクラスとして抽象化します。これを画面に描画すると、描画したテクスチャが記憶され、内部文字列が変更されると無効になります。

于 2012-07-06T08:44:40.510 に答える
2

これは、freetypeとOpenGLを使用して動的テキストをレンダリングするための非常に優れた高速ライブラリです:freetype-gl

于 2012-07-06T08:55:03.150 に答える
1

FTGLライブラリは、おそらく必要なものすべてを提供します

于 2012-07-06T08:50:25.153 に答える
0

新しいopenglテキストレンダリングライブラリを使用できますfreetype-direct-gl。これは、FreeTypeフォントのアウトラインを使用して、スケーリングされたフォントを直接レンダリングするため、ビットマップテクスチャを作成したり、CPUで複雑な計算を行ったりする必要はありません。

于 2018-08-31T12:46:19.947 に答える