放大Opengl ES 10时,纹理会变得模糊。我该如何解决?

时间:2014-06-19 15:10:26

标签: android image opengl-es blur

我一直试图绘制位图,使用OPENGL ES 1.0从文件读取到画布上。使用glTranslatef()放大时,图像会变得模糊。我几乎查了一天,但无法解决这个问题。

我尝试的事情:

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.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_NEAREST);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_NEAREST); 
gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST);

调整近平面和远平面:

GLU.gluPerspective(gl, 45.0f, (float) width / (float) height, 0.1f, 1000.0f);

没什么,似乎有帮助。我希望图像能够在没有质量损失的情况下均匀缩放。

1 个答案:

答案 0 :(得分:0)

GL_NICEST从未成为GL_TEXTURE_(MIN|MAX)_FILTERGL_TEXTURE_WRAP_(S|T)的有效值。

您正在寻找GL_LINEAR_MIPMAP_LINEAR(如果您提供了mipmap,GL_LINEAR,如果你没有),GL_LINEAR代表GL_TEXTURE_MIN_FILTER和{{1} {} {}和GL_TEXTURE_MAX_FILTERGL_CLAMP_TO_EDGE GL_REPEAT