0

私はどこでもグーグルで検索しましたが、文字列をテクスチャにレンダリングし、そのテクスチャを画面上のクワッドに表示する方法はあまり見つかりません。誰かがプロセスの概要を説明したり、方法を説明する優れたリソースを提供したりできますか? 文字列をテクスチャにレンダリングすることは、Android OpenGL ES アプリでテキストを表示するための最良の方法でもありますか?

編集:さて、LabelMaker はアルファ ブレンディングを妨害するため、テクスチャ (透明な背景を持つ PNG から作成された) は、透明な背景ではなく、黒一色の背景になりました。LabelMaker 関連のコードをすべてコメントアウトすると、問題なく動作します。

更新: 気にしないでください。コードを調べたところ、LabelMaker がラベルの描画後にブレンドを無効にしていることがわかりました。

4

2 に答える 2

1

これがあなたが探しているものだと思います。

于 2010-04-08T16:02:07.507 に答える
0

GL 拡張機能を使用したくない場合は、フォントをビットマップとして作成し、その文字列を描画可能な四角形に変換するクラスを作成する必要があります。

この方法は、ゲームの 2 つのフォントで使用します。すべての文字が均等に配置された幅の広いテクスチャと、画像に一致する文字列を取得するクラスがあり、文字のルックアップを使用して、ビットマップ内のどこまで行くべきかを調べます。

もう 1 つのオプションは、Android を使用してテキストをオフスクリーン ビットマップにレンダリングし、テキストをテクスチャとしてバインドすることです。これにより、Android の組み込みフォント処理とレンダリングを使用して、テクスチャ ベースのフォントを作成できます。

2 番目の方法はまだ使用していませんが、Google マップをオフスクリーン キャンバスにレンダリングし、ビットマップを GL テクスチャとしてバインドしたので、テキストに対して行う方がはるかに簡単です。

gl ループで文字列データを変更する予定がある場合は、GC とパフォーマンスの問題が発生するため、StringBuilder についても十分に考慮する必要があります。私はすべての文字列をハードコードして割り当てないようにしています。また、迅速な数字はすべて、文字列ビルダーを使用せずに変化する数字を描画する専用の 2 番目の描画関数によって行われます。

于 2010-12-06T05:49:28.537 に答える