
Lo que encontrarás en esta página: Sugerencias para optimizar assets de arte para desarrolladores de juegos móviles que trabajan en Unity. Este es el primero de dos artículos sobre cómo optimizar el arte para juegos móviles.
Puedes encontrar muchos otros consejos de optimización móvil en este libro electrónico y en este curso Unity Learn sobre la optimización del arte 3D para aplicaciones móviles.

Tanto los polígonos como los vértices son computacionalmente costosos en las plataformas móviles. Coloca polígonos en áreas que realmente contribuyan a la calidad visual de la aplicación, para que no desperdicies tu presupuesto de procesamiento.
Debido al pequeño tamaño de la pantalla en la mayoría de los dispositivos móviles y la ubicación de los objetos 3D en tu aplicación, muchos pequeños detalles triangulares en un objeto 3D pueden no ser visibles. Esto significa que debes enfocarte en formas y partes grandes que contribuyan a la silueta del objeto, en lugar de pequeños detalles que podrían no ser visibles. Utiliza texturas y mapas normales para obtener detalles detallados.

A medida que los objetos se mueven a la distancia, el nivel de detalle (LOD) puede ajustarlos o cambiarlos para utilizar mallas más simples con materiales y shaders más simples a fin de mejorar el rendimiento de la GPU.
Más consejos de preparación LOD
Cuándo no usar LOD
LOD no es adecuado en todas las situaciones. Por ejemplo, evita usarlo en una aplicación en la que tanto la vista de la cámara como los objetos son estáticos, o en la que el objeto ya está usando una cantidad baja de polígonos. LOD incluye una sobrecarga de memoria y un mayor tamaño de archivo porque los datos de malla se deben guardar para que se puedan usar en tiempo real.

Puedes combinar varias mallas en una sola para reducir la cantidad de llamadas de dibujo necesarias para el renderizado. Para aplicar esta técnica, crea un GameObject vacío en Hierarchy y conviértelo en el padre de las mallas que quieres combinar. Luego, adjunta un script que implemente el método Mesh.CombineMeshes() en el GameObject padre.
Usar Occlusion Culling
Los objetos ocultos detrás de otros objetos pueden, potencialmente, seguir renderizándose y costando recursos. Usar Occlusion Culling para descartarlos.
Si bien la eliminación del tronco fuera de la vista de la cámara es automática, la eliminación de la oclusión es un proceso integrado. Solo tienes que marcar tus objetos como oclusores estáticos u oclusores estáticos y, luego, integrarlos en el cuadro de diálogo Window > Rendering > Occlusion Culling. Si bien no es necesario para todas las escenas, el culling puede mejorar el rendimiento en muchos casos. Consulta el tutorial Trabajar con Occlusion Culling para obtener más información.

Estos son algunos buenos consejos que debes tener en cuenta al importar tus modelos.

Las texturas pueden ser de diferentes tamaños. Reducir el tamaño de las texturas que requieren menos detalles ayudará a reducir el ancho de banda. Por ejemplo, una textura difusa se puede establecer en 1024 x 1024 y el mapa de rugosidad/metal relacionado se puede establecer en 512 x 512. Haz lo posible por reducir selectivamente el tamaño de la textura y revisa siempre si alguna imagen se degradó después.
La mayoría del software de creación de texturas trabaja con texturas y las exporta utilizando el espacio de color sRGB.
Te recomendamos utilizar Textures difusos en el espacio de color sRGB. Las texturas que no se procesan como color no deben estar en el espacio de color sRGB. Algunos ejemplos de estas texturas son los mapas metálicos, de rugosidad y normales, ya que los mapas se utilizan como datos en lugar del color. Usar sRGB en estos mapas generará una imagen incorrecta en el material.
Nota: Asegúrate de que la configuración sRGB (color Texture) en la ventana Inspector no tenga comprobaciones junto a rugosidad, mapas especulares, normales u otros elementos similares.

Se pueden integrar elementos tales como la oclusión ambiental y pequeños reflejos especulares y, luego, agregarlos a la textura difusa. Este enfoque significa que no tienes que depender demasiado de los shaders costosos desde el punto de vista computacional y las funciones Unity para obtener reflejos especulares y oclusión ambiental.

Siempre que sea posible, usa texturas en escala de grises que permitan teñir el color en el shader. Esto ahorra memoria de Texture a costa de crear un shader personalizado para realizar el teñido. Sé selectivo con esta técnica, porque no todos los objetos se ven bien con este método. Es más fácil aplicar esto a un objeto que tiene un color uniforme.

El filtrado de texturas a menudo mejora la calidad de la textura en una escena, pero también puede degradar el rendimiento porque, para lograr una mejor calidad de la textura, a menudo se necesita más procesamiento. El filtrado de texturas a veces puede representar hasta la mitad del consumo de energía de la GPU. Elegir filtros de textura más simples y adecuados puede ayudar a reducir las demandas de energía de una aplicación.

Es probable que la mayor parte de tu memoria se oriente a texturas, por lo que los ajustes de importación aquí son esenciales. En general, intenta seguir estas pautas al importar tus assets.

Utiliza la compresión de textura escalable adaptativa (ATSC) para iOS y Android. La gran mayoría de los juegos en desarrollo tienden a orientarse a dispositivos con especificaciones mínimas que admiten compresión ATSC. Las únicas excepciones son las siguientes:

El empaquetamiento de canales de textura ayuda a ahorrar memoria de textura porque puedes obtener tres mapas en una sola textura. Eso significa menos muestreadores de textura. Este enfoque se utiliza comúnmente para empaquetar rugosidad, suavidad o metalizado en una sola textura. También se puede aplicar a cualquier máscara de textura. Por ejemplo, también puedes almacenar la máscara alfa. Las imágenes con transparencias pueden tener una huella de memoria mayor, ya que requieren un formato de 32 bits. Sin embargo, al utilizar el canal gratuito para almacenar la máscara alfa, puedes mantener la textura difusa en 16 bits y reducir efectivamente a la mitad el tamaño del archivo.
Utiliza el canal verde para almacenar la máscara más importante. El canal verde suele tener más bits, ya que nuestros ojos son más sensibles al verde y menos sensibles al azul.

Un mapa UV proyecta texturas 2D sobre la superficie de un modelo 3D. La desenvoltura UV es el proceso de crear un mapa UV.