Was ist das VTF-Dateiformat?
Eine .vtf-Datei ist eine Valve Texture Format-Datei - der proprietäre binäre Textur-Container der Source-Engine von Valve, der erstmals mit Half-Life 2 im November 2004 eingeführt wurde. VTF-Dateien speichern komprimierte oder unkomprimierte GPU-bereite Texturdaten zusammen mit einer vorgefertigten Mip-Map-Pyramide und einem kleinen DXT1-komprimierten Vorschaubild (Thumbnail), das für Engine-Vorschauen verwendet wird.
Die Datei beginnt mit der 4-Byte-Magic-Signatur VTF\0 (Hex 56 54 46 00), gefolgt von einem Major/Minor-Versionspaar (Major ist immer 7; Minor reicht von 0 bis 6). Der Header kodiert Bildabmessungen, Frame-Anzahl, Tiefe (für Volumen-Texturen), Cube-Map-Seitenanzahl, einen Reflektivitäts-Farbvektor und ein Pixelformat-Enum. Version 7.3 fügte einen erweiterbaren Ressourcen-Datenabschnitt für beliebige Engine-definierte Metadaten-Chunks hinzu.
Unterstützte Pixelformate umfassen DXT1 (4 bpp), DXT5 (8 bpp), BGR888 (24 bpp), BGRA8888 (32 bpp) und RGBA16161616F (64 bpp HDR). Die Bildabmessungen müssen Zweierpotenzen sein, in der typischen Verwendung bis zu 4096×4096.
.vtf-Texturen sind immer mit einer .vmt (Valve Material Type)-Datei gekoppelt, die Shader-Parameter, Oberflächentyp und Mischmodi definiert und die .vtf namentlich referenziert. VTFEdit ist das Standard-Community-Tool zum Erstellen und Bearbeiten von .vtf-Dateien außerhalb des SDK von Valve.
In Source 2 ist das kompilierte Textur-Äquivalent .vtex_c, das durch die VTex-Pipeline anstelle von VTFEdit erzeugt wird.
Sicherheit
RISIKO: LOWVTF ist eine Texturdatendatei ohne ausführbaren Code. Bösartig manipulierte VTF-Dateien könnten theoretisch Parser-Fehler in VTFLib/VTFEdit auslösen (Buffer Overflows in Abmessungs- oder Formatfeldern), aber dies ist ein theoretisches Bedenken. Öffnen Sie in der Praxis VTF-Dateien nur aus vertrauenswürdigen Spiele- oder Mod-Quellen.
Formatdetails
kurz gefasstProgramme zum Öffnen von VTF-Dateien
Technische Details
technische Spezifikation| Magic Bytes | 56 54 46 00 („VTF\0”) bei Offset 0; Major-Version (immer 7) und Minor-Version (0-6) bei Offset 4 als zwei DWORDs |
| Byte-Reihenfolge | Little-endian |
| Pixelformate | DXT1 (4 bpp), DXT3, DXT5 (8 bpp), BGR888 (24 bpp), BGRA8888 (32 bpp), RGBA16161616F (64 bpp HDR); ausgewählt durch Format-Enum im Header |
| Mip-Map-Pyramide | Vollständige Mip-Kette gespeichert von der kleinsten bis zur größten Mip-Stufe; Mip-Anzahl im Header spezifiziert; verwendet für LOD-Rendering |
| Vorschaubild (Thumbnail) | Kleine DXT1-komprimierte Vorschau mit niedriger Auflösung im Header-Bereich; wird von der Engine zur schnellen Asset-Identifizierung verwendet |
| Texturtypen | 2D-Texturen, Cube-Maps (6 Seiten), Volumen-/3D-Texturen, animierte Sprites (Multi-Frame), Normal-Maps |
| Abmessungsbeschränkungen | Zweierpotenz erforderlich (vor v7.5); typisches Maximum 4096x4096; einige Source-Versionen unterstützen bis zu 16384x16384 |
| Ressourcen-Abschnitt | Erweiterbare Ressourcen-Datenchunks in v7.3 hinzugefügt, die beliebige Engine-definierte Metadaten ermöglichen; verwendet für Particle-Sheet-Daten etc. |
| Typische Größe | 4 KB - 32 MB abhängig von Auflösung, Mip-Stufen und Pixelformat |
| Gekoppeltes Format | Wird immer mit einer .vmt (Valve Material Type)-Datei verwendet, die Shader, Mischmodus und Oberflächentyp definiert - die .vtf enthält nur Pixeldaten |
| Komprimierung | Keine Komprimierung auf Dateiebene; GPU-Texturkomprimierung (DXT1/DXT5/BCn) ist in die gespeicherten Pixeldaten eingebettet |
| Source 2-Äquivalent | .vtex_c (kompiliert durch VTex-Pipeline); VTF bleibt aktuell für Source-Engine-Titel (Team Fortress 2, CS:GO, etc.) |
| Veröffentlicht | 2004 (Half-Life 2 and Source engine launch) |
| Neueste Version | VTF 7.5 (Source engine); VTF 7.6 (Source 2 / Portal 2 on Linux) |
| Spezifikation | developer.valvesoftware.com |
VTF-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu VTF-Dateien.