2011-01-12 24 views
3

私はOpenGLを使ってテキストを描画する予定でしたが、実際に文字列を描画する方法を理解できませんでした。 「Hello World」を描きたければ、各文字のテクスチャを作成してそれらをすべて描画することができますが、正しい文字セットを一度に「引き出し」て一度描画するという簡単な方法があるはずです。私は、別々のテクスチャをすべて取得して頂点配列に追加し、描画する呼び出しを1つのみ使って頂点配列を描画することができると考えましたが、効率が悪いようです。この特定のセクションをカバーするチュートリアルはありますか?Android OpenGLの描画テキスト

+0

2D文字列だけを必要としますか、実際には3D文字にする必要がありますか? –

+0

2Dのみ。私は3DでOpenGLを使って作業するまで、すぐに3Dを開始するつもりはありません。 – semajhan

答えて

2

3D空間内の特定のポイントに2D文字だけを表示すると仮定すると、これを行う通常の方法があなたの説明です。まあ実際に私は文字列全体のための単一のビットマップを作成し、シーンにビットマップを描画します。実際には非効率的ではありません。実際には、テキストのビットマップをキャッシュし、シーンが描画されるたびに1回計算するだけで済み、非常に効率的です。シンプルなコードのように思えますが、OpenGLはそれによく似ています。

+0

それはこのポストに似たものでしょうか:http://stackoverflow.com/questions/3075700/draw-text-in-iphone-opengl-es-using-just-objective-c – semajhan

+2

本当に。組み込みの関数を使用して、2Dのテキストをビットマップに描画し、ビットマップをGLシーンに描画することをお勧めします。 – DJClayworth

2

あなたが話していることをする私のビットマップフォントジェネレータ(CBFG)用のAndroidローダーとレンダラーを書いてあります。

ロードし、フォントを表示するにはAndroidのソースは、基本的にはhttp://www.codehead.co.uk/cbfg

で、すべてのフォントのグリフが単一のビットマップや文字の上に配置されているされて、独自のフォントファイルを作成するためにhttp://www.codehead.co.uk/cbfg/TexFont.java

ツールであります必要な文字を表示するたびにUVコードを変更する一連の同一の四角形をレンダリングすることによって描画されます。

希望に役立ちます。

関連する問題