Skin
In Source, the Skin (sometimes called the surface, texture or material of the model) defines how the visible surface of the model is Rendered. The Rendered Skin is projected over the Mesh, which envelops the Skeleton.
In order to be visible in game, each model requires at least one skin (the default skin). It may also use multiple skins and/or have additional alternative skins. Each skin may also have a number of versions optimised for LOD-substitution.
The actual pixel matrices (colors, normals, etc) (generally known as "textures") are not included in the Mesh, and are not compiled by StudioMDL. Instead, they must be compiled as VTF texture files and included in a VMT material file The model's Skinnames are the filenames of VMT files. As well as referencing which VTF files to use as the model's colormap, bumpmap, specularmap, luminositymap and/or opacity map, the Skin.vmt specifies which Shader Parameters to use when rendering the model. The Skin's $surfaceproperties specify which decals and sounds to use for collisions or damage to the surface.
Default Skin
- The Default Skin is the name of the image file used when creating the UV map in the Reference.smd model. (the extension—.tga, .bmp, etc—is recorded but not used in compiling). By default, the compiled model expects to find a VMT with the same name as the Default Skin in the
game_dir/materials/models
directory. If it's not there, the model will be rendered with the "pink check" error material.
Multiple Skins
- Some models may use more than one Skin.vmt at the same time, in order to specify different material properties for different parts of the model. This should be avoided wherever possible, as it generally makes the model more "expensive" to render. Multiple Default Skins occur when the Mesh is UV mapped to more than one image file, and each "triangle" in the model's Reference.smd will specify by name which Default Skin is required to texture it. In order to render properly, all the correctly named Default Skins must be found in the
game_dir/materials/models
directory. Whilst the StudioMDL compiler states that a model can only be compiled with a maximum number of 32 skins, an MDL can only be compiled with a maximum of 31 different skins in total.
Alternative Skins
- If the model has Alternative Skins, the Level Designer may select (skin options) which Skin will be rendered in that particular model. Alternative Skins can be changed at runtime, with the input Skin (this will show up as broken, however it will still work)
- Alternative skins are also VMT files in the
game_dir/materials/models
directory. The filenames of the optional skins must be specified in the QC file's $texturegroup configuration in order to be available to the model. - An alternative skin can differ from the default skin in many ways, but it cannot change the UV map in the model's Mesh. The alternative skin textures must follow the same layout as the Default Skin.
- Alternative Skins might be used on a model to represent a dusting of snow, or splatters of mud, etc. to help the model blend in better in certain environments.
- Alternative skins are also VMT files in the
LOD Skins
- Source's LOD system allows a "cheaper" (simplified) version of a Skin to be rendered at a distance where the loss of "expensive" detail is not noticeable to the Viewer. LOD_Skin.VMTs are usually created from pared-down versions of the Default_Skin.vmt, but their Skin names are compiled into the main MDL's VVD and VTX files via the QC $lod configuration. The Default Skin is used when no LOD_Skin is active, so we could say it amounts to an "lod0" Skin.