2012-02-12 4 views
0

私はアンドロイドでopenglの初心者です。私は2つの異なる形を描こうとしています。シェイプ1にはテクスチャがあり、シェイプ2には色があると想定され、緑色になります。アプリケーションを実行すると、最初の図形はテクスチャを取得しますが、緑色も表示されます。テクスチャそのものが緑色に変わります。形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

あなたはテクスチャ

をバインドした後

OR

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

最初の形状を描画する前にgl.glColor4f(1.0f, 1.0f, 1.0f, 1.0f);を置くようにしてください

関連する問題