Importer des images

Pourquoi les importer ?

Dans Godot 3+, les fichiers image ne sont plus des ressources natives et doivent être importés. La raison derrière cela est la grande quantité de paramètres de configurations avec lesquels les fichiers image peuvent être importés.

Ce petit tutoriel expliquera quels sont ces paramètres et comment les utiliser au mieux.

Importer des textures

L'action par défaut dans Godot consiste à importer des images sous forme de textures. Ces textures sont stockées dans la mémoire vidéo et ne sont pas accessibles directement. C'est ce qui permet de les dessiner efficacement.

Les options d’importation sont vastes :

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

Détection 3D

Cette option permet à Godot de savoir qu'une texture (importée pour la 2D en tant que défaut) est utilisée en 3D. Si cela se produit, les paramètres sont modifiés pour que les indicateurs de texture soient plus conviviaux pour la 3D (les mipmaps, les filtres et les répétitions sont activés et la compression est modifiée sur VRAM). La texture est également réimportée automatiquement.

Formats d'image pris en charge

Godot peut importer les formats d'image suivants :

  • BMP (.bmp) - Pas de support pour les images 16 bits par pixel. Seules les images de 1, 4, 8, 24 et 32 bits par pixel sont prises en charge.
  • DirectDraw Surface (.dds) - Si des mipmaps sont présents dans la texture, ils seront chargés directement. Cela peut être utilisé pour obtenir des effets à l'aide de mipmaps personnalisés.
  • OpenEXR (.exr) - Supporte le HDR (fortement recommandé pour les ciels panoramiques).
  • Radiance HDR (.hdr) - Supporte le HDR (fortement recommandé pour les ciels panoramiques).
  • JPEG (.jpg, .jpeg) - Ne supporte pas la transparence en raison des limitations du format.
  • PNG (.png) - La précision est limitée à 8 bits par canal lors de l'importation (pas d'images HDR).
  • Truevision Targa (.tga)
  • SVG (.svg, .svgz) - Les SVG sont rastérisés en utilisant NanoSVG lors de leur importation. Le soutien est limité ; les vecteurs complexes peuvent ne pas être rendus correctement. Pour les vecteurs complexes, les rendre en PNGs en utilisant Inkscape est souvent une meilleure solution. Ceci peut être automatisée grâce à son interface en ligne de commande.
  • WebP (.webp)

Note

Si vous avez compilé l'éditeur Godot à partir de la source avec des modules spécifiques désactivés, certains formats peuvent ne pas être disponibles.

Compression

Les images sont parmi les plus nombreuses ressources d'un jeu. Pour les gérer efficacement, elles doivent être compressées. Godot propose plusieurs méthodes de compression, en fonction du cas d'utilisation.

