Reduzca el uso de memoria para texturas en OpenGL ES 1.1

Mi escena en OpenGL ES requiere varias texturas de gran resolución, pero son en escala de grises, ya que las estoy usando sólo para máscaras. Necesito reducir mi uso de memoria.

He intentado cargar estas texturas con Bitmap.Config.ALPHA_8, y como RGB_565. ALPHA_8 parece aumentar realmente el uso de memoria.

¿Hay alguna manera de obtener una textura cargada en OpenGL y tener que utilizar menos de 16 bits por píxel?

glCompressedTexImage2D parece que podría ser prometedor, pero por lo que puedo decir, diferentes teléfonos ofrecen diferentes métodos de compresión de textura. Además, no sé si la compresión realmente reduce el uso de memoria en tiempo de ejecución. ¿Es la solución para almacenar mis texturas en formatos ATITC y PVRTC? En caso afirmativo, ¿cómo puedo detectar qué formato es compatible con el dispositivo?

¡Gracias!

PVRTC, ATITC, S3TC y así sucesivamente, la textura comprimida nativa de GPU debería reducir el uso de memoria y mejorar el rendimiento de renderizado.

Por ejemplo (lo siento en C, puede implementarlo como utilizando GL11.glGetString en Java),

const char *extensions = glGetString(GL_EXTENSIONS); int isPVRTCsupported = strstr(extensions, "GL_IMG_texture_compression_pvrtc") != 0; int isATITCsupported = strstr(extensions, "GL_ATI_texture_compression_atitc") != 0; int isS3TCsupported = strstr(extensions, "GL_EXT_texture_compression_s3tc") != 0; if (isPVRTCsupportd) { /* load PVRTC texture using glCompressedTexImage2D */ } else if (isATITCsupported) { ... 

Además, puede especificar dispositivos compatibles utilizando el formato de textura en AndroidManifest.xml.

  • El archivo AndroidManifest.xml – supports-gl-texture

EDIT :

  • MOTODEV – Comprensión de la compresión de texturas

Con los sistemas basados ​​en Imagination Technologies (también conocidos como PowerVR), debería ser capaz de usar PVRTC 4bpp y (dependiendo de los requisitos de textura y calidad) quizás incluso la variante 2bpp PVRTC.

Además, aunque no estoy seguro de lo que está expuesto en los sistemas Android, el PVRTextool listas I8 (es decir, en escala de grises 8bpp) como formato de textura de destino, que le daría una opción sin pérdidas.

La compresión de texturas ETC1 es compatible con todos los dispositivos Android con Android 2.2 y versiones posteriores.

  • Juego gratuito de asignación
  • El ejemplo de Android openGL da una pantalla en blanco
  • dibujando un círculo en android con openGL
  • Texto movible en Opengl Android
  • Nunca obtuvo 480 * 800 total cuando se utiliza la proyección ortogonal 2D en opengl-es
  • (OpenGL ES) Los objetos alejados del centro de la vista se estiran
  • Falta de controladores OpenGL en el emulador de Android
  • android ffmpeg opengl es hacer película
  • Bordes posteriores punteados del objeto
  • Android: Limpiar correctamente después de OpenGL
  • Dispositivos Android GL_MAX_TEXTURE_SIZE limitación, tamaño de textura seguro
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.