Mejore su juego con la orientación del formato de compresión de texturas

Escrito por Yafit Becher, Product Manager e Dan Galpin, Defensor de los desarrolladores

Play Asset Delivery descarga la mejor textura compatible para su dispositivo

La entrega de activos de Google Play le permite publicar un paquete de aplicaciones de Android en Google Play que contiene todos los activos que necesita su juego. Ofrece múltiples modos de entrega, actualizaciones automáticas, compresión y parches delta, todos alojados de forma gratuita.

A partir de hoy, puede utilizar Google Play Asset Delivery para incluir texturas en varios formatos de compresión de texturas en su paquete de aplicaciones de Android, y Google Play entregará automáticamente los activos con el mejor formato de compresión de texturas compatible para cada dispositivo. Con la orientación por formato de compresión de texturas, puede comenzar a usar ASTC para dispositivos que lo admitan y regresar a ETC2 / ETC1 para dispositivos que no lo admiten. El formato Adaptive Scalable Texture Compression (ASTC) ofrece beneficios como un rendimiento de renderizado mejorado, tiempos de carga más rápidos, una huella de memoria más pequeña, una mejor duración de la batería y una mejor calidad visual. Incluso puede reducir drásticamente el tamaño de descarga y la huella en su dispositivo optimizando el equilibrio entre tamaño y calidad.

Versión de mayor ancho de banda de gran parte de esta información

Android App Bundle será el formato de publicación requerido para todos los juegos y aplicaciones nuevos a partir de agosto de 2021, lo que significa que se requerirá la entrega de activos de Google Play para los juegos nuevos que deseen que Google Play tenga capacidad para más de 150 MB de recursos. La orientación por formato de textura proporciona valor incluso para juegos más pequeños gracias a los beneficios de los últimos formatos de compresión de textura.

Compresión de texturas

La compresión de texturas es una forma de compresión de imágenes con pérdida que permite a la GPU renderizar directamente desde la textura comprimida utilizando bloques de silicio especializados, lo que reduce la memoria de textura y el ancho de banda de memoria necesarios para renderizar la textura. A medida que las GPU se han vuelto más avanzadas, se han desarrollado formatos de compresión de texturas más sofisticados, pero no todas las GPU pueden aprovecharlos.

ASTC se lanzó en 2012 para brindar a los desarrolladores más flexibilidad en la negociación del tamaño de compresión sobre la calidad de la imagen. Comprime usando bloques de tamaño fijo de 128 bits, pero permite huellas de bloques variables de 4×4 (8 bits para texel) a 12×12 (.89 bits para texel).

Google Earth Googleplex 12×12 (.89 BPT), 6×5 (4.27 BPT), 4×4 (8 BPT)

Esto le permite usar casi cualquier tipo de textura en forma comprimida y permite que las texturas ocupen mucho menos espacio en la RAM, hasta 36 veces menos que las texturas 2D sin comprimir dependiendo de la calidad. Las texturas más pequeñas también tardan menos en cargarse, lo que hace que los juegos sean más rápidos.

Banda de memoria

Debido a que la GPU tiene que realizar menos lecturas de la memoria de texturas para renderizar la textura, el ancho de banda de memoria requerido para renderizar la escena se reduce, a menudo sustancialmente cuando se tienen en cuenta las cachés de texturas.

Formatos de compresión de texturas en Android

Los principales formatos de compresión en Android son ETC1, ETC2 y ASTC.

imagen de compresión de textura

Los mejores formatos de compresión de texturas con penetración de dispositivos a partir de septiembre de 2020

ETC1 es compatible con prácticamente todos los dispositivos. No tiene soporte de transparencia; los juegos pueden usar una segunda textura para el componente alfa. Tiene problemas de calidad con transiciones nítidas como bordes y texto.

ETC2 es compatible con todos los dispositivos compatibles con GLES3. Admite más modos de transparencia y mejora la calidad que ETC1.

ASTC es un formato más nuevo que es más flexible; admite muchos tipos diferentes de texturas, lo que permite que casi cualquier textura del juego se beneficie de la compresión. Además, admite varios tamaños de bloque con diferentes relaciones de compresión asociadas. Usar este formato es una buena forma de optimizar el tamaño, la calidad de la imagen y el rendimiento del juego.

Imagen de Gameloft Asphalt Xtreme

Mientras experimentaba con ASTC en Asphalt Xtreme, Gameloft descubrió que podía reducir el tamaño de su juego hasta en un 30%.

Usar la orientación del formato de compresión de textura

Una vez que haya implementado Google Play Asset Delivery en su juego, agregar la orientación del formato de textura es un paso incremental. Dentro de sus paquetes de recursos, asegúrese de tener un directorio que solo contenga sus texturas, como [assetpackname]/textures. Este directorio se utilizará para contener las texturas predeterminadas (probablemente en formato ETC1 o ETC2).

Luego, cree directorios de texturas adicionales con un sufijo que represente los formatos adicionales que desea admitir.

[assetpackname]/textures#tcf_etc2
[assetpackname]/textures#tcf_astc

Finalmente, actualice su aplicación build.gradle para habilitar divisiones de texturas en paquetes de recursos:

// In the app build.gradle file:
android {
    ...
    bundle {
        texture {
            enableSplit true
        }
    }
}

Google Play elimina los sufijos de textura para que el juego lea sus activos del directorio predeterminado, sin importar qué texturas se proporcionen al dispositivo.

Si está utilizando Unity, nuestro complemento Play Asset Delivery para Unity está listo para empaquetar paquetes de aplicaciones con paquetes orientados a texturas.

La orientación por formato de compresión de textura ahora está disponible

Estamos comprometidos a ayudarlo a servir todo su juego a través de Play con entrega dinámica personalizada y características como la orientación del formato de compresión de textura. La documentación en d.android.com lo guiará a través del proceso de integración según el motor de juego que utilice y también tenemos listos los laboratorios de código para los juegos de C / C ++ y Unity. Tenemos más información sobre todos nuestros recursos para desarrolladores relacionados con juegos en d.android.com/games y nos mantenemos al día con Google Play Asset Delivery y otras herramientas para desarrolladores de juegos al suscribirse al boletín trimestral de juegos.



Compruebe también

La actualización de CameraX hace que las cámaras duales simultáneas sean aún más fáciles

Publicado por Donovan McMurray – Ingeniero de relaciones con desarrolladores CámaraXLa biblioteca de cámaras Jetpack …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *