Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不同颜色的Android Opengl 2形状_Android_Opengl Es_Colors_Textures_Shapes - Fatal编程技术网

不同颜色的Android Opengl 2形状

不同颜色的Android Opengl 2形状,android,opengl-es,colors,textures,shapes,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(G

我是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);
}

有人能帮我吗?

试着放
gl.glColor4f(1.0f,1.0f,1.0f,1.0f)在绘制第一个形状之前

使用
gl.glTexEnvf(GL10.gl\u纹理\u环境,GL10.gl\u纹理\u环境模式,GL10.gl\u替换)

在绑定纹理之后