$detail: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (→‎top: clean up, replaced: {{goldsrc → {{gldsrc)
(replaced blendmode note to a table. However, some parts are described poorly and need to be reworded by someone who knows about the limitations.)
Line 125: Line 125:
}}
}}
}}
}}
 
{{ModernImportant|Listed below are limitations which apply to the various modes for specific games and shaders. Using a non-supported Blendmode can/will result in "Missing Shader Combo" errors flooding the console. The material will not render!
{{ModernImportant|Listed below is which blendmodes work in specific branches of the Source Engine with specific shaders. Using a non-supported Blendmode can/will result in "Missing Shader Combo" errors flooding the console. The material will not render!
{{Table
* In {{csgo}} {{ent|LightmappedGeneric}} Modes 1-6 and 8 are not supported. 9 not with {{ent|$bumpmap}}, {{ent|$envmap}}, {{ent|$selfillum}}.
| {{tr
* In {{csgo}} {{ent|WorldVertexTransition}} Modes 1-6, 8-9 are not supported. 7 Does not work with {{ent|$blendmodulatetexture}}.
| {{th| Branch |bgcolor=#373527 |color=#eeba00 }} {{th| Shader |bgcolor=#373527 |color=#eeba00}} {{th| Limitation |bgcolor=#373527 |color=#eeba00 }}
* 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}} {{ent|Lightmapped_4WayBlend}} Modes 1-6 are not supported.
{{tr
* In {{src13}} {{tf2}} {{ent|LightmappedGeneric}} and {{ent|WorldVertexTransition}} Modes 2-9 are not supported.
| {{td| {{csgo}} |dark=1}}
* In {{src13}} {{tf2}} {{as}}{{ent|VertexLitGeneric}} Modes 0-9 are supported '''without''' {{ent|$bumpmap}}, 0-6 '''with'''. However, 5&6 are only supported with {{ent|$phong}}; the Shader without {{ent|$phong}} doesn't have the code to use 5 & 6.
  {{td| {{ent|LightmappedGeneric}} }}
* 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}}.
  {{td| Modes 1-6 and 8 are not supported.<br>
* In {{l4d2}} Modes 1, 4, 6, 9, and 10 are not supported.
Mode 9 does not work with {{ent|$bumpmap}}, {{ent|$envmap}}, {{ent|$selfillum}}.}}
{{todo|Make this a table, so that it's less confusing.}}
}}
{{tr
| {{td| {{csgo}} |dark=1}}
  {{td| {{ent|WorldVertexTransition}} }}
  {{td| Modes 1-6, 8-9 are not supported.<br>
Mode 7 does not work with {{ent|$blendmodulatetexture}}.}}
}}
{{tr
| {{td| {{csgo}} |dark=1}}
  {{td| {{ent|VertexLitGeneric}} }}
  {{td| 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.
{{todo|This seems contradictory. 0-9 work without $bumpmap, but 0-7 works with $bumpmap? Clarify the description of this.}} }}
}}
{{tr
| {{td| {{csgo}} |dark=1}}
  {{td| {{ent|Lightmapped_4WayBlend}} }}
  {{td| Modes 1-6 are not supported. }}
}}
{{tr
| {{td| {{src13}} {{tf2}} |dark=1}}
  {{td| {{ent|LightmappedGeneric}}<br>{{ent|WorldVertexTransition}} }}
  {{td| Modes 2-9 are not supported. }}
}}
{{tr
| {{td| {{src13}} {{tf2}} {{as}} |dark=1}}
  {{td| {{ent|VertexLitGeneric}} }}
  {{td| Modes 0-9 are supported '''without''' {{ent|$bumpmap}}, 0-6 '''with'''. However, 5&6 are only supported with {{ent|$phong}}; the Shader without {{ent|$phong}} doesn't have the code to use 5 & 6.
{{todo|This seems contradictory. 0-9 work without $bumpmap, but 0-7 works with $bumpmap? Clarify the description of this.}} }}
}}
{{tr
| {{td| {{as}} |dark=1}}
  {{td| {{ent|LightmappedGeneric}}<br>{{ent|WorldVertexTransition}} }}
  {{td| Mode 6 is not supported.<br>
Mode 7 does not work with {{ent|$bumpmap2}}, {{ent|$softedges}} and {{ent|$blendmodulatetexture}}. }}
}}
{{tr
| {{td| {{l4d2}} |dark=1}}
  {{td| All shaders }}
  {{td| Modes 1, 4, 6, 9, and 10 are not supported. }}
}}
}}
}}
}}
}}
}}

Revision as of 10:30, 6 January 2024

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