Android Opengl 2 формы с разными цветами - PullRequest
0 голосов
/ 12 февраля 2012

Я новичок с OpenGL на Android. Я пытаюсь нарисовать две разные фигуры. Форма 1 имеет текстуру, а форма 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 Ответ

1 голос
/ 12 февраля 2012

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

OR

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

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

...