Android,为什么我的前景图像的颜色在openGL ES中会发生变化?

时间:2012-01-23 19:05:43

标签: android image opengl-es

在我的应用程序中,我使用的是openGL ES。 我想在屏幕上显示两个图像。第一个用作背景音(PNG格式,32位,1280 * 800),第二个用作前景(PNG格式,32位,64 * 512)。

我可以在屏幕上显示两个图像,但我不知道为什么前景图像的颜色会发生变化!这个问题的图片是: 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 个答案:

没有答案