$detail

From Valve Developer Community
Revision as of 10:30, 6 January 2024 by MrFunreal (talk | contribs) (replaced blendmode note to a table. However, some parts are described poorly and need to be reworded by someone who knows about the limitations.)
Jump to navigation Jump to search
English (en)Français (fr)中文 (zh)Translate (Translate)
For detail textures as used in GoldSrc GoldSrc, see Detail textures (GoldSrc).
A detail texture (noise_detail_01), and its effect when applied to a material (brickwall031a).

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 Half-Life 2: Episode Two, as well as Portal 2 Portal 2 for the white tile textures's bumps.

Icon-Bug.pngBug: $detail textures do not work in conjunction with some parameters:   [todo tested in ?]
Note.pngNote:
Todo:  Document issues from other branches of source.
Confirm: Things that don't work in Alien Swarm, usually don't work in Left 4 Dead either. And vice versa. But it'd be better if someone could confirm this.
Note.pngNote: Using $detail with $blendmodulatetexture will cause a graphical issue (stripes over the surface), only works correctly in Counter-Strike: Global Offensive.

Syntax

$detail <texture>

You will probably want to use at least $detailscale (see below) as well.

Parameters and Effects

$detailtexturetransform

$detailscale

$detailblendfactor

$detailblendmode

$detailtint

$detailframe $detail_alpha_mask_base_texture

Counter-Strike: Global Offensive WorldVertexTransition Parameters

Confirm:are these limited to Counter-Strike: Global Offensive, or are they in some/all CS:GO engine branch–branch games?

$detail2

$detailscale2 $detailblendfactor2 $detailframe2 $detailtint2

Counter-Strike: Global OffensivePortal 2 SolidEnergy Parameters

Todo: Confirm if all of this information is actually true for Portal 2
Confirm:Is SolidEnergy available in CS:GO engine branch–branch games?
Note.pngNote:$detail1tint and $detail2tint do not exist on this Shader, they are missing in this list intentionally!
Icon-Important.pngImportant:$detail has very similar parameter names, but they are not the same!

$detail1 $detail1blendmode $detail1scale $detail1blendfactor $detail1frame $detail2 $detail2blendmode $detail2scale $detail2blendfactor $detail2frame

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 Half-Life 2 and in Half-Life 2: Episode One 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