Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Challenger en Febrero 26, 2017, 06:43:29 AM

Título: Texture Compression Android
Publicado por: Challenger en Febrero 26, 2017, 06:43:29 AM
Hola a todos!, estoy mirando el tema de compresión de texturas para Android, y me ha surgido algunos interrogantes, ya que después de leer en diferentes fuentes de información no está muy claro cual usar.
 
Parece ser que la más estable o más aceptada por cualquier hardware de móvil es la ETC, por contra no aplica texturas Alpha y no está muy optimizada.
 
La DXT es la mejor de todas y la mayoría recomienda, pero no admitida por todos los hardware de los móviles. En la página de Android de desarrolladores recomiendan ASTC por su "performance" y que resumo aquí. 
 

As you can see, with higher OpenGL support you gain access to better formats. There are proprietary formats to replace ETC1, delivering higher quality and alpha channel support. These are shown in the following table:
 

Esta información es del 2015, mi duda viene porque yo estoy haciendo pruebas con DXT y tal vez no sea la mejor opción, sobre todo si vas a vender el juego y solo una parte de la gente puede jugar a el.
 
Por otro lado, he leído que los móviles aunque no sea compatible con DXT, descomprimen el formato y lo puede leer en su formato, el problema de esto último es que recargas el GPU y la memoria, con lo que conlleva el decremento del juego.
 
¿Que texture compression aconsejáis?
 
 
 
(//%3CfileStore.core_Attachment%3E/monthly_2017_02/textures.jpg.0a31896995a97bc6b398cc3399f9e680.jpg)
Título: Texture Compression Android
Publicado por: pioj en Febrero 26, 2017, 07:54:04 AM
Si es para Android, depende y conviene consultar la Wikipedia o dónde sea, para ver la ficha técnica de Hardware del dispositivo móvil al que lo vayas a portar. Generalmente puedes dejarlo todo en Don't Override y probar suerte, ya que tampoco supone una "súper mejora" y las compresiones son siempre con pérdida.
 
El tema de la compresión de texturas sólo te ayudará si estás 100% convencido de que todas tus texturas son cuadradas y en potencia de 2. De lo contrario, no ayuda en nada. En algunos dispositivos, la compresión se fuerza al compilar, aunque tú no la marques, ya que es lo único que el cacharro soporta. Por suerte la mayoría de GPUs móviles soportan formatos "normales" como el PNG, etc...
 
Conviene leer también este artículo reciente: http://frozenfractal.com/blog/2017/2/20/texture-compression-on-mobile-demystified/ (http://frozenfractal.com/blog/2017/2/20/texture-compression-on-mobile-demystified/)
 
El principal problema es que cada fabricante de móvil hace cosas raras, y vuelve incompatible un chip con algún formato concreto, por lo que no puedes aplicar la norma de "elegir siempre éste".
 

 
 
Mi consejo es que no fuerces la compresión de texturas para todo, sinó que vayas eligiendo las texturas en el proyecto por separado, y comprimas aquellas que concretamente te molesten más. Así te ahorras tener que hacerlas todas cuadradas y potencia de 2.
 
Y, siempre que puedas, hazlo todo de forma manual, guarda tú mismo el fichero en ese formato por tu cuenta, no dejes que lo haga Unity con unos valores por defecto.
Título: Texture Compression Android
Publicado por: Challenger en Febrero 26, 2017, 08:13:53 AM
Perfecto Pioj!