Choisir le bon format d'image pour vos textures affecte la taille de fichier, la qualité visuelle, la compatibilité et l'efficacité du workflow. Il n'existe pas de format unique idéal — le bon choix dépend de si vous ciblez le web, un moteur de jeu, un moteur de rendu hors ligne ou un pipeline d'archivage. Ce guide compare les formats de textures les plus courants et quand utiliser chacun.
PNG : la norme sans perte
PNG utilise une compression sans perte, ce qui signifie que chaque pixel est préservé exactement tel qu'il a été créé. Il supporte les canaux 8 bits et 16 bits, la transparence alpha complète et les profils de couleur intégrés. PNG est universellement supporté par chaque navigateur, éditeur d'images et moteur de jeu.
L'inconvénient est la taille de fichier. Une texture RGBA PNG de 2048 px peut facilement atteindre 8–15 Mo. Pour la livraison web, c'est trop volumineux. Pour l'archivage et l'échange entre outils (export depuis Substance Painter, import dans Blender), PNG est excellent car aucune qualité n'est perdue. Utilisez PNG lorsque la fidélité compte plus que la taille de fichier : cartes normales, cartes de déplacement et toute texture qui sera davantage traitée.
JPEG : petit mais avec perte
JPEG utilise une compression avec perte basée sur la DCT qui élimine les détails haute fréquence pour obtenir de petites tailles de fichier. Une texture de 2048 px qui fait 12 Mo en PNG pourrait ne faire que 500 Ko en JPEG à la qualité 85. JPEG ne supporte pas la transparence alpha et sa compression par blocs crée des artefacts visibles autour des bords durs — le texte, les lignes nettes et les limites à fort contraste en souffrent.
JPEG fonctionne bien pour les textures diffuses/albédo avec des dégradés doux et des détails organiques : fil de bois, tissage de tissu, surfaces de pierre. Évitez JPEG pour les cartes normales (la compression détruit la précision directionnelle), les masques (pas de canal alpha) ou toute texture avec des bords durs. La qualité 80–85 est le point idéal typique pour le travail de texture.
WebP : le meilleur des deux mondes
WebP supporte à la fois la compression avec et sans perte, la transparence alpha et l'animation. Le WebP avec perte est 25–35 % plus petit que le JPEG équivalent. Le WebP sans perte est 20–25 % plus petit que le PNG. Le support navigateur est maintenant universel (97 %+), faisant de WebP le format recommandé pour les textures livrées sur le web.
Pour les moteurs de jeu et les outils DCC, le support WebP est moins cohérent. Blender, Unreal Engine et Unity supportent tous l'import WebP, mais certains plugins et outils plus anciens ne le font pas. Utilisez WebP principalement pour la livraison web finale et continuez avec PNG pour l'échange entre outils.
EXR et HDR : couleur linéaire et haute plage dynamique
OpenEXR (.exr) stocke des données pixel en virgule flottante dans un espace colorimétrique linéaire avec une précision de 16 bits ou 32 bits par canal. Cela le rend essentiel pour le stockage de cartes PBR — cartes normales, déplacement, rugosité et toutes les données qui doivent être mathématiquement précises plutôt que visuellement plaisantes. EXR supporte plusieurs couches nommées dans un seul fichier (albédo, normal, rugosité en couches séparées), la compression sans perte (ZIP, PIZ) et des métadonnées arbitraires.
HDR (.hdr, format Radiance) est un ancien format en virgule flottante utilisé principalement pour les cartes d'environnement et les sondes IBL (éclairage basé sur l'image). Il stocke RGB dans un encodage RGBE compact de 32 bits. Pour les cartes de textures, EXR est préféré à HDR en raison de sa plus grande précision et de ses fonctionnalités.
Les tailles de fichier sont grandes : un EXR de 2048 px avec des canaux flottants 16 bits peut faire 24–48 Mo selon la compression. Ces formats sont destinés aux pipelines de production, pas à la livraison web.
DDS et KTX2 : formats compressés pour GPU
DDS (DirectDraw Surface) et KTX2 (Khronos Texture) sont des formats conteneurs pour les données de texture compressées pour GPU (BC1–BC7, ASTC, ETC2). Contrairement à PNG ou JPEG qui doivent être décompressés en pixels bruts avant d'être téléchargés sur le GPU, les textures DDS/KTX2 sont téléchargées directement dans leur forme compressée. Cela signifie qu'elles utilisent 4–8× moins de VRAM que les textures non compressées et se chargent plus vite car il n'y a pas d'étape de décompression côté CPU.
DDS est la norme sur PC (DirectX). KTX2 est l'équivalent Khronos/OpenGL/Vulkan et est le format requis pour les modèles 3D glTF. Les moteurs de jeu gèrent la compression lors de l'import des ressources — vous fournissez des textures sources PNG ou EXR et le pipeline de build génère automatiquement DDS ou KTX2. Vous devrez rarement créer ces formats manuellement.
Résumé de la comparaison des formats
- PNG — Sans perte, grands fichiers, support universel. Idéal pour l'archivage, l'échange entre outils et les cartes nécessitant de la précision.
- JPEG — Avec perte, petits fichiers, pas d'alpha. Idéal pour les textures diffuses avec des détails doux où la taille compte.
- WebP — Avec ou sans perte, plus petits fichiers web, support alpha. Idéal pour la livraison web.
- EXR — Précision flottante, couleur linéaire, grands fichiers. Idéal pour les cartes de données PBR et les pipelines de production.
- DDS/KTX2 — Compression native GPU, chargement rapide, VRAM réduite. Idéal pour les moteurs en temps réel.
Toutes les textures générées sur Texturize s'exportent en PNG pour une compatibilité maximale. Convertissez en WebP pour le web avec n'importe quel outil image, ou laissez le pipeline de build de votre moteur de jeu gérer automatiquement la conversion en DDS ou KTX2. Essayez le générateur Béton ou Métal et expérimentez l'export à différentes résolutions.