Character (shader)

From Valve Developer Community
Jump to: navigation, search
Character on left, VertexLitGeneric on right.

Character is a material shader available in <Counter-Strike: Global Offensive>. Shares most generic parameters of VertexLitGeneric. Takes advantage of mask textures to tune stuff like rimlighting, phong shading and other.

Tip:It might be a good idea to look at Valve vmts of new Player Models inside the vpk files, to get better understanding how to structure your Character shader vmt.


Supported Parameters

Textures & Masks

$basetexture
Diffuse mask.
$bumpmap
Normal map.
$envmap
Specular reflection mask.
$masks1
Red channel - $rimlight mask
Green channel - Phong Albedo mask
Blue channel - $metalness mask
Alpha channel - $warpindex mask
$masks2
Red channel - Shadow saturation mask
Green channel - Angle and Amount of Anisotropy
Blue channel - $envmap light scale
Alpha channel - Retroreflectivity
$phongwarptexture
Phong warp texture.
$fresnelrangestexture
To do

Unique Envmap Parameters

Note:In addition to all previous VertexLitGeneric parameters.
$envmaplightscale <float>
How much the surface's lightmap tints the specular reflection. A value between 0 (off) and 1 (no reflection with completely black lightmap) determines how much the reflection is tinted; values above 1 are permitted but seem to actually start inverting the effect.
$envmaplightscaleminmax <vector2>
Thresholds for the lightmap reflection tinting effect. Setting the minimum value higher increases the minimum light amount at which the reflection gets nerfed to nothing.

Unique Phong Parameters

Note:In addition to all previous VertexLitGeneric parameters.
$phongalbedoboost <float>
Phong albedo overbrightening factor.

Unique Rimlight Parameters

Note:In addition to all previous VertexLitGeneric parameters.
$rimlightalbedo <float>
Rimlight albedo overbrightening factor.
$rimlighttint <RGB matrix>
Color tint of the rimlight.
$fakerimboost <float>
Controls the strength of fake rimlight that doesn't use ambient color (visible in pitch black).
$fakerimtint <RGB matrix>
Color of the fake rimlight.
$rimhaloboost <float>
Scale of the rimlight halo.
$rimhalobounds <vector4>
Default value [0.4 0.5 0.5 0.6] controls the blending between light levels.

Ambient Reflection Parameters

Note: Ambient Reflection is similiar to rimlighting.
$ambientreflectionboost <float>
Controls the strength of ambient light on the model.
$ambientreflectionbouncecolor <RGB matrix>
Color tint of the ambient reflections on the model.
$ambientreflectionbouncecenter <vector3>
To do Default value [0 42 0]

Shadow Parameters

$shadowrimboost <float>
Extra boost for rimlight in shadow.
$shadowsaturation <float>
Controls the saturation of shadows.
$shadowsaturationbounds <vector4>
Default value [0.4 0.5 0.5 0.6] controls shadow (color desaturation) blending between light to mid to dark levels.
$shadowtint <vector4>
Tints the color of shadows on the model. Uses [R G B A], alpha is shadow strength.
$shadowcontrast <float>
Controls the contrast of shadows.

Miscellaneous Parameters

$hueshiftamount <float>
Changes the hue of the model.
$metalness <float>
Metalness is just a negative multiply on the albedo.
Note:Doesn't do anything if $masks1 is used.
$warpindex <float>
Changes how much the light can spread on the model, similiar to half lambert.
Note:Doesn't do anything if $masks1 is used.
$anisotropyamount <float>
Controls how much anisotropic lighting tints the model.