Vtex CLI use: Difference between revisions
TomEdwards (talk | contribs) |
No edit summary |
||
| Line 98: | Line 98: | ||
Removes the "<code>Hit a key to continue</code>" message that appears when Vtex has finished working. | Removes the "<code>Hit a key to continue</code>" message that appears when Vtex has finished working. | ||
=== -outdir === | |||
You can use the <code>-outdir <''parameter''> <''value''></code> 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 <code>-quickconvert</code> | |||
Revision as of 14:28, 25 February 2013
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
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:
"%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
}
You can add multiple -vmtparam statements 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.