Qu'est-ce que le format de fichier VTF ?
Un fichier .vtf est un fichier Valve Texture Format - le conteneur de texture binaire propriétaire utilisé par le moteur Source de Valve, introduit pour la première fois avec Half-Life 2 en novembre 2004. Les fichiers VTF stockent des données de texture compressées ou non compressées prêtes pour le GPU, ainsi qu'une pyramide de mip-maps pré-générée et une petite vignette compressée en DXT1 utilisée pour les aperçus du moteur.
Le fichier commence par la signature magique de 4 octets VTF\0 (hex 56 54 46 00) suivie d'une paire de versions majeure/mineure (la majeure est toujours 7 ; la mineure varie de 0 à 6). L'en-tête encode les dimensions de l'image, le nombre d'images (frames), la profondeur (pour les textures volumiques), le nombre de faces de cube-map, un vecteur de couleur de réflectivité et une énumération du format de pixels. La version 7.3 a ajouté une section de données de ressources extensible pour des blocs de métadonnées arbitraires définis par le moteur.
Les formats de pixels pris en charge incluent DXT1 (4 bpp), DXT5 (8 bpp), BGR888 (24 bpp), BGRA8888 (32 bpp) et RGBA16161616F (64 bpp HDR). Les dimensions de l'image doivent être des puissances de deux, jusqu'à 4096×4096 en usage typique.
Les textures .vtf sont toujours associées à un fichier .vmt (Valve Material Type) qui définit les paramètres du shader, le type de surface et les modes de mélange, en référençant le .vtf par son nom. VTFEdit est l'outil communautaire standard pour créer et éditer des fichiers .vtf en dehors du SDK de Valve.
Dans Source 2, l'équivalent de la texture compilée est .vtex_c, produit par le pipeline VTex plutôt que par VTFEdit.
Sécurité et sûreté
RISQUE : LOWLe VTF est un fichier de données de texture sans code exécutable. Des fichiers VTF malveillants pourraient théoriquement déclencher des bogues d'analyse dans VTFLib/VTFEdit (dépassements de tampon dans les champs de dimension ou de format), mais il s'agit d'une préoccupation théorique. En pratique, n'ouvrez que des fichiers VTF provenant de sources de jeux ou de mods de confiance.
Détails du format
en brefProgrammes qui ouvrent les fichiers VTF
Détails techniques
spécifications approfondies| Octets magiques | 56 54 46 00 (« VTF\0 ») à l'offset 0 ; version majeure (toujours 7) et version mineure (0-6) à l'offset 4 sous forme de deux DWORDs |
| Ordre des octets | Little-endian |
| Formats de pixels | DXT1 (4 bpp), DXT3, DXT5 (8 bpp), BGR888 (24 bpp), BGRA8888 (32 bpp), RGBA16161616F (64 bpp HDR) ; sélectionnés par l'énumération de format dans l'en-tête |
| Pyramide de mip-maps | Chaîne complète de mip-maps stockée du plus petit au plus grand niveau ; nombre de mip-maps spécifié dans l'en-tête ; utilisé pour le rendu LOD |
| Vignette | Petit aperçu basse résolution compressé en DXT1 stocké dans la zone d'en-tête ; utilisé par le moteur pour une identification rapide des ressources |
| Types de textures | Textures 2D, cube maps (6 faces), textures volumiques/3D, sprites animés (multi-images), normal maps |
| Contraintes de dimensions | Puissance de deux requise (avant v7.5) ; maximum typique 4096x4096 ; certaines versions de Source supportent jusqu'à 16384x16384 |
| Section de ressources | Blocs de données de ressources extensibles ajoutés dans la v7.3, permettant des métadonnées arbitraires définies par le moteur ; utilisé pour les données de feuilles de particules, etc. |
| Taille typique | 4 Ko - 32 Mo selon la résolution, les niveaux de mip-maps et le format de pixels |
| Format associé | Toujours utilisé avec un fichier .vmt (Valve Material Type) définissant le shader, le mode de mélange et le type de surface - le .vtf ne contient que les données de pixels |
| Compression | Pas de compression au niveau du fichier ; la compression de texture GPU (DXT1/DXT5/BCn) est intégrée dans les données de pixels stockées |
| Équivalent Source 2 | .vtex_c (compilé par le pipeline VTex) ; le VTF reste actuel pour les titres du moteur Source (Team Fortress 2, CS:GO, etc.) |
| Publié | 2004 (Half-Life 2 and Source engine launch) |
| Dernière version | VTF 7.5 (Source engine); VTF 7.6 (Source 2 / Portal 2 on Linux) |
| Spécification | developer.valvesoftware.com |
Conversions VTF
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers VTF.
Foire aux questions
Comment ouvrir un fichier VTF sans avoir de jeu installé ?
Comment convertir un VTF en PNG ou TGA ?
vtfcmd -file input.vtf -output out.png -exportformat png