17. フォントの使い方

17.010  OpenGL シーンにフォントを追加するには?

OpenGLは直接的なフォントサポートを提供しません。従って、アプリケーションは、引いているビットマップ、pixmaps、個々のキャラクタのための全体の文字セット、引いているキャラクタアウトライン、または作成3D幾何学を含んでいる作成テクスチャーマップなど、フォントに与えるためのOpenGLの他の機能のうちの何でも使わなければなりません

ビットマップまたはpixmapsを使ってください

簡単なフォントをする最も直接的な方法は、個々のキャラクタのためのglBitmap()またはglDrawPixels()呼び出しを使うことです。 結果は簡単な2Dテキストであり、それは、GUIコントロールにラベルを貼るとか、3D部分を解説するのなどに適当です

glBitmap()は2の中で最も速く、最も簡単で、キャラクタを現在の色に表現します。 もし必要ならば、glDrawPixels()も使うことができるでしょう。 しかし、いつもglDrawPixels()が長方形を引くことに注意してください。もし従って、透明なバックグラウンドを要求するならば、それはアルファテストおよび/または混合によって取り去られなければなりません。

一般に、個々のglBitmap()呼び出し〈フォントのすべてのglyphのためのもの〉は、個々のディスプレイリストに蓄えられて、それはそのASCIIキャラクタ値によって索引を付けられます。 従って、glCallLists()への単一の呼び出しによりキャラクタの全体のストリングはできます。

Xウィンドウでは、glXUseXFont()呼び出しは、与えられたフォントからこれらのディスプレイリストを無痛に作成するために入手可能です

もしマイクロソフトWindowsを使っているならば、wglUseFontBitmaps()のためのMSDNドキュメンテーションを見てください。 それはglXUseXFonts()と概念的に同一です。

GLUTのために、指定されたGLUTビットマップフォントから、指定されたキャラクタのためのビットマップを生成するglutBitmapCharacter()ルーチンを使う必要があります

テクスチャー・マッピングを使ってください

多くのOpenGLインプリメンテーションにおいて、glBitmap()とglDrawPixels()プリミティブをすることは、等しいテクスチャーマッピングクワタをするより本来遅い。 そのような機器においてフォントをするために、テクスチャーマッピングプリミティブを使用してください。

基本的なアイデアは、すべてのキャラクタをフォントに含んでいる単一のテクスチャーマップを作成することです(または最低 される必要があるすべてのキャラクタ )。 個々のキャラクタをするためには、要求された個々のキャラクタを選ぶために設定されたテクスチャー座標によってテクスチャーマッピングクワタを引いてください。 もし要求されるならば、バックグラウンドピクセルを処分するために、アルファテストを用いることができるでしょう。

テクスチャーマッピングフォントを使うためのライブラリはここで見つけられえます。 それはソースコードによって来ます。

テクスチャーについての追加の広い情報は、テキストをマッピングし、例コードはここで見つけられえます

NeHe Webページはテクスチャーマッピングフォントを使うとすぐに、チュートリアルを持っています

ストロークを付けられたフォント

もしマイクロソフトWindowsを使っているならば、wglUseFontOutlines()のMSDNドキュメンテーションを探してください。 それは、ストロークを付けられたキャラクタをするための例コードを含んでいます。

glutStrokeCharacter()ルーチンは、指定されたGLUTストロークフォントから、単一のストロークを付けられたキャラクタをします

幾何学のフォント

NeHe Webページは幾何学のフォントをするためのチュートリアルを持っています。 アウトライン・フォントのチュートリアルを捜してください。

17.020  OpenGL シーンで TrueType フォントを使用するには?

NeHe Webページは見えて、どのようにさまざまな方法でTrueTypeフォントを使うかのチュートリアルを持っています

自由タイプライブラリを見てください

17.030  輝かせたり、影をつけたり、回転させたりできる 3D 文字列を作成するには?

幾何学のフォントを使うとすぐに、チュートリアルのためのNeHe Webページを見てください。 アウトライン・フォントのチュートリアルを捜してください。

自由タイプライブラリを見てください

GLTTはOpenGLにおいて幾何学のTrueTypeフォントをサポートします。 それは以前http://www.moonlight3d.org/gltt/から入手可能であったけれども、幸運にも、ウェブのまわりでまだ入手可能であってください。 GLTT v 2.4をダウンロードしてください~125KB)。

十分な供給3.7は、有益であるかもしれないprogs/contrib/text3d.cと呼ばれる例を持っています