2011-12-13 48 views
1

我有一个简单的openGL ES程序,它基本上设置了两个填充屏幕的三角形。然后这些颜色变成绿色。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图像时,这些“颗粒”开始变得更加明显。他们为什么在那里?我该如何删除它们?

+0

感谢您添加图像马特 – user1094927

回答

2

某处在你的初始化代码,你需要调用:

gl.glDisable(GL_DITHER);

抖动默认情况下启用。