$decaltexture

From Valve Developer Community
Jump to: navigation, search

$decaltexture is a material shader parameter available in <Counter-Strike: Global Offensive> Counter-Strike: Global Offensive for VertexLitGeneric. It allows for a second UV channel to be defined for a model, allowing a decal texture to be placed on top of the base material. To use the parameter, the MDL must have been compiled from an FBX file and have a second UV channel defined.

Bug.png Bug: Using VBSP's -StaticPropCombine parameter appears to break this effect on autocombined models in some cases.
Here, each label on the crates is laid out on a separate UV channel to that of the main texture – this allows easy and efficient reuse of the same labels/decals on many different props without losing texture resolution.

Parameters and Effects

$decaltexture <texture>
The decal texture.
$decalblendmode <integer>
Set the decal's blend mode.
* 0 = Alpha Masked
* 1 = Multiplied
Note.png Note: If set to 1, $phong will not function on the material.
* 2 = Modulate (functions like DecalModulate, or Photoshop's Overlay blend mode)
Note.png Note: Mode 2 expects sRGB input, not linear. This means ~0.73 gray acts as the mid point, instead of 0.5
* 3 = Additive
Bug.png Bug: Mode 0 and 1 will not render in Hammer, however the basetexture will still render. Mode 2 and 3 will cause the model to render completely black in Hammer. It will still appear correctly in game though.
Note.png Note: $decalblendmode MUST be defined in order for $decaltexture to work.
$modeldecalignorez <boolean>
If enabled, model decals will ignore depth.