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:
 vtex [-quiet] [-nopause] [-mkdir] [-shader ShaderName] [-vmtparam Param Value] texture1 texture2 ...
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:
 "%sourcesdk%\bin\vtex" sample_material.tga
The compiled .vtf file would be compiled to this folder (assuming you had set Half-Life 2 as your current game directory):
 SteamApps\username\half-life 2\hl2\materials\metal
== 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:
 "%sourcesdk%\bin\vtex" -mkdir sample_material.tga
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:
 "%sourcesdk%\bin\vtex" -shader LightmappedGeneric sample_material.tga
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:
"LightmappedGeneric"
{
	"$baseTexture" "sample/lightmappedgeneric"
}
=== -vmtparam ===
The -vmtparam <parameter> <value> command can be used to add 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, type the following:
 "%sourcesdk%\bin\vtex" -shader LightmappedGeneric -vmtparam $translucent 1 sample_material.tga
Which would create the following sample_material.vmt:
"LightmappedGeneric"
{
	"$baseTexture" "sample/lightmappedgeneric"
	"$translucent" 1
}
Multiple -vmtparam statements can be added in the same Vtex command, like this:
 "%sourcesdk%\bin\vtex" -shader LightmappedGeneric -vmtparam "$bumpmap" "sdk/bumpspecular_normal" -vmtparam "$envmap" "env_cubemap" sample_material.tga
This would create the following sample_material.vmt specifying parameters for a bumpmapped specular material:
 "LightmappedGeneric"
 {
 	"$baseTexture" "sample/sample_material"
 	"$bumpmap" "sdk/bumpspecular_normal"
 	"$envmap" "env_cubemap"
 }
=== -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:
 "%sourcesdk%\bin\vtex" *.tga
This command-line would compile all .tga files in the current directory with names than begin with "sample":
 "%sourcesdk%\bin\vtex" sample*.tga
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:
 "%sourcesdk%\bin\vtex" sample_material1.tga sample_material2.tga sample_material3.tga
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.
==See also==
* Material Creation
* Shader Types and Parameters
Category: Tools
Category: Material System