Android-Texture在OpenGL ES上映射精灵看起来像素化/质量差

时间:2012-03-10 20:33:36

标签: android opengl-es sprite

我正在尝试将我在Photoshop上制作的png文件纹理贴图,并且它与原始png文件的图像质量不同。

png文件的像素为128 x 128。我试图使用GL_LINEAR和GL_NEAREST映射它,两者似乎都没有提供我正在寻找的质量。

考虑到这个问题,当我尝试通过上下翻译(如pacman 2d游戏)来设置纹理动画时,我开始看到一些“模糊的像素化工件问题”,其中像素似乎没有固定,只是简单的坏。 GL_NEAREST上的问题更严重。我想要的是具有与原始PNG文件一样完美的纹理映射,并且能够通过屏幕转换图像而没有任何“闪烁”问题。这是加载纹理的代码片段。

in = fileIO.readAsset(fileName);
        Bitmap bitmap = BitmapFactory.decodeStream(in);
        gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId);
        GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
        setFilters(GL10.GL_LINEAR, GL10.GL_LINEAR);

public void setFilters(int minFilter, int magFilter) {
    this.minFilter = minFilter;
    this.magFilter = magFilter;
    GL10 gl = glGraphics.getGL();
    gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, minFilter);
    gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, magFilter);
}    

我没有任何fps问题。这个问题似乎纯粹是关于我如何对我的精灵进行纹理映射。我想发布截图,但我不允许,因为我是新用户。

编辑:当我想要将它贴图到非常小的尺寸时,问题似乎更加深刻。如果我纹理贴图来填充屏幕,纹理质量看起来更好。

0 个答案:

没有答案