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.

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

  • Compression VRAM : C’est le mode de compression le plus courant pour les ressources 3D. Le fichier sur le disque est réduit et l’utilisation de la mémoire vidéo est considérablement réduite également. Pour la 3D, il peut toutefois présenter des artefacts indésirables.
  • Compression sans perte : il s’agit de la compression la plus courante pour les ressources 2D. Elle montre les ressources sans aucun type d’artefact, et la compression du disque est raisonnable. Cependant, elle utilisera beaucoup plus de mémoire vidéo que la VRAM.
  • Compression avec perte: Pour les jeux avec beaucoup de gros fichiers 2D, la compression avec perte peut être un excellent choix. Elle a des artefacts, mais moins que la VRAM et la taille du fichier est presque un dixième de la compression sans perte.
  • Non-compressé : utile seulement pour les formats qui ne peuvent être compressés (comme les flottants brute).

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,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.

Note that RGTC compression affects the resulting normal map image. You will have to adjust custom shaders that use the normal map to take this into account.

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.