2011-07-20 10 views
0

OpenGLプログラムでテキストを表示するにはどうすればよいですか? 私はMinGWを使用していますが、ウェブ上のチュートリアルでは、Windows開発に特有のライブラリ(パラメータとしてHDcを使用)が使用されています。MinGWを使用してWindowsでOpenGLにテキストを表示

答えて

1

OpenGLにはフォントレンダリングが組み込まれていません。ほとんどのプラットフォームでは、OpenGLディスプレイ(またはその周り)の上にテキストをレンダリングするためのプラットフォーム固有の呼び出しを呼び出すことができます。これは、おそらくそれらのチュートリアルが行っていることです。テキストをOpenGLシーンの一部にしたい場合は、自分自身をロールバックする必要があります。

一般的なアプローチは、既存のフォントレンダリングライブラリ(たとえばfreetype)を使用し、テキストをビットマップにレンダリングし、それをテクスチャとして使用することです。

多くのテキストをレンダリングする必要がある場合は、個々のグリフをテクスチャに変換する方が良い場合があります。 1つのグリフをレンダリングした後、1つのクワッドを使用します(通常の最適化を使用してレンダリングを高速化できます)。

TTF/OTFフォントの代わりに、事前レンダリングされたビットマップを使用することもできます。実行時にフォントレンダリングライブラリが不要になりますが、フォントサイズを動的に変更することはできません(ただし、テキストのインスタンスを伸ばしてももちろん可能です)。

別のオプション:libcairoは(実験的な)OpenGLバックエンドを持っているようですので、チェックアウトする価値があります。

1

あなたがalreydy答えを受け入れていることにもかかわらず、私はあなたを指すようにしたい:

http://www.angelcode.com/products/bmfont/

私は私のライブラリで生成されたフォントを使用して、統合することが本当に簡単であり、あなたが持っていませんあなたのアプリを別のライブラリに依存させる。解析するフォントとファイルでテクスチャを生成します。 次に、フォントを描画する前にテクスチャをopenglにバインドし、そのグリフのサブテクスチャ座標を持つすべてのグリフに対してクワッド(スプライト)を描画します。生成されたファイルからそれらを取得します。

は、ここに私の実装を参照してください。

http://code.google.com/p/nightlight2d/source/browse/trunk/NightLightDLL/NLFont.cpp

はそれを使用する自由を感じます。 ソースがあなたと一緒になることがあります。

関連する問題