$detail
Template:Shaderparam It specifies a texture which Source will use to add high-resolution detail to a material when it is viewed up close, by darkening or lightening the albedo appropriately, depending on the $detailblendmode. You can also use a full color (as opposed to grayscale) image and blend it using $detailblendmode 2. It is very effective for increasing the apparent resolution of a texture, and was used extensively in Half-Life 2: Episode Two.

$Detail
textures do not work in conjunction with some parameters : [todo tested in ?]- In
on LightmappedGeneric, Does not work with $seamless_scale.
- In
on VertexLitGeneric. Does not work with $selfillumfresnel, if $bumpmap is used.
- In
on LightmappedGeneric, Does not work with $lightwarptexture
- In
on VertexLitGeneric, Does not work with $desaturatewithbasealpha
- In
, Does not work with $blendmodulatetexture and $bumpmap
- Todo: Document issues from other branches of source.
Syntax
$detail <texture>
You will probably want to use at least $detailscale
(see below) as well.
Parameters and Effects
Parameter | Variable | Description | |||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$detailtexturetransform | <matrix> | (DX9 SM2)
Rotates, scales, etc. the detail texture. The default position is center .5 .5 scale 1 1 rotate 0 translate 0 0.
![]() ![]() ![]() ![]() ![]() |
|||||||||||||||||||||||||||||||||||||||
$detailscale | <float> | Fits the detail texture onto the material the given number of times (default = 4). Generally used instead of $detailtexturetransform with a value of around 7 or 8 for a 128px detail texture. To independently scale the X and Y coordinates, place your values in brackets: $detailscale "[ 4 8 ]" |
|||||||||||||||||||||||||||||||||||||||
$detailblendfactor | <normal> | Controls the amount that the detail texture affects the base texture. The precise use of this depends on the blend factor; in most cases it acts similarly to $alpha. A value of 0 usually makes the detail texture have no effect, whilst a value of 1 applies the full effect.
|
|||||||||||||||||||||||||||||||||||||||
$detailblendmode | <integer> | How to combine the detail material with the albedo.
There are 12 different detail blend methods that can be used. The blend modes are implemented in stdshaders/common_ps_fx.h. ![]() Blend modes in L4D2, factor .8 (Left to right modes 0 to 11, base texture only and detail only. Top row detail opacity 100%, bottom 50%).
![]()
|
|||||||||||||||||||||||||||||||||||||||
$detailtint | <RGB matrix> | Color tint of the detail texture. ![]() ![]() ![]() ![]() ![]() ![]() To do: Verify which games this is broken in ( Works in |
|||||||||||||||||||||||||||||||||||||||
$detailframe | <integer> | (DX9 SM2) The frame to start an animated $detail texture on.
|
|||||||||||||||||||||||||||||||||||||||
$detail_alpha_mask_base_texture | <boolean> | WorldVertexTransition only. When enabled, causes the level of detail alpha to determine "base texture blending."
![]() |
|||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
$detail2 | <texture> | Detail texture for WorldVertexTransition's second layer.
![]() WorldVertexTransition parameters, but they may not work as expected.![]() ![]() ![]() |
|||||||||||||||||||||||||||||||||||||||
$detailscale2 | <float> | ||||||||||||||||||||||||||||||||||||||||
$detailblendfactor2 | <normal> | ||||||||||||||||||||||||||||||||||||||||
$detailframe2 | <integer> | ||||||||||||||||||||||||||||||||||||||||
$detailtint2 | <RGB matrix> | ||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
![]()
| |||||||||||||||||||||||||||||||||||||||||
$detail1 | <texture> | Detail texture for SolidEnergy's second layer.
|
|||||||||||||||||||||||||||||||||||||||
$detail1blendmode | <integer> | How to combine the detail material with the albedo.
There are 2 different detail blend methods that can be used.
|
|||||||||||||||||||||||||||||||||||||||
$detail1scale | <float> | ||||||||||||||||||||||||||||||||||||||||
$detail1blendfactor | <float> | ||||||||||||||||||||||||||||||||||||||||
$detail1frame | <integer> | The frame to start an animated $detail1 texture on.
{{Important| |
|||||||||||||||||||||||||||||||||||||||
$detail2 | <texture> | Detail texture for SolidEnergy's third layer.
|
|||||||||||||||||||||||||||||||||||||||
$detail2blendmode | <integer> | How to combine the detail material with the albedo.
There are 2 different detail blend methods that can be used.
|
|||||||||||||||||||||||||||||||||||||||
$detail2scale | <float> | ||||||||||||||||||||||||||||||||||||||||
$detail2blendfactor | <float> | ||||||||||||||||||||||||||||||||||||||||
$detail2frame | <integer> |
Valve's Detail Textures
Valve's stock detail textures (available in OB only) are best used with the following pre-configured values:
$detail detail\noise_detail_01 // e.g. for brickwork, concrete... $detailscale 7.74 $detailblendfactor 0.8 $detailblendmode 0
$detail detail\metal_detail_01 $detailscale 4.283 $detailblendfactor .65 $detailblendmode 0
$detail detail\rock_detail_01 $detailscale 11 $detailblendfactor 1 $detailblendmode 0
$detail detail\plaster_detail_01 $detailscale 6.783 $detailblendfactor .8 $detailblendmode 0
The below parameters come from models\props_forest\LadderWood.vmt. It is the only Valve Stock texture VMT file to use this particular detail texture. Because the detail texture (detail\wood_detail_01) is a high resolution (1024×1024), the $detailscale
is lower than the others, with the exception of rock_detail_01.
$detail detail\wood_detail_01 $detailscale 2.563 $detailblendfactor .8 $detailblendmode 0
Additionally, there are 2 other stock detail textures. detail\detailash001a
and detail\detaildirt001a
. These files were used in the "leaked" version of Half-Life 2 and in
Half-Life 2: Episode One using the following parameters.
Concrete/concretefloor009a
in Episode One materials:
$detail detail/detaildirt001a $detailscale 0.27
Metal/metalfloor005a
in Episode One materials:
$detail detail/detailash001a $detailscale 0.50
See Also
Hiding large-scale tiling with detail textures - How to make texture repeating less noticeable using $detail