Android Opengl 2形状有不同的颜色

时间:2012-02-12 18:04:11

标签: android opengl-es colors textures shapes

我是Android上的opengl新手。我试图绘制两种不同的形状。形状一有纹理,而形状二应该有颜色,让我们说绿色。当我运行应用程序时,第一个形状获得其纹理,但也有绿色。纹理本身变成绿色。形状二是我想要的绿色。这是我的绘制方法:

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 个答案:

答案 0 :(得分: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);

绑定纹理后