$detail: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 1: Line 1:
{{Lang}} {{Source topicon}}{{seealso|For detail textures as used in {{goldsrc|2}}, see [[Detail textures (GoldSrc)]]}}
{{Language subpage}}
[[Image:Detail.jpg|frame|right|A detail texture (noise_detail_01), and its effect when applied to a material (brickwall031a).]]
{{seealso|For detail textures as used in {{goldsrc|2}}, see [[Detail textures (GoldSrc)]]}}


{{Shaderparam|$detail}} 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 <tt>$detailblendmode</tt>. You can also use a full color (as opposed to grayscale) image and blend it using <tt>$detailblendmode 2</tt>. It is very effective for increasing the apparent resolution of a texture, and was used extensively in {{hl2ep2|2}}.
[[File:Detail.jpg|frame|right|A detail texture (noise_detail_01), and its effect when applied to a material (brickwall031a).]]
 
{{shaderparam|$detail}} 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 <tt>$detailblendmode</tt>. You can also use a full color (as opposed to grayscale) image and blend it using {{Code|$detailblendmode 2}}. It is very effective for increasing the apparent resolution of a texture, and was used extensively in {{hl2ep2|4}}.


{{Bug| {{Code|$detail}} textures do not work in conjunction with some parameters:
{{Bug| {{Code|$detail}} textures do not work in conjunction with some parameters:
Line 10: Line 12:
}}
}}


: {{Note|<span><!-- --></span>
: {{Note|<span><!-- This fixes the list --></span>
:* In {{csgo}}, {{ent|LightmappedGeneric}} does not appear to even have {{ent|$lightwarptexture}} as a parameter... So it 'cannot not' work.
:* In {{csgo}}, {{ent|LightmappedGeneric}} does not appear to even have {{ent|$lightwarptexture}} as a parameter... So it 'cannot not' work.
:* In {{as}}{{csgo}} on {{ent|VertexLitGeneric}}, Does not work with {{ent|$desaturatewithbasealpha}}
:* In {{as}}{{csgo}} on {{ent|VertexLitGeneric}}, Does not work with {{ent|$desaturatewithbasealpha}}
Line 53: Line 55:
:There are 12 different detail blend methods that can be used.
:There are 12 different detail blend methods that can be used.
:The blend modes are implemented in <code>stdshaders/common_ps_fx.h</code>.
:The blend modes are implemented in <code>stdshaders/common_ps_fx.h</code>.
[[Image:Detail_blend_modes_l4d2.jpg||320px|thumb|right|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%).]]
[[File:Detail_blend_modes_l4d2.jpg||320px|thumb|right|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%).]]
{{Table
{{Table
| {{tr
| {{tr
Line 248: Line 250:
  $detailblendmode 0
  $detailblendmode 0


Additionally, there are 2 other stock detail textures. <code>detail\detailash001a</code> and <code>detail\detaildirt001a</code>. These files were used in the "leaked" version of {{hl2|2}} and in {{hl2ep1|2}} using the following parameters.
Additionally, there are 2 other stock detail textures. {{Code|detail\detailash001a}} and {{Code|detail\detaildirt001a}}. These files were used in the "leaked" version of {{hl2|2}} and in {{hl2ep1|2}} using the following parameters.


<code>Concrete/concretefloor009a</code> in ''Episode One'' materials:
{{Code|Concrete/concretefloor009a}} in ''Episode One'' materials:


  $detail detail/'''detaildirt001a'''
  $detail detail/'''detaildirt001a'''
  $detailscale 0.27
  $detailscale 0.27


<code>Metal/metalfloor005a</code> in ''Episode One'' materials:
{{Code|Metal/metalfloor005a}} in ''Episode One'' materials:


  $detail detail/'''detailash001a'''
  $detail detail/'''detailash001a'''
  $detailscale 0.50
  $detailscale 0.50
[[Category:List of Shader Parameters|D]]


== See Also ==
== See Also ==
[https://web.archive.org/web/20191215081655/https://blog.maxofs2d.net/post/83154062767/hiding-large-scale-tiling-with-detail-textures Hiding large-scale tiling with detail textures] - How to make texture repeating less noticeable using $detail
[https://web.archive.org/web/20191215081655/https://blog.maxofs2d.net/post/83154062767/hiding-large-scale-tiling-with-detail-textures Hiding large-scale tiling with detail textures] - How to make texture repeating less noticeable using $detail

Revision as of 04:04, 29 June 2023

English (en)Français (fr)中文 (zh)Translate (Translate)
See also:  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.

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