如何翻转Android图像

时间:2011-09-18 23:41:52

标签: android opengl-es

我所要做的就是改变我的纹理,使其面向x方向的另一条路。我尝试将scaleX设为-1,我也尝试使RotX = 1和angle = 180,但是当我更改了scaleX或者旋转的值时,它也改变了我不想要的位置。这是我绘制方法的代码。我的格式错了吗?

public void draw(GL10 gl) {

gl.glLoadIdentity();
    gl.glTranslatef(position.x, position.y, 0);
    gl.glRotatef(angle, rotX, rotY, rotZ);
    gl.glScalef(scaleX, scaleY, scaleZ);

    gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId[0]);

    gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
    gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
    gl.glEnable(GL10.GL_BLEND);

    gl.glVertexPointer(2, GL10.GL_FLOAT, 0, vertexsBuffer);
    gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, textureBuffer);

    gl.glDrawElements(GL10.GL_TRIANGLES, indices.length, GL10.GL_UNSIGNED_SHORT, indexBuffer);

    gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
    gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
    gl.glDisable(GL10.GL_BLEND);

    if(animation == true){
        PlayAnimations();
    }

}

1 个答案:

答案 0 :(得分:1)

将矩阵模式设置为GL_TEXTURE并在渲染前发出glScalef(-1.0, 1.0, 1.0)