Vad är filformatet VTF?
En .vtf-fil är en Valve Texture Format-fil - den proprietära binära texturbehållaren som används av Valves Source-motor, först introducerad med Half-Life 2 i november 2004. VTF-filer lagrar komprimerad eller okomprimerad GPU-klar texturdata tillsammans med en förbyggd mip-map-pyramid och en liten DXT1-komprimerad miniatyrbild som används för förhandsvisningar i motorn.
Filen börjar med den 4-byte långa magiska signaturen VTF\0 (hex 56 54 46 00) följt av ett huvud-/underversionspar (huvudversion är alltid 7; underversion sträcker sig från 0 till 6). Headern kodar bilddimensioner, antal bildrutor, djup (för volymtexturer), antal cube-map-ytor, en reflektionsfärgvektor och en pixelformat-enum. Version 7.3 lade till en utökbar resursdatasektion för godtyckliga motordefinierade metadatablock.
Pixelformat som stöds inkluderar DXT1 (4 bpp), DXT5 (8 bpp), BGR888 (24 bpp), BGRA8888 (32 bpp) och RGBA16161616F (64 bpp HDR). Bilddimensioner måste vara potenser av två, upp till 4096×4096 vid typisk användning.
.vtf-texturer paras alltid ihop med en .vmt (Valve Material Type)-fil som definierar shader-parametrar, yttyp och blandningslägen, och refererar till .vtf-filen vid namn. VTFEdit är standardverktyget i communityn för att skapa och redigera .vtf-filer utanför Valves SDK.
I Source 2 är den kompilerade texturekvivalenten .vtex_c, producerad av VTex-pipelinen snarare än VTFEdit.
Säkerhet & trygghet
RISK: LOWVTF är en texturdatafil utan körbar kod. Skadligt utformade VTF-filer skulle teoretiskt kunna utlösa buggar i tolkaren i VTFLib/VTFEdit (buffertspill i dimensions- eller formatfält), men detta är ett teoretiskt bekymmer. I praktiken bör du endast öppna VTF-filer från betrodda spel- eller mod-källor.
Formatdetaljer
i ett nötskalProgram som öppnar VTF-filer
Tekniska detaljer
djup specifikation| Magiska bytes | 56 54 46 00 („VTF\0”) vid offset 0; huvudversion (alltid 7) och underversion (0-6) vid offset 4 som två DWORDs |
| Byteordning | Little-endian |
| Pixelformat | DXT1 (4 bpp), DXT3, DXT5 (8 bpp), BGR888 (24 bpp), BGRA8888 (32 bpp), RGBA16161616F (64 bpp HDR); väljs via format-enum i headern |
| Mip-map-pyramid | Fullständig mip-kedja lagrad från minsta till största mip-nivå; mip-antal specificeras i headern; används för LOD-rendering |
| Miniatyrbild | Liten DXT1-komprimerad lågupplöst förhandsvisning lagrad i header-området; används av motorn för snabb tillgångsidentifiering |
| Texturtyper | 2D-texturer, cube-maps (6 ytor), volym/3D-texturer, animerade sprites (flera bildrutor), normal-maps |
| Dimensionsbegränsningar | Potens-av-två krävs (före v7.5); typiskt maximum 4096x4096; vissa Source-versioner stöder upp till 16384x16384 |
| Resurssektion | Utökbara resursdatablock tillagda i v7.3, vilket tillåter godtycklig motordefinierad metadata; används för particle sheet-data etc. |
| Typisk storlek | 4 KB - 32 MB beroende på upplösning, mip-nivåer och pixelformat |
| Parat format | Används alltid med en .vmt (Valve Material Type)-fil som definierar shader, blandningsläge och yttyp - .vtf innehåller endast pixeldata |
| Komprimering | Ingen komprimering på filnivå; GPU-texturkomprimering (DXT1/DXT5/BCn) är inbakad i den lagrade pixeldatan |
| Source 2-ekvivalent | .vtex_c (kompilerad av VTex-pipelinen); VTF förblir aktuell för Source-motor-titlar (Team Fortress 2, CS:GO, etc.) |
| Släppt | 2004 (Half-Life 2 and Source engine launch) |
| Senaste version | VTF 7.5 (Source engine); VTF 7.6 (Source 2 / Portal 2 on Linux) |
| Specifikation | developer.valvesoftware.com |
VTF-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om VTF-filer.