vtex2 is a Valve Texture Format conversion and creation tool. It has a CLI and a GUI component for viewing, packing and otherwise converting the files.
Command help documentation and usage examples can be shown on the command line using vtex2 --help
.
For action-specific help, use vtex2 <action> --help
.
Creating a VTF can be done with the vtex2 convert
action.
For example, the following command will create a VTF called some-file.vtf
with the format BGRA8888
:
vtex2 convert -f bgra8888 some-file.jpg
If you pass a directory to vtex2 convert
, it will convert all files in that directory. The -r
or --recursive
parameter
will cause the program to descend and process subdirectories too.
Full list of options:
USAGE: vtex2 convert [OPTIONS] file...
Convert a generic image file to VTF
Options:
--bumpscale Bumpscale
--clamps Clamp on S axis
--clampt Clamp on T axis
--clampu Clamp on U axis
--gamma-correct Apply gamma correction
--pointsample Set point sampling method
--srgb Process this image in sRGB color space
--start-frame Animation frame to start on
--thumbnail Generate thumbnail for the image
--trilinear Set trilinear sampling method
--version Set the VTF version to use
-c,--compress [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
DEFLATE compression level to use. 0=none, 9=max. This will force VTF version to 7.6
-f,--format [rgba8888, abgr8888, rgb888, bgr888, rgb565, i8, ia88, p8, a8, rgb888_bluescreen, bgr888_bluescreen, argb8888, bgra8888, dxt1, dxt3, dxt5, bgrx8888, bgr565, bgrx5551, bgra4444, dxt1_onebitalpha, bgra5551, uv88, uvwq8888, rgba16161616f, rgba16161616, uvlx8888, r32f, rgb323232f, rgba32323232f, ati2n, ati1n]
Image format of the VTF
-m,--mips Number of mips to generate
-n,--normal Create a normal map
-o,--output Name of the output VTF
-r,--recursive Recursively process directories
file Image file to convert
Extracting image data from a VTF can be done using vtex2 extract
.
For example, the following command will extract the VTF to some-file.jpg
:
vtex2 extract -f jpg some-file.vtf
If you pass a directory to vtex2 extract
, it will convert all files in that directory. The -r
or --recursive
parameter
will cause the program to descend and process subdirectories too.
Full list of options:
USAGE: vtex2 extract [OPTIONS] file...
Converts a VTF into png, tga, jpeg, bmp or hdr image file
Options:
-f,--format [png, jpeg, jpg, tga, bmp, hdr]
Output format to use
-m,--mip Mipmap to extract from image
-na,--no-alpha Exclude alpha channel from converted image
-o,--output File to place the output in
-r,--recursive Recursively process directories
file VTF file to convert
The vtex2 info
command can be used to display some info about VTF files.
Full list of options:
USAGE: vtex2 info [OPTIONS] file...
Displays info about a VTF file
Options:
-a,--all Display all detailed info about a VTF
-r,--resources List all resource entries in the VTF
file VTF file to process
The first step is to clone the repository. Make sure to do a recursive clone!
git clone https://github.com/StrataSource/vtex2.git --recursive
Required packages:
- qtbase5-dev (Optional, only for GUI)
- cmake
- make or ninja
mkdir build && cd build
cmake ..
make -j$(nproc)
You must install Qt5 (Or 6, the viewer may work with that too). Make note of the install directory.
CMake and Visual Studio 2022 or 2019 are required.
(From powershell)
mkdir build
cd build
cmake .. -G "Visual Studio 17 2022" -DQT_BASEDIR=C:\path\to\my\Qt5
You can then open build\vtex2.sln
in Visual Studio and compile from there.