2012-01-23 59 views
0

在我的應用程序中,我使用的是OpenGL ES。 我想在屏幕上顯示兩個圖像。第一個用作背景(PNG格式,32位,1280 * 800),第二個是前景(PNG格式,32位,64 * 512)。Android,爲什麼我的前景圖像的顏色在openGL ES中改變了?

我可以在屏幕上顯示兩個圖像,但我不知道爲什麼前景圖像的顏色改變了!這個問題的圖片是: enter image description here 雖然,手的原始顏色是棕色的。在下面的圖片中,我禁用了背景圖片,所以我們只能看到圖片中原始顏色的手。 enter image description here

請指導我什麼是問題,爲什麼顏色改變? 非常感謝

========== 更新:

一些代碼部分:

@Override 
    public void onDrawFrame(GL10 gl) { 

     try { 
      Thread.sleep(ATEngine.GAME_THREAD_FPS_SLEEP); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 

     gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); 

     setBackground(gl); 
     setHand(gl); 

     //All other game drawing will be called here 
     gl.glEnable(GL10.GL_BLEND); 
     gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE); 
    } 

和setHand梅索德是:

private void setHand(GL10 gl){ 
     gl.glMatrixMode(GL10.GL_MODELVIEW); 
     gl.glLoadIdentity(); 
     gl.glPushMatrix(); 
     gl.glScalef(.1f, .7f, 1f); 
     gl.glTranslatef(4.5f, 0f, 0f); 

     gl.glMatrixMode(GL10.GL_TEXTURE); 
     gl.glLoadIdentity(); 
     gl.glTranslatef(0.0f, 0.0f, 0.0f); 

     hand.draw(gl); 
     gl.glPopMatrix(); 
     gl.glLoadIdentity(); 
    } 
+0

你可能使用了錯誤的混合功能。你使用什麼值進行混合? –

+0

謝謝親愛的羅曼,我已經在我的帖子中放了一部分代碼。我認爲代碼是正確的,但我不知道爲什麼它是這樣的? – Hesam

回答

相關問題