На основании моего прочтения гл. 6 в Красной книге, меняя то, что нужно изменить для ES, я подумал, что следующий код должен был это сделать:
gl.glEnable(GL10.GL_POLYGON_SMOOTH);
gl.glBlendFunc(GL10.GL_SRC_ALPHA_SATURATE, GL10.GL_ONE);
gl.glHint(GL10.GL_POLYGON_SMOOTH_HINT, GL10.GL_NICEST); // no visible diff
gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST);
gl.glColor4f(1, 1, 1, 1);
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4); // first and count
и т.д.
Но вышесказанное не помогает. Нет видимой разницы в выводе, артефакты наложения так же болезненно очевидны, как и до того, как были вставлены вызовы glEnable ... glHint.
На самом деле, я только что описал, когда вместо GL_POLYGON_SMOOTH у меня было GL_LINE_SMOOTH. Последний даже не найден! Так где же это, если не в GL10? Или как это могло быть оставлено вне ES OpenGL? Как мы должны рисовать заполненные полигоны с сглаживанием, если не с помощью GL_POLYGON_SMOOTH?