私は 2 乗のサイズのテクスチャ (128x128) を使用しており、その一部をポリゴンに描画しています (テクスチャ アトラスとして使用しています)。私は以下を設定しました:
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_NEAREST);
ただし、結果はテクスチャがぼやけたままになります。代わりに GL_LINEAR を使用しているようです。
ピクセル化ではなくテクスチャがまだぼやけている理由はありますか?
次に例を示します。
文字Fは画像の一部です。ここでは、128px、256px、512px、および 1024px の画像を使用して描画されています。ご覧のとおり、改善されていますが、1024px でもエッジが少しブレンドされています。128px の画像を使用して、GL_NEAREST を使用して拡大し、エッジをはっきりさせることができるはずです。このように描画される原因は何ですか?
編集
GLES20 を使用するようにアプリを更新しましたが、まだ問題が発生しています。テクスチャをバインドした後、drawArrays を呼び出す前に、GL_NEAREST を使用していることを確認するために、次を使用してみました。
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST);
編集2
アトラスを使用しなくても問題が発生します。クワッドに8px x 8pxのpngを配置しましたが、ぼやけて混乱しました。OpenGL ES 2.0 が GL_NEAREST を使用していない理由はありますか?
結果は次のとおりです。