
O que você obterá desta página: Dicas para otimizar recursos de arte, para desenvolvedores de jogos para celular que trabalham com Unity. Este é o primeiro de dois artigos sobre a otimização da arte para jogos para celular.
Você pode encontrar muitas outras dicas de otimização para celular neste este abrangente e-book e neste curso do Unity Learn sobre Otimização de arte 3D para aplicativos móveis.

Tanto os polígonos quanto os vértices são computacionalmente caros em plataformas móveis. Coloque polígonos em áreas que realmente contribuam para a qualidade visual do aplicativo, para que você não desperdice seu orçamento de processamento.
Devido ao tamanho pequeno da tela da maioria dos dispositivos móveis e à localização dos objetos 3D no seu aplicativo, muitos detalhes de pequenos triângulos em um objeto 3D podem não ser visíveis. Isso significa que você deve se concentrar em formas e partes grandes que contribuem para a silhueta do objeto, em vez de pequenos detalhes que podem não ser visíveis. Use texturas e mapas normais para obter detalhes finos.

À medida que os objetos se distanciam, o Level of Detail (LOD) pode ajustá-los ou trocá-los para usar malhas mais simples com materiais e shaders mais simples para refinar o desempenho da GPU.
Mais dicas de preparação para o LOD
Quando não usar o LOD
O LOD não é adequado para todas as situações. Por exemplo, evite usá-lo em um aplicativo em que a visualização da câmera e os objetos sejam estáticos ou em que o objeto já esteja usando uma contagem baixa de polígonos. O LOD tem uma sobrecarga de memória e um tamanho de arquivo maior porque os dados da malha devem ser salvos para que possam ser usados em tempo real.

Você pode combinar várias malhas em uma para reduzir o número de draw calls necessárias para a renderização. Para aplicar essa técnica, crie um GameObject vazio na hierarquia e torne-o o pai das malhas que você deseja combinar; em seguida, anexe um script que implemente o método Mesh.CombineMeshes() no GameObject pai.
Usar o Occlusion Culling
Os objetos ocultos atrás de outros objetos ainda podem ser renderizados e custar recursos. Use Occlusion Culling para descartá-los.
Enquanto a seleção de frustum fora da visão da câmera é automática, a seleção de oclusão é um processo de cozimento. Basta marcar seus objetos como Static Occluders ou Static Occludees e, em seguida, fazer o bake por meio da caixa de diálogo Window > Rendering > Occlusion Culling . Embora não seja necessário para todas as cenas, a seleção pode melhorar o desempenho em muitos casos. Confira o tutorial Working with Occlusion Culling para obter mais informações.

Aqui estão algumas boas dicas que você deve ter em mente ao importar seus modelos.

As texturas podem ter tamanhos diferentes. A redução do tamanho das texturas que exigem menos detalhes ajudará a reduzir a largura de banda. Por exemplo, uma textura difusa pode ser definida como 1024 x 1024, e o mapa de rugosidade/metálico relacionado pode ser definido como 512 x 512. Faça o possível para reduzir seletivamente o tamanho da textura e sempre verifique se algum aspecto visual foi degradado depois.
A maioria dos softwares de texturização trabalha com texturas e as exporta usando o espaço de cores sRGB.
Recomendamos que você use texturas difusas no espaço de cores sRGB. As texturas que não são processadas como cores não devem estar no espaço de cores sRGB. Exemplos dessas texturas incluem mapas metálicos, de rugosidade e normais, já que os mapas são usados como dados em vez de cores. O uso do sRGB nesses mapas resultará em um visual incorreto no material.
Observação: Certifique-se de que a configuração sRGB (textura de cor) na janela Inspector não tenha marcações ao lado de rugosidade, especular, mapas normais ou itens semelhantes.

Elementos como oclusão de ambiente e pequenos realces especulares podem ser incorporados e adicionados à textura difusa. Essa abordagem significa que você não precisa depender muito de shaders e recursos do Unity caros do ponto de vista computacional para obter realces especulares e oclusão de ambiente.

Sempre que possível, use texturas em escala de cinza que permitam a coloração no sombreador. Isso economiza memória de textura ao custo de criar um sombreador personalizado para realizar a coloração. Seja seletivo com essa técnica, pois nem todos os objetos ficam bons com esse método. É mais fácil aplicar isso a um objeto que tenha uma cor uniforme.

A filtragem de textura geralmente melhora a qualidade da textura em uma cena, mas também pode prejudicar o desempenho, pois obter uma melhor qualidade de textura geralmente exige mais processamento. A filtragem de textura pode, às vezes, ser responsável por até metade do consumo de energia da GPU. A escolha de filtros de textura mais simples e mais adequados pode ajudar a reduzir a demanda de energia de um aplicativo.

A maior parte de sua memória provavelmente será destinada a texturas, portanto, as configurações de importação aqui são essenciais. Em geral, tente seguir estas diretrizes ao importar seus ativos.

Use a compressão de textura escalável adaptável (ATSC) para iOS e Android. A grande maioria dos jogos em desenvolvimento tende a ter como alvo dispositivos de especificações mínimas que suportam a compactação ATSC. As únicas exceções são:

O empacotamento de canais de textura ajuda a economizar memória de textura, pois é possível colocar três mapas em uma única textura. Isso significa menos amostradores de textura. Essa abordagem é comumente usada para agrupar rugosidade, suavidade e/ou metálico em uma única Textura. Ele também pode ser aplicado a qualquer máscara de textura. Por exemplo, você também pode armazenar a máscara alfa. As imagens com transparências podem ocupar mais espaço na memória, pois exigem um formato de 32 bits, mas, ao usar o canal livre para armazenar a máscara alfa, você pode manter a textura difusa em 16 bits e reduzir efetivamente o tamanho do arquivo pela metade.
Use o canal verde para armazenar a máscara mais importante. O canal verde geralmente tem mais bits, pois nossos olhos são mais sensíveis ao verde e menos sensíveis ao azul.

Um mapa UV projeta texturas 2D na superfície de um modelo 3D. O desembrulhamento de UV é o processo de criação de um mapa de UV.