Importing images

Supported image formats

Godot can import the following image formats:

  • BMP (.bmp) - No support for 16-bit per pixel images. Only 1-bit, 4-bit, 8-bit, 24-bit, and 32-bit per pixel images are supported.
  • DirectDraw Surface (.dds) - If mipmaps are present in the texture, they will be loaded directly. This can be used to achieve effects using custom mipmaps.
  • OpenEXR (.exr) - Supports HDR (highly recommended for panorama skies).
  • Radiance HDR (.hdr) - Supports HDR (highly recommended for panorama skies).
  • JPEG (.jpg, .jpeg) - Doesn't support transparency per the format's limitations.
  • PNG (.png) - Precision is limited to 8 bits per channel upon importing (no HDR images).
  • Truevision Targa (.tga)
  • SVG (.svg, .svgz) - SVGs are rasterized using NanoSVG when importing them. Support is limited; complex vectors may not render correctly. For complex vectors, rendering them to PNGs using Inkscape is often a better solution. This can be automated thanks to its command-line interface.
  • WebP (.webp)

Nota

If you've compiled the Godot editor from source with specific modules disabled, some formats may not be available.

Importing textures

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 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 as flags da textura são favoráveis à 3D (mipmaps, filtro e repeat se tornam habilitados e compressão é mudada para VRAM). 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

  • VRAM Compression: This is the most common compression mode for 3D assets. Size on disk is reduced and video memory usage is also decreased considerably (usually by a factor between 4 and 6). This mode should be avoided for 2D as it exhibits noticeable artifacts.
  • Lossless Compression: This is the most common compression mode for 2D assets. It shows assets without any kind of artifacting, and disk compression is decent. It will use considerably more amount of video memory than VRAM Compression, though. This is also the recommended setting for pixel art.
  • Lossy Compression: This is a good choice for large 2D assets. It has some artifacts, but less than VRAM and the file size is several times lower compared to Lossless or Uncompressed. Video memory usage isn't decreased by this mode; it's the same as with Lossless Compression or Uncompressed.
  • Uncompressed: Only useful for formats that can't be compressed (such as raw float images).

In this table, each of the four options are described together with their advantages and disadvantages (good = best, bad = worst):

  Descomprimido Comprimir sem perdas (PNG) Comprimir com perdas (WebP) Comprimir com VRAM
Descrição Armazenado como pixels brutos Armazenado como PNG Armazenado como WebP Stored as S3TC/BC or PVRTC/ETC depending on platform
Tamanho no Disco |ruim| Ampla regular Pequeno |bom| Muito Pequeno regular Pequeno
Uso de Memória |ruim| Ampla |ruim| Ampla |ruim| Ampla |bom| Pequeno
Performance regular Normal regular Normal regular Normal |bom | Rápido
Perda de Qualidade |bom| Nenhum |bom| Nenhum regular Leve |ruim| Moderado
Tempo de Carregamento regular Normal |ruim| Lento |ruim| Lento |bom | Rápido

Modo HDR

O Godot suporta texturas de alta faixa dinâmica (como .HDR ou .EXR). Esses são principalmente úteis como céus panorâmicos equirretangulares (ou [i]skyboxes[/i]) 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).

Bandeiras

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

Repetir

This setting is most commonly used in 3D, and is therefore generally disabled in 2D. It sets UV coordinates going beyond the 0,0 - 1,1 range to "loop".

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

Filtro

When pixels become larger than the screen pixels, this option enables linear interpolation for them. The result is a smoother (less blocky) texture. This setting can be commonly used in 2D and 3D, but it's usually disabled when making pixel perfect games.

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 usa o espaço de cores Linear ao renderizar em 3D. Texturas mapeadas para albedo ou canais de detalhes precisam ter essa opção ativada para que as cores pareçam corretas. Quando definido para o modo "Detectar", a textura será marcada como SRGB quando usada em canais de albedo.

Processo

Some special processes can be applied to images when imported as textures.

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.