2013-07-12 112 views
0

我想得出兩個相似的長方形,此代碼:只有兩個形狀之一繪製

GL11.glClear(GL11.GL_COLOR_BUFFER_BIT); 

GL20.glUseProgram(pId); 

GL13.glActiveTexture(GL13.GL_TEXTURE0); 
GL11.glBindTexture(GL11.GL_TEXTURE_2D, texId); 

GL30.glBindVertexArray(vaoId); 
GL20.glEnableVertexAttribArray(0); 
GL20.glEnableVertexAttribArray(1); 
GL20.glEnableVertexAttribArray(2); 

GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, vboiId); 

GL11.glDrawElements(GL11.GL_TRIANGLES, indicesCount, GL11.GL_UNSIGNED_BYTE, 0); 

GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0); 
GL20.glDisableVertexAttribArray(2); 
GL20.glDisableVertexAttribArray(1); 
GL20.glDisableVertexAttribArray(0); 
GL30.glBindVertexArray(0); 

GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0); 

GL20.glUseProgram(0); 

奇怪的只是兩人的第二繪製,儘管它們擁有完全相同的繪製代碼。唯一的區別是,他們中的一個被移位了一下。我測試,只是畫第一個,它的工作。那麼第二個矩形以何種方式覆蓋第一個?

+0

你的意思是你執行這兩次全部代碼?在這種情況下:除去GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);它基本上清除屏幕上的所有顏色。 –

+0

它的工作 - 非常感謝你:) – Marghytis

+0

我會正式回答這個問題呢:) –

回答

2

刪除GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);它基本上清除從屏幕上,這意味着只有你的最後繪製三角形將是可見的所有顏色。