Простые цвета OpenGL ES зернистые - PullRequest
1 голос
/ 13 декабря 2011

У меня есть простая программа openGL ES, которая в основном устанавливает два треугольника, которые заполняют экран. Затем они окрашены в зеленый цвет.

onDrawFrame (GL10 gl)

public void onDrawFrame(GL10 gl) {      
    gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
    gl.glColor4f(0.2f, 0.4f, 0.2f, 1f);
    gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);
    gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0,4);
    gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
}

Это производит следующее:

Однако при увеличении вы можете заметить следующий пиксельный шаблон:

Вы не можете заметить это по первой картинке. Однако при добавлении прозрачных изображений PNG поверх этих «зерен» начинают становиться более заметными. Почему они там? и как я могу их удалить?

1 Ответ

2 голосов
/ 13 декабря 2011

Где-то в вашем коде инициализации вам нужно позвонить:

gl.glDisable(GL_DITHER);

Дизеринг включен по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...