VMT: Difference between revisions
m (Multipage removal)  | 
				|
(No difference) 
 | |
Revision as of 22:29, 13 July 2024
A VMT ("Valve Material") file defines the material used by a two-dimensional surface. It contains all of the information needed for 
 Source to simulate the surface visually, aurally, and physically.
If a material is missing, it will produce the infamous Source pink and black checkered pattern. A white wireframe is not a missing material, but instead a missing shader.
The contents of a material will fall into some or all of these categories:
A simple example
This is a very basic shingle beach material.
- The 
LightmappedGenericshader is used, which means that the material is for use on surfaces with lightmaps (i.e. brushes). - The 
{character opens a set of parameters - The 
$basetextureparameter is given withcoast\shingle_01, which is the location of a texture. This is what will be drawn on the screen. $surfacepropgives the material the physical properties of gravel.- The 
}character closes a set of parameters 
It's important to remember that this material can only be used on brushes. If it needed to be used on models, for instance, another version would need to be created using the 
VertexLitGeneric shader.
Most of the time switching materials from one shader to another is as simple as changing their first line, since a great number of parameters are shared between them. Some params only work with certain shaders, like Phong effects, which are only available with 
VertexLitGeneric, but unfortunately you won't encounter any critical errors if a param isn't understood by the shader. It just won't have any effect.
Finding materials
SteamPipe
When Valve updated all 
 Source games to SteamPipe, all materials were moved from GCF into VPK files. VPK Files work with 
 GCFScape and 
 VPKEdit.
More info on SteamPipe here
Non-SteamPipe Games
In non SteamPipe 
 Source games, Materials are stored in the ![]()
materials\ folder of your game or mod. The best way to browse them is from 
 Hammer's texture selection screen.
If you want to edit or view the code of Valve's material files you will first need to extract them from their GCF package with 
 GCFScape. They tend to be stored in GCFs with 'materials' in their name.