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) - Arquivos WebP suportam transparência e podem ser compactados com ou sem perdas. A precisão é limitada a 8 bits por canal.

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

Detectar 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".

Mapa Normal

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

Godot requires the normal map to use the X+, Y+ and Z+ coordinates, this is known as OpenGL style. If you've imported a material made to be used with another engine it may be DirectX style, in which case the normal map needs to be converted so its Y axis is flipped.

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.

Repetir

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

Como a textura terá seus dados modificados quando o sRGB for habilitado, isso significa que usar a mesma textura em 2D e 3D fará com que a textura seja exibida com cores incorretas em ambos 2D ou 3D.

Para contornar isso, faça uma cópia da textura no sistema de arquivos e habilite o sRGB em apenas uma das cópias. Use a cópia com sRGB habilitado em 3D e a cópia com sRGB desabilitado em 2D.

Processar

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

Corrigir Alpha da Borda

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.