$detail: Difference between revisions
| Line 210: | Line 210: | ||
<tr><td colspan="6" bgcolor="#303030" align="center"><h3 style="font-size:1em; color:#b9b7b5; padding:0; margin:2px 0">[[File:csgo-16px.png]][[File:portal2-16px.png]] <tt>SolidEnergy</tt> Parameters</h3></td></tr> | <tr><td colspan="6" bgcolor="#303030" align="center"><h3 style="font-size:1em; color:#b9b7b5; padding:0; margin:2px 0">[[File:csgo-16px.png]][[File:portal2-16px.png]] <tt>SolidEnergy</tt> Parameters</h3></td></tr> | ||
<tr><td colspan="6" bgcolor="#2E342F | <tr><td colspan="6" bgcolor="#2E342F"><h3 style="font-size:1em; color:#b9b7b5; padding:0; margin:2px 0">{{Todo|Confirm if all of this information is actually true for {{portal2}} | ||
* {{Confirm|Is [[SolidEnergy]] available in {{csgo}} engine branch–branch games?}} | * {{Confirm|Is [[SolidEnergy]] available in {{csgo}} engine branch–branch games?}} | ||
* {{Note|$detail1tint and $detail2tint do not exist on this Shader, they are missing in this list intentionally!}} | * {{Note|$detail1tint and $detail2tint do not exist on this Shader, they are missing in this list intentionally!}} | ||
Revision as of 09:13, 9 March 2023
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
|
|||||||||||||||||||||||||||||||||||||||
| $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 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.$detailtransform2, the Shader will use $basetexturetransform2 instead! $detail and $basetexture2 to be present!$detailblendmode "9". [todo tested in ?] |
|||||||||||||||||||||||||||||||||||||||
| $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