Mode de compression

  • VRAM Compression : C'est le mode de compression le plus courant pour les assets 3D. Le fichier sur le disque est réduit et l'utilisation de la mémoire vidéo est considérablement réduite également (généralement d'un facteur compris entre 4 et 6). Ce mode doit être évité pour le 2D car il présente des artefacts visibles.
  • Lossless Compression : C'est le mode de compression le plus courant pour les assets 2D. Il montre les assets sans aucune sorte d'artefact, et la compression sur le disque est décente. Cela utilisera cependant une quantité de mémoire vidéo considérablement plus importante que la compression VRAM. C'est également le réglage recommandé pour l'art au pixel.
  • Lossy Compression : C'est un bon choix pour les grosses assets 2D. Il comporte quelques artefacts, mais moins que la VRAM et la taille du fichier est plusieurs fois inférieure à celle d'un fichier Lossless ou Uncompressed. L'utilisation de la mémoire vidéo n'est pas diminuée par ce mode ; c'est la même chose qu'avec la compression Lossless ou Uncompressed.
  • Uncompressed : Uniquement utile pour les formats qui ne peuvent pas être compressés (comme les images flottantes brutes).

Dans ce tableau, chacune des quatre options est décrite avec ses avantages et inconvénients (|bon| = Meilleur, |mauvais| = Pire) :

  Non compressé Compresser sans perte (PNG) Compresser avec pertes (WebP) Compression VRAM
Description Stocké sous forme de pixels bruts Stocké en PNG Stocké en WebP Stocké en S3TC/BC ou PVRTC/ETC selon la plate-forme
Taille sur le disque |mauvais| Grand |normal| Petit |bon| Très petit |normal| Petit
Utilisation mémoire |mauvais| Grand |mauvais| Grand |mauvais| Grand |bon| Petit
Performance |normal| Normal |normal| Normal |normal| Normal |bon| Rapide
Perte de qualité |bon| Aucun |bon| Aucun |normal| Léger |mauvais| Modérer
Temps de chargement |normal| Normal |mauvais| Lent |mauvais| Lent |bon| Rapide

Mode HDR

Godot prend en charge les textures à plages dynamiques élevées (comme .HDR ou .EXR). Celles-ci sont surtout utiles en tant que ciel panoramique équi-rectanculaire à plage dynamique élevée (Internet en foisonne si vous en cherchez), qui remplace Cubemaps dans Godot 2.x. Les PC modernes prennent en charge le format BC6H VRAM, mais il en existe encore beaucoup dont ce n'est pas le cas.

Si vous voulez que Godot garantisse une compatibilité totale avec les types de textures, activez l'option "Forcer RGBE".

Normal Map

Lorsque vous utilisez une texture comme carte normale, seuls les canaux rouge et vert sont requis. Étant donné que les algorithmes classiques de compressions de textures produisent des artefacts qui ne semblent pas beaux dans les cartes normales, le format de compression RGTC convient parfaitement à ces données. Si vous forcez cette option sur "Activé", Godot importera l'image au format RGTC compressé. Par défaut, il est défini sur "Détecter", ce qui signifie que si la texture est utilisée comme une carte normale, elle sera remplacée par "Activé" et réimportée automatiquement.

Notez que la compression RGTC affecte l'image normale de la carte résultante. Vous devrez ajuster les shaders personnalisés qui utilisent la carte normale pour en tenir compte.

Note

Godot requiert que la normal map utilise les coordonnées X+, Y- et Z+. En d'autres termes, si vous avez importé un matériau conçu pour être utilisé avec un autre moteur, vous devrez peut-être convertir la carte normale pour que son axe Y soit inversé. Sinon, la direction normale de la carte peut sembler inversée sur l'axe Y.

Vous trouverez plus d'informations sur les nomal map (incluant un tableau des coordonnées pour les moteurs les plus populaires) ici.

Drapeaux

De nombreux paramètres peuvent être modifiés lors de l'importation d'une image en tant que texture, en fonction du cas d'utilisation.

Répéter

Ce paramètre est plus généralement utilisé en 3D , il est donc généralement désactivé en 2D. Cela fait que les coordonnées UV vont au-delà de l'intervalle 0,0 - 1,1 pour "boucler".

La répétition peut être réglée optionnellement en mode miroir.

Filtre

Lorsque les pixels deviennent plus grands que les pixels de l'écran, ces options permettent leur interpolation linéaire. Le résultat est une texture plus lisse (moins pixelisée). Ce paramètre peut être couramment utilisé en 2D et 3D, mais il est généralement désactivé lors de la création de jeux pixel perfect.

Mipmaps

Lorsque les pixels deviennent plus petits que l'écran, les mipmaps entrent en jeu. Cela permet de réduire l'effet granuleux lors de la réduction des textures. Gardez à l'esprit que, dans les matériels plus anciens (GLES2, principalement mobiles), il existe certaines exigences pour utiliser les mipmaps :

  • L’hauteur et largeur d’une texture doivent être une puissance de 2
  • Répéter doit être activé

Gardez à l'esprit ce qui précède lorsque vous créez des jeux et des applications téléphoniques, que vous souhaitez assurer une compatibilité totale, et que vous avez besoin des mipmaps.

Lorsque vous faites de la 3D, mipmap doit être activé car cela améliore également les performances (des versions plus petites de la texture sont utilisées pour les objets plus éloignés).

Anisotropique

Lorsque les textures sont presque parallèles à la vue (comme les sols), cette option leur donne plus de détails en réduisant le flou.

SRGB

Godot utilise l'espace colorimétrique linéaire lors du rendu 3D. Les textures mappées à l'albédo ou aux canaux de détail doivent avoir cette option activée pour que les couleurs soient correctes. Lorsqu'il est réglé sur le mode "Détecter", la texture sera marquée comme SRGB lorsqu'elle est utilisée dans les canaux albédo.

Traitement

Certains processus spéciaux peuvent être appliqués aux images qui sont importées sous forme de textures.

Fixer la bordure alpha

Les pixels de la même couleur environnante passent de la transparence à la non-transparence. Cela aide à atténuer l'effet de contour lors de l'exportation d'images à partir de Photoshop et autres.

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

C'est une bonne idée de le laisser par défaut, sauf si des valeurs spécifiques sont nécessaires.

Alpha prémultiplié

Une alternative pour la correction des frontières sombres consiste à utiliser l’alpha prémultiplié. En activant cette option, la texture sera convertie dans ce format. N'oubliez pas qu'il faudra créer un matériau utilisant le mode de mélange PREMULT ALPHA sur les éléments de canevas qui en ont besoin.

HDR en tant que SRGB

Quelques fichiers HDR sont cassés et contiennent des données de couleur sRGB. Il est conseillé de ne pas les utiliser, mais, dans le pire des cas, activer cette option les fera paraître corrects.

Inverser la couleur

Inverse la couleur de l'image. Ceci est utile, par exemple, pour convertir une carte de hauteur générée par des programmes externes en carte de profondeur à utiliser avec Spatial Material.