2012-02-12 6 views
0

Я новичок с opengl на Android. Я пытаюсь сделать две разные формы. Форма имеет текстуру, а вторая форма должна иметь цвет, скажем, зеленый. Когда я запускаю приложение, первая форма получает свою текстуру, но имеет зеленый цвет. Сама текстура становится зеленоватой по цвету. Форма вторая зеленая, как мне хотелось. Вот мой метод рисования:Android Opengl 2 формы с разными цветами

public void draw(GL10 gl) { 

    gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]); 

    //My first shape 

    gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); 
    gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY); 

    gl.glPushMatrix(); 

    gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer); 
    gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, textureBuffer); 
    gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, vertices.length/3); 
    gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY); 
    gl.glPopMatrix(); 

    //My second shape 
    gl.glPushMatrix(); 
      //Setting the color green 
    gl.glColor4f(0.0f, 1.0f, 0.0f, 0.5f); 
    gl.glVertexPointer(3, GL10.GL_FLOAT, 0, locvertexBuffer); 
    gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, locvertices.length/3); 
    gl.glPopMatrix(); 
    gl.glDisableClientState(GL10.GL_VERTEX_ARRAY); 
} 

Может ли кто-нибудь мне помочь?

ответ

1

Попробуйте поставить gl.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); перед нанесением первого формы

ИЛИ

использование gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL10.GL_REPLACE);

после связывания текстуры

Смежные вопросы