2011-12-13 77 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);

抖動默認情況下啓用。