Importação de imagens

Formatos de imagem suportados

O Godot pode importar os seguintes formatos de imagem:

  • BMP (.bmp) - Sem suporte para imagens de 16 bits por pixel. Apenas imagens de 1 bit, 4 bits, 8 bits, 24 bits, e 32 bits por pixel são suportadas.

  • DirectDraw Surface (.dds) - Se mipmaps estiverem presentes na textura, eles serão carregados diretamente. Isso pode ser usado para obter efeitos usando mipmaps personalizados.

  • 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)

  • SVG (.svg, .svgz) - SVGs são rasterizados utilizando NanoSVG ao importá-los. O suporte é limitado; vetores complexos podem não renderizar corretamente. Para vetores complexos, renderizá-los paraa PNGs usando o Inkscape é muitas vezes uma solução melhor. Isto pode ser automatizado graças à sua interface de linha de comando.

  • WebP (.webp) - WebP files support transparency and can be compressed lossily or losslessly. The precision is limited to 8 bits per channel.

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 no Godot é importar imagens como texturas. As texturas são armazenadas na memória de vídeo e não podem ser acessadas diretamente. Isto é o que torna o desenho eficiente.

As opções de importação são vastas:

../../../_images/image_import1.png

Detecção 3D

Esta opção faz o Godot ficar ciente de quando uma textura (a qual é importada para 2D por padrão) é usada em 3D. Se isso acontecer, as configurações são mudadas de modo que os sinalizadores da textura são mais amigáveis para 3D (mipmaps, filtro e repeat se tornam habilitados e compressão é mudada para VRAM). A textura também é reimportada automaticamente.

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.

Modo de compactação

  • Compressão VRAM: Este é o modo de compressão mais comum para assets 3D. O arquivo no disco é reduzido e o uso de memória de vídeo também é reduzido consideravelmente (geralmente por um fator entre 4 e 6). Este modo deve ser evitado para 2D, pois exibe artefatos perceptíveis.

  • Compressão sem perdas: Esta é a compactação mais comum para assets 2D. Ela mostra assets sem qualquer tipo de artefato, e a compactação do disco é decente. No entanto, ela vai usar uma quantidade consideravelmente maior de memória de vídeo do que a VRAM. Esta também é a configuração recomentada para pixel art.

  • Compressão com perdas: Esta é uma boa opção para grandes assets 2D. Ela possui alguns artefatos, mas menos que a VRAM e o tamanho do arquivo é várias vezes menor em comparação com Sem Perdas ou Sem Compressão. O uso da memória de vídeo não diminui nesse modo; é o mesmo que com a Compressão Sem Serdas ou Sem Compressão.

  • Sem Compressão: Útil apenas para formatos que não podem ser comprimidos (como imagens flutuantes brutas).

Nesta tabela, cada uma das quatro opções são descritas junto com suas vantagens e desvantagens (good = melhor, bad = pior):

Sem Compressão

Compress Lossless

Compress Lossy

Compressão com VRAM

Descrição

Armazenado como pixels brutos

Stored as Lossless WebP / PNG

Stored as Lossy WebP

Armazenado como S3TC/BC ou PVRTC/ETC, dependendo da plataforma

Tamanho no Disco

bad Grande

regular Pequeno

good Muito Pequeno

regular Pequeno

Uso de Memória

bad Grande

bad Grande

bad Grande

good Pequeno

Desempenho

regular Normal

regular Normal

regular Normal

good Rápido

Perda de Qualidade

good Nenhum

good Nenhum

regular Leve

bad Moderado

Tempo de Carregamento

regular Normal

bad Lento

bad Lento

good Rápido

Modo HDR

O Godot suporta texturas de alta faixa dinâmica (como .HDR ou .EXR). Esses são mais úteis como céus panorâmicos equirretangulares de alta faixa dinâmica (a Internet tem muitos se você pesquisar por eles), que substituem Cubemaps no Godot 2.x. Os PCs modernos suportam o formato VRAM BC6H, mas ainda existem muitos que não suportam.

Se você quiser que o Godot garanta compatibilidade total para tipos de texturas, ative a opção "Forçar RGBE".

Normal Map

