2

簡単な質問があります。PixmapFontゲームアプリケーションで描画するためにFTGLライブラリを使用しています。私の質問は-glScalef()ラスターフォントを拡大縮小するために使用することは可能ですか?私が理解していることから、私がそれglRasterPos()の代わりに使用しなければならない場合、glTranslatef()おそらくglScalef()機能も考慮しますか?もしそうなら、このフォントをスケーリングする方法はありませんか?

これは私がスケーリングする必要があるものです:

これを置くだけで、サイズを変更できます。

font->FaceSize(12);

しかし、それは私にそのような小さなフォントのぼやけた効果を与えます。私がどこかで読んだことから、フォントをより大きなサイズ(たとえば72)でレンダリングしてから、より良い結果が得られるので、それを縮小するのは良いことです。

4

2 に答える 2

2

OpenGLビットマップ描画関数(glBitmap)は、フレームバッファーに直接移動するため、変換パイプラインの影響を受けません。ただし、ビットマップ描画機能は常に低速でサポートが不十分であり、OpenGLの新しいバージョンから完全に削除されました。

于 2013-01-01T12:33:39.980 に答える
1

ピックスマップ(ラスター)フォントの代わりに、テクスチャフォントを使用する必要があります。これにより、フォントが三角形プリミティブにマップされたテクスチャとして描画されます。これは、フレームバッファに直接描画するよりもはるかに柔軟で、広くサポートされています。FTTextureFontドキュメントも参照してください。

glTranslatefOpenGLプリミティブをレンダリングしているだけなので、このアプローチでは、などで設定した通常の変換がすべて考慮さglScalefれます。最もきれいな結果を得るには、を使用glOrthoしてピクセル単位の完全な射影行列を設定します。

于 2013-01-01T13:31:07.570 に答える