標準の OGL でテキストを描画する最も速くて簡単な方法は何ですか??
6 に答える
テキストは驚くほど OpenGl に関係しています NeHeのこの例を
見てください
OpenGL はテキストの描画をサポートしていません。テキストをビットマップにレンダリングするにはライブラリを使用する必要があり、OpenGL を使用してビットマップをレンダリングできます。Freetype2 と Pango は、優れたクロスプラットフォームの低レベル ソリューションです。ClanLib などのゲーム プログラミング ライブラリや Qt などの GUI ライブラリにも、テキストをレンダリングするための独自の方法がある場合があります。
上記のように、取り組んでいるフレームワークによって異なります。たとえば、SDL はマルチプラットフォームであり、SDL 内の特別なライブラリを使用してテキストを描画できます: http://gameprogrammingtutorials.blogspot.com/2010/02/sdl-tutorial-series-part-6-displaying.html
glut を使用している場合は、次の関数を参照してください: glutStrokeString、glutBitmapString in glut documentation..
OpenGL はテキスト レンダリングを直接サポートしていません。さまざまなオプションがあります。
- WGLや AGLなどの一部の OS バインディングでは、フォントのサポートが制限されています (ほとんどの場合、Open GL で使用するためにシステム フォントをビットマップにレンダリングします)。
- GLUTツールキット (および同様のツールキット) には、いくつかのフォント (ビットマップとストローク) のサポートもあります。
- FreeTypeなどのライブラリを使用できます(ほとんどがフォント レンダラーですが、テキスト レイアウトにはPangoなどを使用したい場合もあります)。
- シンプルなテクスチャ付きのクワッドを使用できます(これは実質的に Quake 1 が行ったことです)。
テクスチャを使用します。各文字はテクスチャ化されたクワッドであり、テクスチャ座標は特定の文字を囲みます。
次に、表示リストを使用してアフィン処理を行い、実行時に文字列を表すラスターを生成し、アウトラインを作成し、ブレンドすることができます...
プラットフォーム固有の OpenGL API (つまり wglUseFontOutlines) を使用できますが、OpenGL 3.2 以降では非推奨になると思います。
使用しているフレームワークによって異なります。一般的な方法の 1 つは、テキストをオフスクリーン バッファーにレンダリングし、それをテクスチャとして使用することです。