I have a simple openGL ES program which basically sets up two triangles which fill the screen. These are then colored green.
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);
}
This produces the following:

However, upon zooming in, you can notice the following pixelated pattern:

You cannot really notice it from the first picture. However, when adding transparent png images over the top, these ‘grains’ begin to become more visible. Why are they there? and how can I remove them?
Somewhere in your initialization code, you need to call:
gl.glDisable(GL_DITHER);Dithering is enabled by default.