Coordenadas de textura en opengl android mostrando la imagen invertida

Escribí el código del androide de opengl para demostrar un mapa de bits en un cuadrado. Pero el mapa de bits se dibujó en sentido inverso. Cuando cambio la combinación de la matriz de la textura al código comentado se dibuja correctamente. Pero insisto en que mi matriz de textura debe ser como a continuación. ¿Estoy pensando mal?

/** The initial vertex definition */ private float vertices[] = { -1.0f, 1.0f, 0.0f, //Top Left -1.0f, -1.0f, 0.0f, //Bottom Left 1.0f, -1.0f, 0.0f, //Bottom Right 1.0f, 1.0f, 0.0f //Top Right }; /** Our texture pointer */ private int[] textures = new int[1]; /** The initial texture coordinates (u, v) */ private float texture[] = { //Mapping coordinates for the vertices // 1.0f, 0.0f, // 1.0f, 1.0f, // 0.0f, 1.0f, // 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, }; /** The initial indices definition */ private byte indices[] = { //2 triangles 0,1,2, 2,3,0, }; 

Considerando que Android utiliza la esquina superior izquierda como 0,0 del sistema de coordenadas, OpenGL utiliza la esquina inferior izquierda es 0,0, que es la razón por la que su textura se voltea.

Una solución común a esto es voltear su textura en el tiempo de carga,

 Matrix flip = new Matrix(); flip.postScale(1f, -1f); Bitmap bmp = Bitmap.createBitmap(resource, 0, 0, resource.getWidth(), resource.getHeight(), flip, true); 

En realidad, creo que la solución de Will Kru debería haber girado el fondo alrededor de los dos ejes

 flip.postScale(-1f, -1f); 

¡Esta solución funcionó para mí!

Esto funcionó para mí. (No es necesario crear otro mapa de bits y escala)

  private float vertices[] = { 1.0f, -1.0f, 0.0f, //Bottom Right 1.0f, 1.0f, 0.0f, //Top Right -1.0f, 1.0f, 0.0f, //Top Left -1.0f, -1.0f, 0.0f, //Bottom Left }; 
  • ¿Qué significan los argumentos para frustum en OpenGL?
  • Cómo hacer multisampling en Android OpenGL ES?
  • Previsualización y procesamiento simultáneo de la cámara
  • Bordes posteriores punteados del objeto
  • PNG con Alpha en un objeto 3D Android Opengl
  • Android: Limpiar correctamente después de OpenGL
  • Uso de objetos de búfer de píxeles (PBO) en Android
  • Extensiones de OpenGL ES 2.0 en dispositivos Android
  • ¿Cómo se puede convertir un archivo .obj en Android openGL?
  • ¿Cómo puedo crear una nueva NativeWindow en Android NDK?
  • Aplicación de gluUnProject Android OpenGL ES 1.1
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.