Vtex
Vtex is the command-line tool to convert TGA/PSD files into VTF
Valve Texture Tool, or Vtex is the command-line tool used to convert targa (.tga) or Photoshop (.psd) (Orange box SDK) image files into Valve Texture Files (.vtf) for use in the Source engine. It takes a targa (.tga) image and an optional list of compile parameters, and creates a Valve Texture File (.vtf) from them.
**Note:**It is recommended that you use the third-party tool VTFEdit instead. VTFEdit boasts a user-friendly interface, a wider array of accepted formats, the ability to change most VTF's properties without recompiling, a standalone viewer, and direct GCF access.
VTFEdit will make your life so much easier but in certain cases, you have to use Vtex to do certain task. Modding or creating VTF files with spritesheet is a good example
Creating Animated ParticlesBasic usage
Make sure that Steam is running.
Place the targa image to be converted inside the
SteamApps/common/gamefolder/materialsrc/
folder, where gamefolder is the game folder of the current game (cstrike
/dod
/hl2
/hl2mp
/tf
). You can also place the image within a subfolder of this folder, to make Vtex compile the texture to the correspondingmaterials/
subfolder. (For instance, placing the image in amaterialsrc/metal/
subfolder, will make Vtex compile the texture to thematerials/metal/
subfolder.)If necessary, write a text (.txt) file containing a set of Vtex compile parameters. Give it the same name as the targa image (with the exception of the .txt extension) and put it in the same folder. If you choose to omit this list, Vtex will create an empty one for you during compilation.
The Vtex executable (Vtex.exe) is located in the
/Steam/SteamApps/common/gamefolder/bin/
folder, again wheregamefolder
is the folder that corresponds with the target game. It can be executed in one of two ways: Through the easy "drag-and-drop" method (described below), or the more advanced command prompt method, described here. Steam must run while it is executed.The resulting Valve Texture File (.vtf) will be compiled to the
materials/
folder of the current game by default. For instance, if the current game would be Half-Life 2, the texture file would be compiled to theSteamApps/common/Half-Life 2/hl2/materials/
folder. If the targa image resided within a subfolder, Vtex will compile the texture file to the correspondingmaterials/
subfolder. If that subfolder doesn't exist, Vtex will create it automatically.
The drag-and-drop method
The drag-and-drop method is the easy way to use Vtex. Just drag the icon of either the targa image to be converted, or its list of compile parameters (from its materialsrc/
folder) on top of the icon of the Vtex executable (Vtex.exe) and let go, and Vtex will compile the texture file automatically.
Vtex CLI use
Apart from the drag-and-drop method, Vtex can also be executed via the command prompt in the Command Line Interface (MS-DOS). This will allow you to use its more advanced features. You can provide additional parameters to create a basic .vmt file when the texture is compiled, as well as other options.
The syntax for vtex.exe
is as follows:
Any file extentions are ignored. (You can refer to the non-existant texture1.asd without problems, as long as the tga image is still present.)
Basic Vtex usage
Command-line may explain this better.
The Windows environment variable "%sourcesdk%
" can be utilized to locate vtex.exe
easily in a command-line statement. This variable contains the location of the Source SDK installation directory.
For example, to compile a Half-Life 2 material called "sample_material.tga
" in the directory "sourcesdk_content/hl2/materialsrc/metal
", you would open a command prompt, change to the directory to "sourcesdk_content/hl2/materialsrc/metal
" and type this at the command-line:
The compiled .vtf file would be compiled to this folder (assuming you had set Half-Life 2 as your current game directory):
**Note:**It is very important that you set the Current Game in either the SDK Launcher or VConfig to the correct game directory before you open a command prompt to compile textures. Changing the Current Game will not affect any command prompt windows that are already open. This is due to how Windows uses environment variables.
Vtex commands
-mkdir
You can add the -mkdir
command to vtex, and it will add the destination directory if it does not exist. For example, if you had a .tga at /sourcesdk_content/hl2/materialsrc/sample/sample_material.tga
you would type this at the command-line:
This would create a new directory called "sample
" in your Half-Life 2/hl2/materials
directory, if it didn't already exist, and then place the compiled .VTF file in that new location. If the directory already exists, the -mkdir
parameter is ignored.
-shader
You can use the -shader <shadername>
command to have Vtex create a .VMT for the new material with the shader specified. For example, to create a basic LightmappedGeneric
material, use the -shader
command like this:
This would compile the material sample_material.vtf in half-life 2/hl2/materials/metal
as well as create a new material file sample_material.vmt
in the same location, using the LightmappedGeneric
shader, like this:
-vmtparam
You can use the -vmtparam <parameter> <value>
command to additional material parameters to the created .vmt file. If a .vmt already exists in the same location, any new parameters will not be added. For example, to make a material translucent, you would type the following:
Which would create the following sample_material.vmt
:
You can add multiple -vmtparam
statements in the same Vtex command, like this:
This would create the following sample_material.vmt
specifying parameters for a bumpmapped specular material:
-quiet
When added, this commands will cause Vtex to do its work without producing any output to the console and will not pause when finished.
-nopause
Removes the "Hit a key to continue
" message that appears when Vtex has finished working.
-outdir
You can use the -outdir <parameter> <value>
command to override the output directory out the VTF file.
-quickconvert
Used to quickly convert an older VTF file format to a newer VTF file format.
-dontusegamedir
Puts output files in same folder as input files. Best used with -quickconvert
Wildcards
Command-line wildcards can also be used with Vtex. This command-line would compile all .tga files in the current directory:
This command-line would compile all .tga files in the current directory with names than begin with "sample":
In this case, the files "sample_metal
" and "sample3
" would be compiled, but not "samp_metal
" or "sampl_2
".
Chaining
Vtex can compile multiple materials from the same command-line. Simply add the name of each .tga after the first, like this:
If a .vmt is generated on the command-line using the -shader
command, a unique .vmt will be created for each .tga in the chain, all with the same parameters specified by the -shader
and -vmtparam
commands. If you need more individual control of the shader parameters of each .tga, use a batch (.bat) file to run vtex multiple times instead.
Last updated