Ao usar uma textura como normal map, somente os canais vermelho e verde são necessários. Como os algoritmos de compactação de textura regulares produzem artefatos que não parecem tão bons em normal maps, o formato de compactação RGTC é o melhor ajuste para esses dados. Forçar essa opção para "Ativado" fará com que o Godot importe a imagem como RGTC compactada. Por padrão, ele é definido como "Detectar", o que significa que, se a textura for usada como um normal map, ela será alterada para "Ativada" e reimportada automaticamente.

Observe que a compressão RGTC afeta o resultado da imagem de normal map. Você terá que ajustar os shaders personalizados que usam o normal map para levar isso em conta.

Nota

O Godot requer que o normal map use as coordenadas X+, Y- e Z+. Em outras palavras, se você importou um material feito para ser usado com outro motor, pode ser necessário converter o normal map para que seu eixo Y seja invertido. Caso contrário, a direção do normal map pode parecer estar invertida no eixo Y.

Mais informações sobre normal maps (incluindo uma tabela de ordem de coordenadas para motores populares) podem ser encontradas aqui (em Inglês).

Sinalizadores

Existem muitas configurações que podem ser trocadas ao importar uma imagem como textura, dependendo do uso.

Repetição

Esta configuração é mais utilizada em 3D, por isso geralmente é desativada em 2D. Ela faz coordenadas UV que ultrapassem intervalo 0,0 - 1,1 fazerem um "laço" (loop).

A repetição pode ser definida opcionalmente para o modo espelhado.

Filtro

Quando os pixels se tornam maiores que os pixels da tela, esta opção ativa a interpolação linear para eles. O resultado é uma textura mais suave (menos parecida com blocos). Essa configuração pode ser comumente usada em 2D e 3D, mas geralmente é desativada ao criar jogos pixel-perfect.

Mipmaps

Quando os pixels se tornam menores que a tela, os mipmaps entram em ação. Isso ajuda a reduzir o efeito granulado ao reduzir as texturas. Tenha em mente que, em hardwares mais antigos (GLES2, principalmente mobile), existem alguns requisitos para usar mipmaps:

  • A largura e a altura da textura devem ser potências de 2

  • Repetição deve ser habilitada

Tenha em mente o que foi mencionado acima ao criar jogos e aplicativos de telefone, desejar ter compatibilidade total e precisar de mipmaps.

Ao fazer 3D, o mipmap deve ser ativado, pois isso também melhora o desempenho (versões menores da textura são usadas para objetos mais distantes).

Anisotrópico

When textures are near parallel to the view (like floors), this option makes them have more detail by reducing blurriness.

sRGB

Godot uses Linear colorspace when rendering 3D. Textures mapped to albedo or detail channels need to have this option turned on in order for colors to look correct. When set to Detect mode, the texture will be marked as sRGB when used in albedo channels.

Aviso

Since the texture will have its data modified when sRGB is enabled, this means using the same texture in both 2D and 3D will make the texture display with incorrect colors in either 2D or 3D.

To work around this, make a copy of the texture on the filesystem and enable sRGB on one of the copies only. Use the copy with sRGB enabled in 3D, and the copy with sRGB disabled in 2D.

Processo

Alguns processos especiais podem ser aplicados a imagens quando importadas como textura.

Corrigir Borda de Alfa

Isto coloca pixels da mesma cor ao seu redor em transição de transparência para não transparência. Ajuda a aliviar o efeito de contorno ao exportar imagens do Photoshop e similares.

../../../_images/fixedborder.png

É uma boa ideia deixar no valor padrão, a menos que valores específicos sejam necessários.

Alfa previamente multiplicado

Uma alternativa para ajustar bordas escurecidas é usar alfa previamente multiplicado. Habilitando esta opção, a textura será convertida para este formato. Lembre-se que um material que usa o modo de mistura PREMULT ALPHA nos itens da tela terá de ser criado para itens que precisam dele.

HDR como sRGB

Alguns arquivos HDR estão corrompidos e contêm dados de cor sRGB. É aconselhável não usá-los, mas, na pior das hipóteses, ativar essa opção fará com que pareçam corretos.

Inverter Cor

Inverte a cor da imagem. Isto é útil, por exemplo, para converter um mapa de altura gerado por programas externos em um mapa de profundidade para usar Spatial Material.

SVG

Escala

Esta opção se aplica apenas a arquivos SVG. Ele controla a escala da imagem SVG. A escala padrão (1.0) fará com que o SVG importado corresponda à escala original do projeto.