O que é o formato de ficheiro VTF?
Um arquivo .vtf é um arquivo Valve Texture Format - o contêiner de textura binário proprietário usado pela engine Source da Valve, introduzido pela primeira vez com Half-Life 2 em novembro de 2004. Os arquivos VTF armazenam dados de textura prontos para GPU, compactados ou não, junto com uma pirâmide de mip-map pré-construída e uma pequena miniatura compactada em DXT1 usada para pré-visualizações na engine.
O arquivo começa com a assinatura mágica de 4 bytes VTF\0 (hex 56 54 46 00) seguida por um par de versão major/minor (a major é sempre 7; a minor varia de 0 a 6). O cabeçalho codifica as dimensões da imagem, contagem de quadros, profundidade (para texturas de volume), contagem de faces de cube-map, um vetor de cor de refletividade e um enum de formato de pixel. A versão 7.3 adicionou uma seção de dados de recursos extensível para blocos de metadados arbitrários definidos pela engine.
Os formatos de pixel suportados incluem DXT1 (4 bpp), DXT5 (8 bpp), BGR888 (24 bpp), BGRA8888 (32 bpp) e RGBA16161616F (64 bpp HDR). As dimensões da imagem devem ser potências de dois, até 4096×4096 em uso típico.
Texturas .vtf são sempre pareadas com um arquivo .vmt (Valve Material Type) que define parâmetros de shader, tipo de superfície e modos de mesclagem, referenciando o .vtf pelo nome. O VTFEdit é a ferramenta padrão da comunidade para criar e editar arquivos .vtf fora do SDK da Valve.
No Source 2, o equivalente de textura compilada é o .vtex_c, produzido pelo pipeline VTex em vez do VTFEdit.
Segurança e proteção
RISCO: LOWO VTF é um arquivo de dados de textura sem código executável. Arquivos VTF maliciosamente criados poderiam, teoricamente, acionar bugs de analisador no VTFLib/VTFEdit (estouros de buffer em campos de dimensão ou formato), mas esta é uma preocupação teórica. Na prática, abra apenas arquivos VTF de fontes de jogos ou mods confiáveis.
Detalhes do formato
em resumoProgramas que abrem arquivos VTF
Detalhes técnicos
especificação profunda| Bytes mágicos | 56 54 46 00 («VTF\0») no deslocamento 0; versão major (sempre 7) e versão minor (0-6) no deslocamento 4 como dois DWORDs |
| Ordem dos bytes | Little-endian |
| Formatos de pixel | DXT1 (4 bpp), DXT3, DXT5 (8 bpp), BGR888 (24 bpp), BGRA8888 (32 bpp), RGBA16161616F (64 bpp HDR); selecionados pelo enum de formato no cabeçalho |
| Pirâmide de mip-map | Cadeia completa de mip armazenada do menor para o maior nível de mip; contagem de mip especificada no cabeçalho; usada para renderização de LOD |
| Miniatura | Pequena pré-visualização de baixa resolução compactada em DXT1 armazenada na área do cabeçalho; usada pela engine para identificação rápida de recursos |
| Tipos de textura | Texturas 2D, cube maps (6 faces), texturas de volume/3D, sprites animados (multi-quadro), normal maps |
| Restrições de dimensão | Potência de dois obrigatória (pré-v7.5); máximo típico 4096x4096; algumas versões da Source suportam até 16384x16384 |
| Seção de recursos | Blocos de dados de recursos extensíveis adicionados na v7.3, permitindo metadados arbitrários definidos pela engine; usados para dados de particle sheet, etc. |
| Tamanho típico | 4 KB - 32 MB dependendo da resolução, níveis de mip e formato de pixel |
| Formato pareado | Sempre usado com um arquivo .vmt (Valve Material Type) que define shader, modo de mesclagem e tipo de superfície - o .vtf contém apenas dados de pixel |
| Compressão | Sem compressão ao nível de arquivo; a compressão de textura de GPU (DXT1/DXT5/BCn) é incorporada nos dados de pixel armazenados |
| Equivalente no Source 2 | .vtex_c (compilado pelo pipeline VTex); o VTF continua atual para títulos da engine Source (Team Fortress 2, CS:GO, etc.) |
| Lançado | 2004 (Half-Life 2 and Source engine launch) |
| Versão mais recente | VTF 7.5 (Source engine); VTF 7.6 (Source 2 / Portal 2 on Linux) |
| Especificação | developer.valvesoftware.com |
Conversões de VTF
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos VTF.