Hva er VTF-filformatet?
En .vtf-fil er en Valve Texture Format-fil - den proprietære binære teksturbeholderen som brukes av Valves Source-motor, først introdusert med Half-Life 2 i november 2004. VTF-filer lagrer komprimerte eller ukomprimerte GPU-klare teksturdata sammen med en forhåndsbygd mip-map-pyramide og et lite DXT1-komprimert miniatyrbilde som brukes til forhåndsvisninger i motoren.
Filen begynner med den 4-byte lange magiske signaturen VTF\0 (hex 56 54 46 00) etterfulgt av et versjonspar for major/minor (major er alltid 7; minor varierer fra 0 til 6). Headeren koder bildedimensjoner, antall rammer (frames), dybde (for volumteksturer), antall cube-map-flater, en reflektivitetsfargevektor og en enum for pikselformat. Versjon 7.3 la til en utvidbar ressursdataseksjon for vilkårlige metadatablokker definert av motoren.
Støttede pikselformater inkluderer DXT1 (4 bpp), DXT5 (8 bpp), BGR888 (24 bpp), BGRA8888 (32 bpp) og RGBA16161616F (64 bpp HDR). Bildedimensjoner må være potenser av to, opptil 4096×4096 i typisk bruk.
.vtf-teksturer er alltid parret med en .vmt (Valve Material Type)-fil som definerer shader-parametere, overflatetype og blandingsmoduser, og refererer til .vtf-filen ved navn. VTFEdit er standardverktøyet i fellesskapet for å lage og redigere .vtf-filer utenfor Valves SDK.
I Source 2 er den kompilerte teksturekvivalenten .vtex_c, produsert av VTex-pipelinen i stedet for VTFEdit.
Sikkerhet og trygghet
RISIKO: LOWVTF er en teksturdatafil uten kjørbar kode. Ondsinnede VTF-filer kan teoretisk sett utløse feil i parseren til VTFLib/VTFEdit (bufferoverflyt i dimensjons- eller formatfelt), men dette er en teoretisk bekymring. I praksis bør du kun åpne VTF-filer fra pålitelige spill- eller mod-kilder.
Formatdetaljer
i et nøtteskallProgrammer som åpner VTF-filer
Tekniske detaljer
dyp spesifikasjon| Magiske bytes | 56 54 46 00 («VTF\0») ved offset 0; major-versjon (alltid 7) og minor-versjon (0-6) ved offset 4 som to DWORDs |
| Byterekkefølge | Little-endian |
| Pikselformater | DXT1 (4 bpp), DXT3, DXT5 (8 bpp), BGR888 (24 bpp), BGRA8888 (32 bpp), RGBA16161616F (64 bpp HDR); valgt via format-enum i headeren |
| Mip-map-pyramide | Full mip-kjede lagret fra minste til største mip-nivå; mip-antall spesifisert i header; brukes for LOD-rendering |
| Miniatyrbilde | Lite DXT1-komprimert forhåndsvisning med lav oppløsning lagret i header-området; brukes av motoren for rask identifisering av ressurser |
| Teksturtyper | 2D-teksturer, cube maps (6 flater), volum/3D-teksturer, animerte sprites (flere rammer), normal maps |
| Dimensjonsbegrensninger | Potens-av-to påkrevd (før v7.5); typisk maksimum 4096x4096; noen Source-versjoner støtter opptil 16384x16384 |
| Ressursseksjon | Utvidbare ressursdatablokker lagt til i v7.3, som tillater vilkårlige metadatakomponenter definert av motoren; brukes for partikkelarkdata osv. |
| Typisk størrelse | 4 KB - 32 MB avhengig av oppløsning, mip-nivåer og pikselformat |
| Parret format | Brukes alltid sammen med en .vmt (Valve Material Type)-fil som definerer shader, blandingsmodus og overflatetype - .vtf inneholder kun pikseldata |
| Komprimering | Ingen komprimering på filnivå; GPU-teksturkomprimering (DXT1/DXT5/BCn) er bakt inn i de lagrede pikseldataene |
| Source 2-ekvivalent | .vtex_c (kompilert av VTex-pipelinen); VTF forblir gjeldende for Source-motor-titler (Team Fortress 2, CS:GO, osv.) |
| Utgitt | 2004 (Half-Life 2 and Source engine launch) |
| Siste versjon | VTF 7.5 (Source engine); VTF 7.6 (Source 2 / Portal 2 on Linux) |
| Spesifikasjon | developer.valvesoftware.com |
VTF-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om VTF-filer.