As Texturas de jogo têm requisitos específicos para serem renderizadas corretamente no jogo. Ao criar texturas no Unreal Editor para Fortnite (UEFN) com imagens importadas, certifique-se de que o arquivo de imagem de origem use a potência de dois para altura e largura. Isso aumenta a compatibilidade e a estabilidade da sua ilha entre plataformas.
Formatos de arquivo compactados para unidades de processamento gráfico (GPUs) devem usar texturas à potência de dois em todos os consoles, PCs e dispositivos móveis. As texturas que não estiverem em conformidade com a regra da potência de dois se tornarão instáveis em plataformas menos sofisticadas e possivelmente causarão travamentos nos jogos. A potência de dois também é usada em transmissões de texturas para diminuir a resolução de textura em plataformas com menos memória.
A transmissão de texturas ajuda a:
-
Alterar a resolução de uma textura.
-
Determinar a rapidez com que um jogo é carregado.
-
Aumentar a qualidade visual do jogo.
-
Economizar memória de GPU.
O que é a potência de dois
Computadores e consoles gerenciam e processam dados em partes limitadas, não todos de uma vez. Esse é um princípio semelhante ao modo como os planos de fundo são renderizados usando o World Partition.
Quando as partes de dados do jogo respeitam a regra da potência de dois, estabelecem um conjunto de restrições físicas codificadas sobre a mídia. A menos que essas restrições sejam atendidas, a engine de jogo desperdiçará recursos tentando renderizar ativos corretamente.
A potência de dois é uma maneira de otimizar os dados do jogo e renderizar imagens para exibir experiências visuais com eficiência.
Exemplos de tamanhos de imagem aceitáveis são: 256x256, 512x512 ou 1024x2048. Texturas que não usarem a potência de dois não serão otimizadas e causarão instabilidade e baixo desempenho da ilha.
Texturas com potência de dois permitem que o UEFN use três funcionalidades principais:
-
Compactação de textura: reduz o tamanho da memória em aproximadamente oito vezes a um custo visual mínimo.
-
Mapeamento de MIPs: a geração automática de variantes de resolução inferior.
-
Transmissão de texturas: mostra uma variante de resolução inferior antes que os dados de resolução superior possam ser transmitidos para a memória.
Combinados, esses recursos permitem que até mesmo um ativo de última geração com texturas em 4K seja renderizado em qualquer plataforma. Isso ocorre porque as texturas terão variantes de alta qualidade em uma resolução reduzida.
Por exemplo, uma textura de 4000x4000 sem camada alfa exigiria 64 megabytes de memória. Ela teria que ser carregada de uma só vez, e ainda assim seria exibida em 4000x4000, mesmo causando serrilhado em um pequeno cartaz, bem longe do jogador. Tamanhos de textura muito grandes podem travar o jogo em dispositivos que não possuem memória suficiente.
Por outro lado, uma versão em 4096x4096 de uma textura que usa compactação padrão consumirá apenas 8 megabytes, terá uma transmissão progressiva e produzirá menos serrilhado à distância. Tamanhos de texturas muito grandes também aumentarão o tamanho do pacote, mas não causarão travamento no jogo.
Requisitos de dimensionamento de textura para o UEFN
Para garantir que todas as ilhas funcionem bem em todas as plataformas-alvo, o UEFN aplica certos requisitos sobre os ativos de textura.
Se o seu projeto contiver ativos de textura que não seguem esses requisitos, essas texturas não passarão na validação e você não poderá fazer o upload de seu projeto.
-
Se a sua textura estiver atribuída ao grupo de texturas da IU, suas dimensões devem ser menores que o tamanho máximo de 2048x2048. Porém, as dimensões da textura não precisam estar na potência de 2. As texturas da IU geralmente não são transmitidas, por isso, sempre serão exibidas da forma mais nítida possível.
-
Se a sua textura não estiver atribuída ao grupo de texturas da IU, suas dimensões devem ser menores que o tamanho máximo de 4096x4096. Além disso, se ela contiver mais pixels que o limite mínimo (1024x1024, ou 1048576), deve poder ser transmitida. Ou seja,
-
Cada uma de suas dimensões deve ser uma potência de dois (por exemplo, 256x256, 512x512, 1024x1024, e assim sucessivamente).
A imagem não precisa ser quadrada, desde que cada dimensão seja uma potência de dois. Por exemplo,, 256x512, 512x1024, 256x1024, e assim sucessivamente.
-
-
Sua propriedade Nunca transmitir deve ficar desabilitada.
-
Ela deve ser definida para gerar mipmaps.
-
O custo de memória total de todas as texturas não transmissíveis no seu projeto deve ser menor que um orçamento máximo predefinido. O custo de memória para o seu projeto é determinado pela adição do custo de memória de todas as texturas das quais a propriedade "Nunca transmitir" esteja habilitada. O que inclui:
-
Todas as texturas com dimensões que não são potência de dois (e não foram preenchidas nem estendidas até a potência de dois usando a propriedade "Preenchimento e redimensionamento"). A propriedade "Nunca transmitir" é sempre automaticamente habilitada para essas texturas.
-
Todas as outras texturas com a propriedade "Nunca transmitir" manualmente habilitadas.
-
Todas as texturas têm uma configuração "Grupo de texturas" que indica seu uso esperado. Você pode definir esse grupo, e as outras propriedades das texturas citadas acima, clicando duas vezes no ativo de textura no Navegador de Conteúdo para abrir o Editor de Texturas.
Como redimensionar texturas
No UEFN, texturas antigas, importadas e que utilizam dimensões irregulares ou dimensionamento inchado podem ser dimensionadas de acordo com a potência de dois. Encontre e corrija texturas com falha seguindo as etapas abaixo:
-
Abra a Gaveta de Conteúdo ou o Navegador de Conteúdo e selecione a pasta-raiz de conteúdo do seu projeto, localizada em FortniteGame, no painel esquerdo da árvore de arquivos.
-
Em Todos, encontre a pasta chamada Conteúdo do NomedoProjeto.
-
Digite
NeverStream==true&&TextureGroup!=UI
na barra de pesquisa, na parte superior da Gaveta de Conteúdo. Isso executa uma consulta para identificar ativos afetados.
Todos os ativos visíveis nessa exibição filtrada são afetados. Embora a correção demore um pouco, ela melhorará o desempenho do seu nível.
Existem duas maneiras de atualizar texturas afetadas que não estão no grupo IU.
A Opção A usa os recursos de edição em massa do UEFN para agrupar texturas e editá-las em uma única etapa. Essa é a maneira mais rápida de corrigir texturas automaticamente, preenchendo-as na proporção correta. Entretanto, esse preenchimento pode resultar no uso desnecessário de memória.
A Opção B é um pouco mais demorada, mas fará o melhor uso possível do seu orçamento de memória se você precisar resolver várias texturas afetadas. Essa opção permitirá editar e recarregar texturas para evitar preenchimento desnecessário.
Opção A
-
Clique no menu de hambúrguer, no Navegador de Conteúdo ao lado da barra de pesquisa, e selecione Texturas. Todas as texturas ficam isoladas no Navegador de Conteúdo.
-
Clique no ícone Configurações e ative Colunas. Todas as texturas agora estão listadas em colunas no Navegador de Conteúdo.
-
Pesquise na coluna Dimensões qualquer ativo que não esteja usando o dimensionamento na potência de dois.
-
Selecione todas as texturas que não estejam em conformidade com a regra da potência de dois.
-
Clique com o botão direito no Navegador de Conteúdo e selecione Ações de Ativos, Editar seleção na Matriz de Propriedades. Dessa forma, você abre a ferramenta de edição em massa, onde todas as texturas selecionadas são discriminadas na aba Editor de Componentes.
-
Selecione todos os nomes de arquivos de textura na seção Raiz.
Clique na imagem para ampliar.
-
Abra a opção Textura na aba Colunas fixadas.
-
Selecione Preencher na potência de dois no menu suspenso Modo de potência de dois. Uma barra de progresso é exibida na parte inferior da janela do editor.
As texturas foram todas convertidas na potência de dois e agora funcionarão em várias plataformas.
Opção B
-
Clique duas vezes na textura para abrir o Editor de Texturas.
-
Na barra de pesquisa, na parte superior do painel Detalhes, digite o nome do seu arquivo fonte. O resultado mostrará o caminho do arquivo no seu PC que será usado como arquivo de origem original da textura.
Clique na imagem para ampliar.
-
Redimensione a textura para o tamanho com potência de dois mais próximo usando um editor de imagens, como o GIMP ou Paint.NET 5. Você pode até mesmo usar o Paint se a textura não apresentar uma camada alfa.
-
Uma tamanho com potência de dois inclui 256, 512, 1024 etc.
-
Por exemplo, uma textura de 500x500 deve ter 512x512 e uma textura de 600x256 pode ter 512x256.
-
Alterações na proporção não devem ter efeitos adversos na sua ilha.
-
-
Clique com o botão direito na textura no Navegador de Conteúdo e selecione Reimportar.
Se a imagem da textura original não estiver presente nos seus arquivos:
-
Clique com o botão direito na textura no Navegador de Conteúdo e selecione Ações de Ativos, Exportar para obter uma nova cópia.
-
Redimensione a textura para o tamanho com potência de dois mais próximo. Em seguida, no Navegador de Conteúdo, clique com o botão direito na textura e selecione Reimportar com novo arquivo. Quando o arquivo for importado, clique duas vezes na textura para abrir o Editor de Texturas.
-
Na barra de pesquisa Detalhes, digite Nunca Transmitir e defina a opção como Falso. Se não for possível definir como Falso, certifique-se de que a especificação Importado na parte superior mostra que sua imagem tem um tamanho com potência de dois.
-
No painel Detalhes, procure a opção Configurações de Geração de Mip. Em seguida, no menu suspenso, selecione Do Grupo de Texturas.
-
No painel Detalhes, procure a opção Configurações de Compactação e selecione Padrão (DXT1/5) no menu suspenso.
Depois de concluir essas etapas, verifique se você removeu com sucesso a textura restrita pesquisando NeverStream==true&&TextureGroup!=UI
na barra de pesquisa do Navegador de Conteúdo novamente. Os ativos que você atualizou não aparecerão mais.
Alterar uma textura individual
Use as instruções abaixo se você tiver apenas uma textura que não segue a regra da potência de dois.
-
Clique duas vezes na textura para abrir o Editor de Texturas.
Clique na imagem para ampliar.
-
Na barra de pesquisa Detalhes, digite Modo de Potência de Dois. Em seguida, no menu suspenso Preenchimento e redimensionamento, selecione Preenchimento ao quadrado.
-
Procure a opção Nunca transmitir e defina-a como False.
-
Procure a opção Configurações de geração de mip. Em seguida, no menu suspenso, selecione Do grupo de texturas.
-
Procure a opção Configurações de compactação e, no menu suspenso, selecione Padrão (DXT1/5).
Depois de concluir essas etapas, verifique se você removeu com sucesso a textura restrita pesquisando NeverStream==true&&TextureGroup!=UI
na barra de pesquisa do Navegador de Conteúdo. Os ativos que você atualizou não estarão mais na lista.
Como encontrar texturas inválidas
Os ativos de textura que não seguem os requisitos definidos acima são marcados no Navegador de Conteúdo com um ícone de erro. Focalizar o ativo mostra mais detalhes sobre o problema específico na parte superior da dica:
Clique na imagem para ampliar.
Como deixar texturas inválidas em conformidade
A melhor maneira de corrigir texturas inválidas importadas de arquivos externos é editá-las no aplicativo original usado para criá-las, e depois reimportar o ativo. Você também pode usar outro aplicativo de edição de imagens dedicado para editar as texturas antes de reimportá-las para o UEFN.
Certifique-se de que as dimensões de cada imagem sejam menores do que as dimensões máximas definidas acima. Se estiver usando a imagem para a IU, faça com que a altura e a largura sejam potências de dois. A imagem não precisa ser quadrada, desde que cada dimensão seja uma potência de dois.
Alternativamente, o UEFN oferece uma maneira integrada para fazer com que os tamanhos das texturas sigam automaticamente os requisitos do UEFN. Para isso:
-
No Navegador de Conteúdo, selecione uma ou mais texturas inválidas.
-
Clique com o botão direito na miniatura de uma textura e escolha Conformar textura.
O editor tenta ajustar as propriedades das texturas selecionadas para evitar problemas de validação e grava seus resultados no Log de Saída.
Essa operação tem os seguintes efeitos:
-
Se a textura estiver no grupo de texturas da IU e suas dimensões forem maiores que o máximo permitido, a configuração Compressão, Avançada, Tamanho máximo de textura da textura é ajustada para limitar a resolução máxima da textura que pode ser carregada no tempo de execução.
-
Se a textura não estiver no grupo de texturas da IU e suas dimensões forem maiores que o máximo permitido, a configuração Tendência de LOD da textura é ajustada de forma que os mipmaps maiores da textura são descartados. Essa ação limita efetivamente a resolução máxima da textura que pode ser carregada no tempo de execução.
-
Se a textura não estiver no grupo de texturas da IU e suas dimensões não forem potências de dois, a configuração Preenchimento e redimensionamento da textura é definida para Estender à potência de dois.
-
Se a textura não estiver no grupo de texturas da IU, sua configuração Nunca transmitir é desabilitada.