2012-02-12 131 views
0

我是一个在android上的opengl新手。我试图画出两种不同的形状。形状之一有纹理,而形状2应该有颜色,可以说是绿色。当我运行该应用程序时,第一个形状获取其纹理,但也具有绿色。纹理本身变成绿色的颜色。形状二是绿色的,因为我想要的。这是我的抽奖方法: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);绘制第一个形状

OR

使用gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL10.GL_REPLACE);

之前您绑定纹理后