$detail: Difference between revisions
SirYodaJedi (talk | contribs) |
SirYodaJedi (talk | contribs) |
||
| Line 106: | Line 106: | ||
| {{td| 8 |dark=1}} | | {{td| 8 |dark=1}} | ||
{{td| Multiply }} | {{td| Multiply }} | ||
{{td| The color of the base channel is multiplied by that of the detail texture. }} | {{td| The color of the base channel is multiplied by that of the detail texture. Effectively makes $detail an ambient occlusion texture. }} | ||
}} | }} | ||
{{tr | {{tr | ||
| Line 125: | Line 125: | ||
{{td| Utilises a SSBump Texture like an Ambient Occlusion Texture. This is done by calculating the above-average 'Luminance' of the SSBump. | {{td| Utilises a SSBump Texture like an Ambient Occlusion Texture. This is done by calculating the above-average 'Luminance' of the SSBump. | ||
Calculated as <code>Basetexture * (DetailTexture.r * (2/3) + DetailTexture.g * (2/3) + DetailTexture.b * (2/3))</code> | Calculated as <code>Basetexture * (DetailTexture.r * (2/3) + DetailTexture.g * (2/3) + DetailTexture.b * (2/3))</code> | ||
{{ModernImportant|This cannot be used with $bumpmap. If the Detailtexture VTF is flagged with the SSBump flag, this mode will be used automatically!}} }} | {{ModernImportant|This cannot be used with $bumpmap. If the Detailtexture VTF is flagged with the SSBump flag, this mode will be used automatically IF $bumpmap is absent!}} }} | ||
}} | }} | ||
}} | }} | ||
Revision as of 14:57, 4 March 2025
$detail is a material shader parameter available in all
Source games. 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, as well as
Portal 2 for the white tile textures's bumps.
$detail textures do not work in conjunction with some parameters:
- 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
Note:
- In
, LightmappedGeneric does not appear to even have $lightwarptexture as a parameter... So it cannot "not work". - In

on VertexLitGeneric, Does not work with $desaturatewithbasealpha - In
, Does not work with $blendmodulatetexture and $bumpmap
- In
- Todo: Document issues from other branches of source.
Bug: Using $detailwith $blendmodulatetexture will cause a graphical issue (stripes over the surface), only works correctly in
and
. [todo tested in ?]
Syntax
$detail <texture>
You will probably want to use at least $detailscale (see below) as well.
Parameters and Effects
$detailframe
$detail_alpha_mask_base_texture
WorldVertexTransition Parameters
$detailscale2
$detailblendfactor2
$detailframe2
$detailtint2

SolidEnergy Parameters
$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 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
