FreeTypeを使用してOpenGLでテキストを描画し、よりシャープにするために、ミップマップごとにFreeTypeからフォントテクスチャを生成します。 1つのことを除いてすべてがかなりうまく動作します。私はこれを行うとき:OpenGLで最も近い大きなミップマップを作る方法は?
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
をOpenGLは、テキストの大きさに応じて、最も近いミップマップを選択しますが、使用可能なサイズは、16と32であり、私は22をしたい場合は、それはそれは恐ろしい見えるように、16を選びます。代わりに、常に最も近い大きなミップマップを選択するように設定する方法はありますか?
私は手動でミップマップレベルを設定するテキストをレンダリングしながら、私はこれを行うことができます知っている:
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_LOD, (int) log2(1/scale));
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_LOD, (int) log2(1/scale));
しかし、それは有効なのでしょうか?そのようなミップマップを完全に使用する必要がなくなりますか?私はちょうど異なるテクスチャを作り、サイズに応じて1つを選ぶことができます。それでは、これを成し遂げるための良い方法がありますか?
"FreeTypeを使用してOpenGLでテキストを描画し、よりシャープにするために、私は各ミップマップ反復ごとにFreeTypeからフォントテクスチャを生成します。"これは良い考えではありません。 FreeTypeが小さなテキストをレンダリングする方法は、ミップマップ補間にはうまくいかない方法ではありません。だからあなたのGL_LINEAR_MIPMAP_LINEARのテキストはひどく見えます。 FreeTypeの小さなテキストヒントは、小さなテキストを間違って見せてしまった。あなたが作業し、使用するだけのテキスト解決策があればよいでしょう。 –