android - 如何翻转 Android 图像

标签 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();
    }

}

最佳答案

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

关于android - 如何翻转 Android 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7465212/

相关文章:

android - EGL 从 android native Activity 返回到 Java

android - Log4jshell 会使我的 android 应用程序易受攻击吗?如果是这样,我该如何保护我的应用程序

android - 如何选择 recyclerview 中列出的所有项目?

android - 如何知道布局过程是否完成?

java - Libgdx:不支持的格式组合

c++ - OpenGL:三角形带中的退化三角形在 OpenGL-ES 之外是否可以接受?

ios - glDrawElements 在 iOS 上大量使用 CPU

android - 从电池性能影响的角度来看,SQLite 数据库与基于文件的数据存储

ios - 如何在 UIView 中绘制 opengl es

c++ - CMake 声称找到 OpenGL 但找不到 EGL 和 OpenGL::GL