Android-текстура, отображающая спрайт на OpenGL ES, выглядит неровной / низкого качества - PullRequest
1 голос
/ 11 марта 2012

Я пытаюсь нанести текстуру на карту PNG-файла, который я сделал в Photoshop, и он не обладает тем же качеством изображения, что и исходный файл 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.Эта проблема, похоже, связана только с тем, как я создаю текстуру для моего спрайта.Я хотел бы опубликовать скриншот, но мне не разрешено, так как я новый пользователь.

Редактировать: Проблема кажется более глубокой, когда я хочу текстурировать ее очень маленький размер.Если я нанесу текстуру на карту, чтобы заполнить экран, качество текстуры будет выглядеть лучше.

...