Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Importação de imagens
Formatos de imagem suportados
O Godot pode importar os seguintes formatos de imagem:
Rasterizados:
BMP (
.bmp) - Todos os formatos de pixel são suportados, mas a compressão RLE não é suportada.DirectDraw Surface (
.dds) - Se mipmaps estiverem presentes na textura, eles serão carregados diretamente. Isso pode ser usado para obter efeitos usando mipmaps personalizados.Khronos Texture (
.ktx) - A decodificação é feita usando a libktx. Suporta apenas imagens 2D. Cubemaps, arrays de textura e remoção de preenchimento (de-padding) não são suportados.OpenEXR (
.exr) - Suporta HDR (altamente recomendado para céus panorâmicos).Radiance HDR (
.hdr) - Suporta HDR (altamente recomendado para céus panorâmicos).JPEG (
.jpg,.jpeg) - Não suporta transparência pelas limitações do formato.PNG (
.png) - A precisão é limitada a 8 bits por canal na importação (sem imagens HDR).Truevision Targa (
.tga)WebP (
.webp) - Arquivos WebP suportam transparência e podem ser compactados com ou sem perdas. A precisão é limitada a 8 bits por canal.
Vetorial:
SVG (
.svg)Por padrão, os SVGs são rasterizados no momento da importação.
O SVG é o único formato de imagem que pode ser importado como DPITexture, o que permite a rasterização em tempo de execução para corresponder ao fator de sobreamostragem (oversampling) atual. Veja Alterando o tipo de importação para mais detalhes.
O Godot utiliza a biblioteca ThorVG para renderização SVG. O suporte a recursos SVG é limitado; vetores complexos podem não ser renderizados corretamente. Textos devem ser convertidos em caminhos; caso contrário, não aparecerão na imagem rasterizada. Para vetores complexos, geralmente é melhor renderizá-los para PNG utilizando o Inkscape. Isso pode ser automatizado graças à sua interface de linha de comando.
Você pode verificar se o ThorVG consegue renderizar um determinado vetor corretamente usando seu visualizador baseado na web.
Nota
Se você compilou o editor do Godot a partir da fonte com módulos específicos desabilitados, alguns formatos podem não estar disponíveis.
Importação de Texturas
A ação padrão do Godot é importar imagens como texturas. Texturas são armazenadas na memória de vídeo. Seus dados de pixels não podem ser acessados diretamente pela CPU sem convertê-las novamente para uma Image por meio de um script. É isso que torna sua renderização eficiente.
Existem mais de uma dúzia de opções de importação que podem ser ajustadas após selecionar uma imagem na aba FileSystem:
Opções de importação na aba Import após selecionar uma imagem na aba FileSystem. Algumas dessas opções só ficam visíveis com certos modos de compressão.
Alterando o tipo de importação
É possível escolher outros tipos de recursos importados na aba Import:
BitMap: Textura monocromática de 1 bit (destinada a ser usada como uma máscara de clique em TextureButton e TouchScreenButton). Este tipo de recurso não pode ser exibido diretamente em nós 2D ou 3D, mas os valores dos pixels podem ser consultados a partir de um script usando get_bit.
Cubemap: Importa a textura como um cubemap de 6 lados, com interpolação entre os lados do cubemap (seamless cubemaps), que pode ser amostrado em shaders customizados.
CubemapArray: Importa a textura como uma coleção de cubemaps de 6 lados, que podem ser amostrados em shaders customizados. Este tipo de recurso só pode ser exibido ao usar os renderizadores Forward+ ou Mobile, não no renderizador Compatibility.
DPITexture: Disponível apenas para imagens SVG. Semelhante ao Texture2D, mas pode ser re-rasterizado em diferentes escalas no editor e em tempo de execução sem a necessidade de ser reimportado. Veja Sobreamostragem de fontes e imagens para mais detalhes.
Font Data (Monospace Image Font): Importa a imagem como uma fonte bitmap onde todos os caracteres têm a mesma largura. Veja Usando Fontes.
Image: Importa a imagem como está. Este tipo de recurso não pode ser exibido diretamente em nós 2D ou 3D, mas os valores dos pixels podem ser consultados a partir de um script usando get_pixel.
Texture2D: Importa a imagem como uma textura bidimensional, adequada para exibição em superfícies 2D e 3D. Este é o modo de importação padrão.
Texture2DArray: Importa a imagem como uma coleção de texturas bidimensionais. O Texture2DArray é semelhante a uma textura tridimensional, mas sem interpolação entre as camadas. Shaders embutidos de 2D e 3D não conseguem exibir arrays de textura, então você deve criar um shader customizado em 2D ou 3D para exibir uma textura de um array de texturas.
Texture3D: Importa a imagem como uma textura tridimensional. Isso não é uma textura 2D aplicada sobre uma superfície 3D. O Texture3D é semelhante a um array de texturas, mas com interpolação entre as camadas. O Texture3D é normalmente usado para mapas de densidade FogMaterial em névoa volumétrica, campos vetoriais de atratores de partículas, correção de cor 3D LUT de Environment e shaders customizados.
TextureAtlas: Importa a imagem como um atlas de diferentes texturas. Pode ser usado para reduzir o uso de memória para sprites 2D animados. Suportado apenas em 2D devido à falta de suporte em shaders embutidos de 3D.
Para Cubemap, a ordem esperada das imagens é X+, X-, Y+, Y-, Z+, Z- (no sistema de coordenadas do Godot, então Y+ é "para cima" e Z- é "para frente"). Aqui estão os templates que você pode usar para imagens de cubemap (clique com o botão direito > Salvar link como…):
Detectar 3D
As opções de importação padrão (sem mipmaps e compressão Lossless) são adequadas para 2D, mas não são ideais para a maioria dos projetos 3D. O Detect 3D faz com que o Godot perceba quando uma textura é usada em uma cena 3D (como uma textura em um BaseMaterial3D). Se isso acontecer, várias opções de importação são alteradas para que as flags da textura sejam mais amigáveis ao 3D. Os mipmaps são ativados e o modo de compressão é alterado para VRAM Compressed, a menos que Detect 3D > Compress To (Comprimir Para) seja alterado. A textura também é reimportada automaticamente.
Uma mensagem é impressa no painel de Output quando é detectado que uma textura está sendo usada em 3D.
Se você encontrar problemas de qualidade quando uma textura for detectada para uso em 3D (por exemplo, para texturas de pixel art), altere a opção Detect 3D > Compress To (Comprimir Para) antes de usar a textura em 3D, ou altere Compress > Mode (Modo de Compressão) para Lossless após usar a textura em 3D. Isso é preferível a desativar o Detect 3D, pois a geração de mipmaps permanece ativada para evitar que as texturas pareçam granuladas à distância.
Opções de importação
Ver também
Desde o Godot 4.0, os modos de filtro e repetição de textura são definidos nas propriedades do CanvasItem em 2D (com uma configuração de projeto agindo como padrão) e em uma configuração por material em 3D. Em shaders customizados, o modo de filtro e repetição é alterado no uniform sampler2D usando dicas descritas na documentação do Linguagem de shading.
Compress > Mode (Modo de Compressão)
Imagens são um dos recursos mais pesados em um jogo. Para usá-las de forma eficiente, elas precisam de ser comprimidas. O Godot proporciona vários métodos de compressão, dependendo do caso.
Lossless: Este é o modo de compressão padrão e mais comum para recursos 2D. Exibe os recursos sem qualquer tipo de artefato visual e possui uma boa compressão em disco. Entretanto, utiliza significativamente mais memória de vídeo do que a Compressão VRAM. Esta também é a configuração recomendada para pixel art.
Lossy: É uma boa escolha para recursos 2D grandes. Possui alguns artefatos, mas menos do que a compressão VRAM, e o tamanho do arquivo é várias vezes menor em comparação com Lossless ou VRAM Uncompressed. O uso de memória de vídeo não é reduzido por este modo; permanece igual ao de Lossless ou VRAM Uncompressed.
VRAM Compressed: Este é o modo de compressão padrão e mais comum para recursos 3D. O tamanho em disco é reduzido e o uso de memória de vídeo também diminui significativamente (geralmente entre 4 e 6 vezes). Este modo deve ser evitado em recursos 2D, pois produz artefatos perceptíveis, especialmente em texturas de baixa resolução.
VRAM Uncompressed: Útil apenas para formatos que não podem ser comprimidos, como imagens brutas de ponto flutuante.
Basis Universal: Este modo alternativo de compressão VRAM codifica a textura em um formato que pode ser transcodificado para a maioria dos formatos comprimidos por GPU em tempo de carregamento. Isso fornece arquivos muito pequenos que fazem uso da compressão VRAM, à custa de uma qualidade inferior em comparação com o VRAM Compressed e tempos de compressão lentos. O uso de VRAM geralmente é o mesmo que o VRAM Compressed. O Basis Universal não suporta formatos de imagem de ponto flutuante (o motor internamente usará o VRAM Compressed como alternativa).
Nota
Mesmo em 3D, texturas de "pixel art" devem ter a compressão VRAM desativada, pois isso afetará negativamente sua aparência, sem melhorar o desempenho significativamente devido à sua baixa resolução.
Nesta tabela, cada uma das 5 opções é descrita juntamente com suas vantagens e desvantagens (
= melhor,
= pior):
Modo de compressão |
Sem perdas |
Perda |
VRAM Compressed (Comprimido em VRAM) |
VRAM Uncompressed (Não comprimido em VRAM) |
Basis Universal |
|---|---|---|---|---|---|
Descrição |
Armazenado como WebP sem perdas / PNG |
Armazenado como WebP |
Armazenado como S3TC, BPTC ou ETC2 dependendo da plataforma |
Armazenado como pixels brutos |
Transcodificado para o formato VRAM Compressed |
Tamanho em disco |
|
' |
|
|
' |
Uso de memória |
|
|
|
|
|
Desempenho |
|
|
|
|
|
Perda de qualidade |
|
|
|
|
|
Tempo de carregamento |
|
|
|
|
|
Uso de memória estimado para uma única textura RGBA8 com mipmaps ativados:
Tamanho da textura |
Sem perdas |
Perda |
VRAM Compressed (Comprimido em VRAM) |
VRAM Uncompressed (Não comprimido em VRAM) |
Basis Universal |
|---|---|---|---|---|---|
128×128 |
|
|
|
|
|
256×256 |
|
|
|
|
|
512×512 |
|
|
|
|
|
1024×1024 |
' |
' |
|
' |
|
2048×2048 |
|
|
' |
|
' |
4096×4096 |
|
|
|
|
|
Nota
Na tabela acima, o uso de memória será reduzido em 25% para imagens que não possuem um canal alfa (RGB8). O uso de memória será reduzido em mais 25% para imagens que têm mipmaps desativados.
Observe como em resoluções maiores o impacto da compressão VRAM é muito maior. Com uma razão de compressão de 4:1 (6:1 para texturas opacas com S3TC), a compressão VRAM efetivamente permite que uma textura seja duas vezes maior em cada eixo, usando a mesma quantidade de memória na GPU.
A compressão VRAM também reduz a largura de banda de memória necessária para amostrar a textura, o que pode acelerar a renderização em cenários limitados por largura de banda de memória (que são frequentes em gráficos integrados e dispositivos móveis). Esses fatores combinados tornam a compressão VRAM indispensável para jogos 3D com texturas de alta resolução.
Você pode visualizar quanta memória uma textura ocupa dando um duplo clique nela na aba FileSystem e, em seguida, olhando no Inspector:
Visualizando uma textura no Inspector. Crédito: Red Brick 03 - Poly Haven
Compress > High Quality (Alta Qualidade)
Nota
A compressão de textura VRAM de alta qualidade é suportada apenas nos renderizadores Forward+ e Mobile.
Ao usar o renderizador Compatibility, esta opção é sempre considerada desativada.
Se ativado, usa compressão BPTC em plataformas desktop e compressão ASTC em plataformas móveis. Ao usar BPTC, BC7 é usado para texturas SDR e BC6H é usado para texturas HDR.
Se desativado (padrão), usa a compressão S3TC, que é mais rápida mas de menor qualidade, em plataformas desktop e ETC2 em plataformas móveis/web. Ao usar S3TC, DXT1 (BC1) é usado para texturas opacas e DXT5 (BC3) é usado para texturas transparentes ou de mapa de normais (RGTC).
BPTC e ASTC suportam compressão VRAM para texturas HDR, mas S3TC e ETC2 não suportam (veja HDR Compression abaixo).
Compress > HDR Compression (Compressão HDR)
Nota
Esta opção só tem efeito em texturas que são importadas como formatos HDR no Godot (arquivos .hdr e .exr).
Se definido como Disabled, nunca usa compressão VRAM para texturas HDR, independentemente de serem opacas ou transparentes. Em vez disso, a textura é convertida para RGBE9995 (9 bits por canal + expoente de 5 bits = 32 bits por pixel) para reduzir o uso de memória em comparação com um formato de imagem de ponto flutuante de precisão simples ou meia-precisão.
Se definido como Opaque Only (padrão), apenas usa compressão VRAM para texturas HDR opacas. Isso se deve a uma limitação dos formatos HDR, pois não existe um formato HDR comprimido por VRAM que suporte transparência ao mesmo tempo.
Se definido como Always, forçará a compressão VRAM mesmo para texturas HDR com um canal alfa. Para realizar isso, o canal alfa é descartado na importação.
Compress > Normal Map (Mapa de Normal)
Ao utilizar uma textura como mapa normal, apenas os canais vermelho e verde são necessários. Como algoritmos comuns de compressão de textura produzem artefatos que não ficam muito bons em mapas normais, o formato RGTC é a melhor opção para esse tipo de dado. Forçar esta opção para Enable fará com que o Godot importe a imagem usando compressão RGTC. Por padrão, ela está definida como Detect. Isso significa que, se a textura for detectada como um mapa normal, a opção será alterada automaticamente para Enable e a textura será reimportada.
Observe que a compressão RGTC afeta a imagem final do mapa normal. Será necessário ajustar shaders personalizados que utilizem o canal azul do mapa normal para levar isso em consideração. Os shaders de materiais integrados já ignoram o canal azul de mapas normais (independentemente do conteúdo real do mapa normal).
No exemplo abaixo, o mapa de normais com compressão RGTC consegue preservar seus detalhes muito melhor, enquanto usa a mesma quantidade de memória que uma textura padrão comprimida por VRAM em RGBA:
Mapa de normais com compressão VRAM padrão (esquerda) e com compressão VRAM RGTC (direita)
Nota
O Godot exige que o mapa normal utilize coordenadas X+, Y+ e Z+, conhecidas como mapas normais no estilo OpenGL. Se você importou um material criado para outro mecanismo, ele pode utilizar o estilo DirectX. Nesse caso, o mapa normal precisa ser convertido habilitando a opção de importação Normal Map Invert Y.
Mais informações sobre normal maps (incluindo uma tabela de ordem de coordenadas para motores populares) podem ser encontradas aqui (em Inglês).
Compress > Channel Pack (Pacote de Canais)
Se definido como sRGB Friendly (padrão), evita que o formato de cor RG seja usado, pois ele não suporta cores sRGB.
Se definido como Optimized, permite que o formato de cor RG seja usado se a textura não utilizar o canal azul.
Uma terceira opção Normal Map (RG Channels) está disponível apenas em texturas em camadas (Cubemap, CubemapArray, Texture2DArray e Texture3D). Isso força todas as camadas da textura a serem importadas com o formato de cor RG, preservando apenas os canais vermelho e verde. A compressão RGTC consegue preservar seus detalhes muito melhor, enquanto usa a mesma quantidade de memória que uma textura padrão comprimida por VRAM em RGBA. Isso só tem efeito em texturas com os modos de compressão VRAM Compressed ou Basis Universal.
Mipmaps > Generate (Gerar)
Se ativado, versões menores da textura são geradas na importação. Por exemplo, uma textura de 64×64 gerará 6 mipmaps (32×32, 16×16, 8×8, 4×4, 2×2, 1×1). Isso traz vários benefícios:
As texturas não ficarão granuladas à distância (em 3D), ou se forem reduzidas devido ao zoom da câmera ou à escala do CanvasItem (em 2D).
O desempenho melhorará se a textura for exibida à distância, já que amostrar versões menores da textura original é mais rápido e requer menos largura de banda de memória.
A desvantagem dos mipmaps é que eles aumentam o uso de memória em cerca de 33%.
É recomendado ativar mipmaps em 3D. No entanto, em 2D, isso só deve ser ativado se o seu projeto se beneficiar visivelmente de ter mipmaps ativados. Se a câmera nunca der um zoom out significativo, não haverá benefício em ativar mipmaps, mas o uso de memória aumentará.
Mipmaps > Limit (Limite)
Aviso
Mipmaps > Limit não está implementado atualmente e não tem efeito quando alterado.
Se definido para um valor maior que -1, limita o número máximo de mipmaps que podem ser gerados. Isso pode ser diminuído se você não quiser que as texturas fiquem com uma resolução muito baixa a distâncias extremas, ao custo de um pouco de granulado.
Roughness > Mode (Modo de Rugosidade)
O canal de cor a ser considerado como um mapa de rugosidade (roughness map) nesta textura. Só tem efeito se Roughness > Src Normal não estiver vazio.
Roughness > Src Normal
O caminho para a textura a ser considerada como um mapa de normais para filtragem de rugosidade na importação. Especificar isso pode ajudar a diminuir ligeiramente o aliasing especular em 3D.
A filtragem de rugosidade na importação é usada apenas na renderização 3D, não em 2D.
Process > Fix Alpha Border (Corrigir Borda Alpha)
Isso preenche a transição entre áreas transparentes e opacas com pixels da mesma cor ao redor. Para texturas exibidas com filtragem bilinear, isso ajuda a reduzir o efeito de contorno ao exportar imagens de um editor gráfico.
É recomendado deixar isso ativado (como vem por padrão), a menos que isso cause problemas para uma imagem específica.
Process > Premult Alpha
Uma alternativa para corrigir bordas escurecidas com Corrigir Borda Alfa (Fix Alpha Border) é usar alfa pré-multiplicado. Ao ativar esta opção, a textura será convertida para esse formato. Uma textura com alfa pré-multiplicado requer materiais específicos para ser exibida corretamente:
In 2D, a CanvasItemMaterial will need to be created and configured to use the Premultiplied Alpha blend mode on CanvasItems that use this texture. In custom canvas item shaders,
render_mode blend_premul_alpha;should be used.In 3D, a BaseMaterial3D will need to be created and configured to use the Premult Alpha blend mode on materials that use this texture. In custom spatial shaders,
render_mode blend_premul_alpha;should be used.
Process > Normal Map Invert Y (Inverter Y do Mapa de Normal)
O Godot exige que o mapa normal utilize coordenadas X+, Y+ e Z+, conhecidas como mapas normais no estilo OpenGL. Se você importou um material criado para outro mecanismo, ele pode utilizar o estilo DirectX. Nesse caso, o mapa normal precisa ser convertido habilitando a opção de importação Normal Map Invert Y.
Mais informações sobre normal maps (incluindo uma tabela de ordem de coordenadas para motores populares) podem ser encontradas aqui (em Inglês).
Process > HDR as sRGB
Algumas imagens HDR encontradas na internet podem estar incorretas e conter dados de cor em sRGB (em vez de dados lineares). Recomenda-se não utilizar esses arquivos. Se for absolutamente necessário, habilitar esta opção fará com que elas sejam exibidas corretamente.
Aviso
Ativar HDR as sRGB em imagens HDR bem formatadas fará com que a imagem resultante pareça escura demais, portanto, deixe isso desativado se não tiver certeza.
Process > HDR Clamp Exposure (Limitar Exposição HDR)
Algumas imagens panorâmicas HDR que você encontra na internet podem conter pixels extremamente brilhantes, devido ao fato de terem sido tiradas de fontes da vida real sem qualquer corte (clipping).
While these HDR panorama images are accurate to real life, this can cause the radiance map generated by Godot to contain sparkles when used as a background sky. This can be seen in material reflections (even on rough materials in extreme cases). Enabling HDR Clamp Exposure can resolve this using a smart clamping formula that does not introduce visible clipping – glow will keep working when looking at the background sky.
Process > Size Limit (Limite de Tamanho)
Se definido para un valor maior que 0, o tamanho da textura é limitado na importação a um valor menor ou igual ao especificado aqui. Para texturas não quadradas, o limite de tamanho afeta a dimensão mais longa, com a dimensão mais curta sendo dimensionada para preservar a proporção de aspecto. O redimensionamento é realizado usando interpolação cúbica.
Isso pode ser usado para reduzir o uso de memória sem afetar as imagens de origem, ou para evitar problemas com texturas que não são exibidas em plataformas móveis/web (já que estas geralmente não conseguem exibir texturas maiores que 4096×4096).
Detect 3D > Compress To (Comprimir Para)
Isso altera a opção Compress > Mode (Modo de Compressão) que é usada quando uma textura é detectada como sendo usada em 3D.
Alterar essa opção de importação só tem efeito se uma textura for detectada como sendo usada em 3D. Alterar isso para Disabled e depois reimportar não mudará o modo de compressão existente em uma textura (se ela for detectada para uso em 3D), mas escolher VRAM Compressed ou Basis Universal mudará.
SVG > Scale (Escala)
Isso está disponível apenas para imagens SVG.
A escala em que o SVG deve ser renderizado, sendo 1.0 o tamanho do design original. Valores mais altos resultam em uma imagem maior. Note que, ao contrário da sobreamostragem de fontes, isso afeta o tamanho físico em que o SVG é renderizado em 2D. Veja também Editor > Scale With Editor Scale abaixo.
Editor > Scale With Editor Scale (Escalar com a Escala do Editor)
Isso está disponível apenas para imagens SVG.
Se verdadeiro, dimensiona a imagem importada para corresponder ao fator de escala de exibição do editor. Isso deve ser ativado para ícones de plugins do editor e ícones de classes customizadas, mas deve ser deixado desativado caso contrário.
Editor > Convert Colors With Editor Theme (Converter Cores com o Tema do Editor)
Isso está disponível apenas para imagens SVG.
Se marcado, converte as cores da imagem importada para corresponder à paleta de cores de ícones e fontes do editor. Isso pressupõe que a imagem usa exatamente as mesmas cores que a paleta de cores do próprio Godot para ícones do editor, com o arquivo de origem projetado para um tema escuro do editor. Isso deve ser ativado para ícones de plugins do editor e ícones de classes customizadas, mas deve ser deixado desativado caso contrário.
Importando imagens SVG com texto
Como a biblioteca SVG usada no Godot não suporta a rasterização de textos encontrados em imagens SVG, o texto deve ser convertido em um caminho (path) primeiro. Caso contrário, o texto não aparecerá na imagem rasterizada.
Existem duas maneiras de conseguir isso de forma não destrutiva, para que você possa continuar editando o texto original depois:
Selecione o seu objeto de texto no Inkscape, duplique-o no mesmo local pressionando Ctrl + D e use Caminho > Objeto para Caminho. Oculte o objeto de texto original depois usando a aba Camadas e Objetos.
Use a linha de comando do Inkscape para exportar um SVG a partir de outro arquivo SVG com o texto convertido em caminhos:
inkscape --export-text-to-path --export-filename svg_with_text_converted_to_path.svg svg_with_text.svg
Boas práticas
Suportando tamanhos de textura de alta resolução em 2D sem artefatos
Para suportar múltiplas resoluções com visuais nítidos em altas resoluções, você precisará usar imagens de origem de alta resolução (adequadas para a resolução mais alta que deseja suportar sem desfoque, que normalmente é 4K em jogos modernos para desktop).
Existem 2 maneiras de proceder:
Use uma resolução base alta nas configurações do projeto (como 4K) e, em seguida, use as texturas em sua escala original. Esta é uma abordagem mais fácil.
Use uma resolução base baixa nas configurações do projeto (como 1080p) e, em seguida, reduza a escala das texturas ao usá-las. Isso costuma ser mais difícil e pode tornar vários cálculos em scripts tediosos, portanto, a abordagem descrita acima é a recomendada.
Depois de fazer isso, você pode notar que as texturas ficam granuladas em resoluções de viewport mais baixas. Para resolver isso, ative os Mipmaps nas texturas usadas em 2D na aba Import. Isso aumentará o uso de memória.
Ativar mipmaps também pode fazer com que as texturas pareçam mais desfocadas, mas você pode optar por tornar as texturas mais nítidas (ao custo de um pouco de granulado) definindo Rendering > Textures > Default Filters > Texture Mipmap Bias para um valor negativo.
Use tamanhos de textura apropriados em 3D
Embora não haja uma recomendação "única para todos os casos", aqui estão algumas recomendações gerais para escolher tamanhos de textura em 3D:
O tamanho de uma textura deve ser ajustado para ter uma densidade de texels consistente em comparação com os objetos ao redor. Embora isso não possa ser garantido perfeitamente ao se ater a tamanhos de textura em potências de dois, geralmente é possível manter os detalhes da textura bastante consistentes em toda a cena 3D.
Quanto menor o objeto aparecer na tela, menor deve ser sua textura. Por exemplo, uma árvore que só aparece ao fundo não precisa de uma resolução de textura tão alta quanto outros objetos dos quais o jogador possa se aproximar.
Using power-of-two texture sizes is recommended, but is not required. Textures don't have to be square – sizes such as 1024×512 are acceptable.
Há retornos decrescentes ao usar tamanhos grandes de textura, apesar do aumento no uso de memória e nos tempos de carregamento. A maioria dos jogos 3D modernos que não usam um estilo pixel art se mantêm em texturas de 2048×2048 em média, com 1024×1024 e 512×512 para texturas que cobrem superfícies menores.
Ao trabalhar com materiais baseados em física em 3D, você pode reduzir o uso de memória e o tamanho do arquivo sem afetar muito a qualidade usando uma resolução mais baixa para certos mapas de textura. Isso funciona especialmente bem para texturas que apresentam apenas detalhes de baixa frequência (como um mapa de normais para uma textura de neve).
Se você tiver controle sobre como os modelos 3D são criados, estas dicas também valem a pena explorar:
Ao trabalhar com modelos 3D que são em sua maioria simétricos, você pode usar UVs espelhadas para dobrar a densidade efetiva de texels. No entanto, isso pode parecer não natural quando usado em rostos humanos.
Ao trabalhar com modelos 3D usando um estilo low-poly e cores planas, você pode confiar nas cores dos vértices (vertex colors) em vez de texturas para representar as cores nas superfícies do modelo.
Ver também
As imagens podem ser carregadas e salvas em tempo de execução usando o carregamento e salvamento de arquivos em tempo de execução, inclusive a partir de um projeto exportado.
Pequeno