Android, почему цвет моего изображения переднего плана меняется в openGL ES? - PullRequest
0 голосов
/ 23 января 2012

В моем приложении я использую 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(); 
     }

1 Ответ

0 голосов
/ 24 января 2012

в функции onDrawFrame () Я изменил последнюю строку следующей строкой.проблема решена:)

gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);

для получения дополнительной информации, пожалуйста, смотрите мою ссылку: http://www.swiftless.com/tutorials/opengl/blending.html

enter image description here

...