$detail: Difference between revisions
ShiroDkxtro2 (talk | contribs) m (Re-documented Bugs and added additional information for $detailtexturetransform, $detail2 and $detail_alpha_mask_base_texture) |
|||
Line 21: | Line 21: | ||
== Parameters and Effects == | == Parameters and Effects == | ||
{{ | <table cellpadding="4" width="100%" style="border:1px solid #525252"> | ||
{{ | <tr style="z-index:100; background-color:#949494; box-shadow:0 2px 0 rgb(38 38 38); color:#141414; position:sticky; margin-bottom:2px; top:0;"> | ||
{{ | <th width="8%" style="box-shadow:2px 0 rgb(38 38 38)">Parameter</th> | ||
{{ | <th width="8%" style="box-shadow:2px 0 rgb(38 38 38)">{{KV/strings|Variable}}</th> | ||
{{ | <th>{{KV/strings|Desc}}</th> | ||
{{ | </tr> | ||
<tr bgcolor="#3a3a3a"> | |||
[[Image:Detail_blend_modes_l4d2.jpg||320px | <td align="center"><kbd>$detailtexturetransform</kbd></td> | ||
<td align="center">{{KV Type|matrix}}</td> | |||
<td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px"><div style="display:flex; align-items:center; flex-wrap:wrap; gap:6px">{{Dx9}}</div> | |||
Rotates, scales, etc. the detail texture. | |||
The default position is {{Code|style=1|center .5 .5 scale 1 1 rotate 0 translate 0 0}}. | |||
# {{Code|style=1|center}} defines the point of rotation. Only useful if rotate is being used. | |||
# {{Code|style=1|scale}} fits the texture into the material the given number of times. 2 1 is a 50% scale in the horizontal X axis while the vertical Y axis is still at original scale. | |||
# {{Code|style=1|rotate}} rotates the texture counter-clockwise in degrees. Accepts any number, including negatives. | |||
# {{Code|style=1|translate}} shifts the texture by the given numbers. .5 will shift it half-way. 1 will shift it once completely over, which is the same as not moving it at all. | |||
{{Note|All values must be included!}} | |||
{{Bug|Scaling the texture may cause odd issues where the Texture Lock tool in Hammer will not actually lock the texture in place.}} | |||
{{Bug|Rotating textures applied on brushes will rotate around the map origin (confirm: Orangebox engine only?). A fix for this is to change the center position in the VMT to the brush's origin.}} | |||
{{Bug|This parameter does not exist for [[LightmappedGeneric]], [[WorldVertexTransition]] and {{only|{{csgo}}}} [[Lightmapped_4WayBlend]].}} | |||
{{Bug|Does not work with {{Ent|$treesway}}.}}</div></td> | |||
</tr> | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detailscale</kbd></td> | |||
<td align="center">{{KV Type|float}}</td> | |||
<td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px">Fits the detail texture onto the material the given number of times (default = 4). Generally used instead of {{Code|$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: {{Code|$detailscale "[ 4 8 ]"}}</div></td> | |||
</tr> | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detailblendfactor</kbd></td> | |||
<td align="center">{{KV Type|normal}}</td> | |||
<td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px">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 {{Ent|$alpha}}. A value of 0 usually makes the detail texture have no effect, whilst a value of 1 applies the full effect. | |||
</div></td> | |||
</tr> | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detailblendmode</kbd></td> | |||
<td align="center">{{KV Type|integer}}</td> | |||
<td style="padding:0"><div style="max-height:400px; box-sizing:border-box; overflow-y:auto; padding:4px">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 {{Code|stdshaders/common_ps_fx.h}}. | |||
<div class="thumbinner" style="width:320px; display:flex; flex-direction:column; text-align:left; float:right; margin: 8px 0 8px 8px">[[Image:Detail_blend_modes_l4d2.jpg||320px|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%).]] | |||
<div style="margin:2px">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%).</div></div> | |||
{| class="standard-table" | {| class="standard-table" | ||
! Mode | ! Mode | ||
Line 37: | Line 80: | ||
| 0 | | 0 | ||
| DecalModulate | | DecalModulate | ||
| This functions the same as the {{ | | This functions the same as the {{Ent|DecalModulate}} shader—colors below 128 darken the image, colors above lighten the image. | ||
|- | |- | ||
| 1 | | 1 | ||
| Additive | | Additive | ||
| The color of the detail texture is added to the base texture. This is the same as {{ | | The color of the detail texture is added to the base texture. This is the same as {{Ent|$additive}}. | ||
|- | |- | ||
| 2 | | 2 | ||
Line 65: | Line 108: | ||
| 7 | | 7 | ||
| Two-Pattern DecalModulate | | Two-Pattern DecalModulate | ||
| Only the red and alpha channels of the detail texture are used. This operates like the {{ | | Only the red and alpha channels of the detail texture are used. This operates like the {{Ent|DecalModulate}} shader or blend mode 0, but the base alpha channel fades between using the red (0) or alpha (255) detail channel as the modulation source. This effectively allows two detail materials, although both are greyscale. | ||
|- | |- | ||
| 8 | | 8 | ||
Line 77: | Line 120: | ||
| 10 | | 10 | ||
| Self-Shadowed Bumpmap | | Self-Shadowed Bumpmap | ||
| The detail texture is used as a (possibly additional) {{ | | The detail texture is used as a (possibly additional) {{Ent|$ssbump}} bumpmap. The blend factor is ignored.{{Note|You can use this to get a standard bumpmap and a self-shadowing bumpmap on the same material. However, this is expensive and should be used very sparingly.}} | ||
|- | |- | ||
| 11 | | 11 | ||
Line 83: | Line 126: | ||
| Unknown function, used internally. The comment says, "shader does the magic here - no user needs to specify mode 11." | | Unknown function, used internally. The comment says, "shader does the magic here - no user needs to specify mode 11." | ||
|} | |} | ||
{{Important|Below is listed, what blendmodes, work in which games, on what shaders. Using a non-supported Blendmode can/will result in "Missing Shader Combo" errors flooding the Console. The Material will not Render!}} | {{Important|Below is listed, what blendmodes, work in which games, on what shaders. Using a non-supported Blendmode can/will result in "Missing Shader Combo" errors flooding the Console. The Material will not Render!}} | ||
* In {{csgo}} {{ | * In {{csgo}} {{Ent|LightmappedGeneric}} Modes 1-6 and 8 are not supported. 9 not with {{Ent|$bumpmap}}, {{Ent|$envmap}}, {{Ent|$selfillum}}. | ||
* In {{csgo}} {{ | * In {{csgo}} {{Ent|WorldVertexTransition}} Modes 1-6, 8-9 are not supported. 7 Does not work with {{Ent|$blendmodulatetexture}}. | ||
* In {{csgo}} {{ | * In {{csgo}} {{Ent|VertexLitGeneric}} Modes 0-9 are supported '''without''' {{Ent|$bumpmap}}, 0-7 '''with'''. However only with {{Ent|$phong}}, 5 & 6 usable. The Shader without {{Ent|$phong}} doesn't have the code to use 5 & 6. | ||
* In {{csgo}} {{ | * In {{csgo}} {{Ent|Lightmapped_4WayBlend}} Modes 1-6 are not supported. | ||
* In {{src13}} {{tf2}} {{ | * In {{src13}} {{tf2}} {{Ent|LightmappedGeneric}} Modes 2-9 are not supported. | ||
* In {{src13}} {{tf2}} {{as}}{{ | * In {{src13}} {{tf2}} {{as}}{{Ent|VertexLitGeneric}} Modes 0-9 are supported '''without''' {{Ent|$bumpmap}}, 0-6 '''with'''. However only with {{Ent|$phong}}, 5 & 6 usable. The Shader without {{Ent|$phong}} doesn't have the code to use 5 & 6. | ||
* In {{as}}{{ | * In {{as}}{{Ent|LightmappedGeneric}} and {{Ent|WorldVertexTransition}} Mode 6 is not supported. Additionally 7 does not work with {{Ent|$bumpmap2}}, {{Ent|$softedges}} and {{Ent|$blendmodulatetexture}}. | ||
* In {{l4d2}} Modes 1, 4, 6, 9, and 10 are not supported. | * In {{l4d2}} Modes 1, 4, 6, 9, and 10 are not supported. | ||
< | </div></td> | ||
{{ | </tr> | ||
{{ | |||
{{ | <tr bgcolor="#3a3a3a"> | ||
<td align="center"><kbd>$detailtint</kbd></td> | |||
{{ | <td align="center">{{KV Type|RGB matrix}}</td> | ||
{{ | <td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px"> | ||
< | Color tint of the detail texture. | ||
=== | |||
{{ | {{Bug|In {{src13}} {{tf2}} {{as}} {{csgo}} On [[VertexLitGeneric]]. Does not work with {{Ent|$bumpmap}} or {{Ent|$phong}}}} | ||
{{ | {{Bug|Does not work with {{Ent|$blendtintbybasealpha}}}} | ||
{{ | To do: Verify which games this is broken in ( Works in {{l4d2}} {{tf2}} {{portal2}} {{csgo}} {{as}} and {{src13}} ). | ||
{{ | </div></td> | ||
{{ | </tr> | ||
{{ | |||
| | <tr bgcolor="#3a3a3a"> | ||
{{ | <td align="center"><kbd>$detailframe</kbd></td> | ||
{{ | <td align="center">{{KV Type|integer}}</td> | ||
{{ | <td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px"><div style="display:flex; align-items:center; flex-wrap:wrap; gap:6px">{{Dx9}}</div>The frame to start an animated {{Code|$detail}} texture on. | ||
</div></td> | |||
< | </tr> | ||
=== | |||
{{ | <tr bgcolor="#3a3a3a"> | ||
{{ | <td align="center"><kbd>$detail_alpha_mask_base_texture</kbd></td> | ||
{{ | <td align="center">{{KV Type|boolean}}</td> | ||
{{ | <td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px"><div style="display:flex; align-items:center; flex-wrap:wrap; gap:6px">{{removed|{{csgo}}}}</div>[[WorldVertexTransition]] only. When enabled, causes the level of detail alpha to determine "base texture blending." | ||
{{ | {{Important|Since at minimum Source 2013 this parameter does not actually do anything!}} | ||
</div></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]] <tt>WorldVertexTransition</tt> Parameters</h3></td></tr> | |||
<tr><td colspan="6" bgcolor="#2E342F" align="center" style="padding-bottom: 1px;"><h3 style="font-size:1em; color:#b9b7b5; padding:0; margin:2px 0">{{Confirm|are these limited to {{csgo}}, or are they in some/all {{csgobranch}}–branch games?}}</td></tr> | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detail2</kbd></td> | |||
<td align="center">{{KV Type|texture}}</td> | |||
<td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px">Detail texture for [[WorldVertexTransition]]'s second layer. | |||
{{Note|{{Ent|LightmappedGeneric}} technically has support for these parameters and other <code>WorldVertexTransition</code> parameters, but they may not work as expected.}} | |||
{{Note|There is no {{Code|$detailtransform2}}, the Shader will use {{Ent|$basetexturetransform2}} instead! }} | |||
{{Important|Requires both {{Code|$detail}} and {{Code|$basetexture2}} to be present!}} | |||
{{Bug|Cannot be used with {{Code|$detailblendmode "9"}}.}} | |||
</div></td> | |||
</tr> | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detailscale2</kbd></td> | |||
<td align="center">{{KV Type|float}}</td> | |||
<td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px"><div style="display:flex; align-items:center; flex-wrap:wrap; gap:6px">{{only|{{csgo}}}}</div>Detail scale for {{Code|$detail2}}. | |||
</div></td> | |||
</tr> | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detailblendfactor2</kbd></td> | |||
<td align="center">{{KV Type|normal}}</td> | |||
<td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px"><div style="display:flex; align-items:center; flex-wrap:wrap; gap:6px">{{only|{{csgo}}}}</div>Detail blend factor for {{Code|$detail2}}. | |||
{{Note|{{Code|$detailblendfactor}} and {{Code|$detailblendfactor2}} are blended together before combining with the basetexture.}} | |||
</div></td> | |||
</tr> | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detailframe2</kbd></td> | |||
<td align="center">{{KV Type|integer}}</td> | |||
<td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px"><div style="display:flex; align-items:center; flex-wrap:wrap; gap:6px">{{only|{{csgo}}}}</div>The frame to start an animated $detail2 texture on. | |||
</div></td> | |||
</tr> | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detailtint2</kbd></td> | |||
<td align="center">{{KV Type|RGB matrix}}</td> | |||
<td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px"><div style="display:flex; align-items:center; flex-wrap:wrap; gap:6px">{{only|{{csgo}}}}</div>Color tint for $detail2. | |||
</div></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" align="center"><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?}} | |||
* {{Note|$detail1tint and $detail2tint do not exist on this Shader, they are missing in this list intentionally!}} | |||
* {{Important|{{Code|$detail}} has very similar parameter names, but they are not the same!}} | |||
}}</td></tr> | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detail1</kbd></td> | |||
<td align="center">{{KV Type|texture}}</td> | |||
<td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px"><div style="display:flex; align-items:center; flex-wrap:wrap; gap:6px">{{only|{{csgo}} {{portal2}}}}</div>Detail texture for [[SolidEnergy]]'s second layer. | |||
</div></td> | |||
</tr> | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detail1blendmode</kbd></td> | |||
<td align="center">{{KV Type|integer}}</td> | |||
<td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px"><div style="display:flex; align-items:center; flex-wrap:wrap; gap:6px">{{only|{{csgo}} {{portal2}}}}</div>How to combine the detail material with the albedo. | |||
There are 2 different detail blend methods that can be used. | |||
{| class="standard-table" | {| class="standard-table" | ||
! Mode | ! Mode | ||
Line 128: | Line 237: | ||
| 0 | | 0 | ||
| DecalModulate | | DecalModulate | ||
| This functions the same as the {{ | | This functions the same as the {{Ent|DecalModulate}} shader—colors below 128 darken the image, colors above lighten the image. | ||
|- | |- | ||
| 1 | | 1 | ||
Line 134: | Line 243: | ||
| $basetexture is multiplied by $detail1, Alpha of the $basetexture controls the strength of the effect. Black parts have full multiplication, White parts have no multiplication. | | $basetexture is multiplied by $detail1, Alpha of the $basetexture controls the strength of the effect. Black parts have full multiplication, White parts have no multiplication. | ||
|} | |} | ||
{{ | </div></td> | ||
{{ | </tr> | ||
{{ | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detail1scale</kbd></td> | |||
<td align="center">{{KV Type|float}}</td> | |||
<td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px"><div style="display:flex; align-items:center; flex-wrap:wrap; gap:6px">{{only|{{csgo}} {{portal2}}}}</div>Detail scale for {{Code|$detail2}}.{{Note|Does not appear to do anything.}} | |||
</div></td> | |||
</tr> | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detail1blendfactor</kbd></td> | |||
<td align="center">{{KV Type|float}}</td> | |||
<td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px"><div style="display:flex; align-items:center; flex-wrap:wrap; gap:6px">{{only|{{csgo}} {{portal2}}}}</div>Detail blend factor for {{Code|$detail2}}.{{Note|Does not appear to do anything.}} | |||
</div></td> | |||
</tr> | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detail1frame</kbd></td> | |||
<td align="center">{{KV Type|integer}}</td> | |||
<td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px"><div style="display:flex; align-items:center; flex-wrap:wrap; gap:6px">{{only|{{csgo}} {{portal2}}}}</div>The frame to start an animated {{Code|$detail1}} texture on. | |||
{{Important|{{csgo}} [[WorldVertexTransition]] Shader has very similar {{Code|$detail2}} parameter names, but they are not the same! | |||
</div></td> | |||
</tr> | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detail2</kbd></td> | |||
<td align="center">{{KV Type|texture}}</td> | |||
<td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px"><div style="display:flex; align-items:center; flex-wrap:wrap; gap:6px">{{only|{{csgo}} {{portal2}}}}</div>Detail texture for [[SolidEnergy]]'s third layer. | |||
</div></td> | |||
</tr> | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detail2blendmode</kbd></td> | |||
<td align="center">{{KV Type|integer}}</td> | |||
<td style="padding:0"><div style="max-height:unset; box-sizing:border-box; overflow-y:auto; padding:4px"><div style="display:flex; align-items:center; flex-wrap:wrap; gap:6px">{{only|{{csgo}} {{portal2}}}}</div>How to combine the detail material with the albedo. | |||
There are 2 different detail blend methods that can be used. | |||
{| class="standard-table" | {| class="standard-table" | ||
! Mode | ! Mode | ||
Line 149: | Line 290: | ||
| 0 | | 0 | ||
| Additive | | Additive | ||
| Adds $detail2 onto the $basetexture. {{ | | Adds $detail2 onto the $basetexture. {{Note|When using a $detail1, $detail2 will first be multiplied by $detail2!}} | ||
|- | |- | ||
| 1 | | 1 | ||
| Multiply | | Multiply | ||
| $basetexture is multiplied by $detail2. {{ | | $basetexture is multiplied by $detail2. {{Note|There is no way to control the strength of the effect.}} | ||
|} | |} | ||
{{ | |||
</div></td> | |||
</tr> | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detail2scale</kbd></td> | |||
<td align="center">{{KV Type|float}}</td> | |||
<td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px"><div style="display:flex; align-items:center; flex-wrap:wrap; gap:6px">{{only|{{csgo}} {{portal2}}}}</div>Detail scale for {{Code|$detail2}}. {{Note| Does not appear to do anything.}} | |||
</div></td> | |||
</tr> | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detail2blendfactor</kbd></td> | |||
<td align="center">{{KV Type|float}}</td> | |||
<td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px"><div style="display:flex; align-items:center; flex-wrap:wrap; gap:6px">{{only|{{csgo}} {{portal2}}}}</div>Detail blend factor for {{Code|$detail2}}. {{Note|Does not appear to do anything.}} | |||
</div></td> | |||
</tr> | |||
<tr bgcolor="#3a3a3a"> | |||
<td align="center"><kbd>$detail2frame</kbd></td> | |||
<td align="center">{{KV Type|integer}}</td> | |||
<td style="padding:0"><div style="max-height:200px; box-sizing:border-box; overflow-y:auto; padding:4px"><div style="display:flex; align-items:center; flex-wrap:wrap; gap:6px">{{only|{{csgo}} {{portal2}}}}</div>The frame to start an animated <code>$detail2</code> texture on. | |||
</div></td> | |||
</tr> | |||
</table> | |||
== Valve's Detail Textures == | == Valve's Detail Textures == |
Revision as of 10:12, 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 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