Comparatif

DDS et KTX : les deux formats de texture compressée pour le rendu 3D temps réel

DDS et KTX stockent tous deux une texture déjà compressée pour le GPU plutôt que des pixels bruts, l'un lié à DirectX, l'autre pensé neutre entre API graphiques.

Ces deux formats partagent un principe qui les distingue de toute image classique : ils stockent une texture déjà compressée dans un format que le processeur graphique (GPU) décode nativement, sans décompression logicielle préalable, ce qui explique pourquoi ni l’un ni l’autre ne s’ouvre dans un éditeur d’image généraliste.

FormatOrigineNeutralité APIMipmapsCompression universelle
DDSMicrosoft (DirectX)Historiquement liée à Direct3DOuiNon
KTXKhronos GroupPensée neutre (OpenGL, Vulkan, WebGL)OuiOui (KTX2 + Basis Universal)

Le DDS (DirectDraw Surface), spécifié par Microsoft dans le cadre de DirectX, reste l’un des formats de texture les plus répandus du jeu vidéo : ses formats de compression GPU natifs (DXT/BC1 à BC7) réduisent à la fois le poids sur disque et l’empreinte en mémoire vidéo, et le fichier peut embarquer directement une chaîne complète de mipmaps (la même texture à des résolutions décroissantes). Il reste historiquement lié à l’écosystème DirectX/Direct3D, même si de nombreux moteurs multiplateformes le prennent en charge en dehors de Windows.

Le KTX (Khronos Texture), défini par le même groupe qui maintient OpenGL, Vulkan et glTF, vise au contraire une neutralité vis-à-vis de l’API graphique cible dès sa conception : sa signature de 12 octets, calquée sur la construction de celle du PNG, permet une détection fiable, et le format peut embarquer plusieurs types de compression GPU selon la plateforme visée plutôt qu’un seul écosystème.

La version KTX2, ratifiée par Khronos en avril 2021, ajoute un avantage que le DDS n’a pas : la compression universelle Basis, transcodable à la volée vers le format natif du GPU de l’appareil au moment du chargement. Un développeur peut ainsi distribuer un seul fichier KTX2 plutôt que plusieurs variantes DDS/PVR/ETC adaptées à chaque famille de matériel, un gain concret exploité par l’extension KHR_texture_basisu du glTF pour réduire le poids des scènes 3D distribuées sur le web.

DDS reste donc le choix par défaut d’un pipeline construit autour de DirectX ; KTX (en particulier KTX2 avec Basis Universal) s’impose plutôt pour un contenu 3D destiné à circuler entre plusieurs API graphiques ou plateformes, y compris le web via glTF.

Voir les fiches techniques complètes →

Formats concernés

Catégories concernées

Voir aussi

Questions fréquentes

Comment convertir un DDS en PNG pour le retoucher ?

L'outil en ligne de commande texconv, fourni par Microsoft avec la bibliothèque DirectXTex, décode un DDS et l'écrit dans un format d'image classique : `texconv texture.dds -ft png`. Il fait aussi l'opération inverse, avec génération des mipmaps et compression BC.

Quel outil produit ou inspecte un fichier KTX2 ?

KTX-Software, l'implémentation de référence de Khronos, fournit la commande ktx : `ktx create` fabrique un KTX2 à partir d'images, `ktx info` affiche son contenu, `ktx validate` vérifie sa conformité et `ktx extract` en exporte les images.

Sources

Dernière mise à jour :