$detail: Difference between revisions
TomEdwards (talk | contribs) |
TomEdwards (talk | contribs) (→Additional parameters: source code discoveries) |
||
| Line 13: | Line 13: | ||
== Additional parameters == | == Additional parameters == | ||
; <code>$detailtexturetransform <matrix></code> | |||
: Rotates, scales, etc. the detail texture. Requires DX9. {{VMT UVtransform}} | |||
; <code>$detailscale <[[float]]></code> | ; <code>$detailscale <[[float]]></code> | ||
: Fits the detail texture onto the material the given number of times. Generally around 7 or 8 for a 128px detail texture | : Fits the detail texture onto the material the given number of times (default = 4). Generally used instead of <code>$detailtexturetransform</code> with a value of around 7 or 8 for a 128px detail texture. | ||
; <code>$detailblendfactor <[[normal]]></code> | ; <code>$detailblendfactor <[[normal]]></code> | ||
: Effectively an <code>[[$alpha]]</code> value for the detail texture. | : Effectively an <code>[[$alpha]]</code> value for the detail texture. | ||
; <code>$detailblendmode <[[int]]></code> | ; <code>$detailblendmode <[[int]]></code> | ||
: | : How to combine the detail material with the albedo. | ||
:* 0 = normal (darken) | |||
:* 1 = additive (lighten) | |||
:* 2 = alpha blend detail over base | |||
:* 3 = crossfade | |||
; <code>$detailtint "<[[RGB]] matrix>"</code> | ; <code>$detailtint "<[[RGB]] matrix>"</code> | ||
: Modifies the colour of the detail texture. | : Modifies the colour of the detail texture. | ||
; <code>$detailframe <int></code> | ; <code>$detailframe <int></code> | ||
: The frame to start animated detail texture on. Requires DX9. | : The frame to start animated detail texture on. Requires DX9. | ||
; <code>$detail_alpha_mask_base_texture <[[bool]] | ; <code>$detail_alpha_mask_base_texture <[[bool]]></code> | ||
: | : <code>[[WorldVertexTransition]]</code> only. When enabled, causes the level of detail alpha to determine "base texture blending". {{todo|''Which'' base texture?}} | ||
== Valve's detail textures == | == Valve's detail textures == | ||
Revision as of 10:43, 3 May 2010
$detail specifies a grayscale texture with which Source will add high-resolution detail when the material is viewed up close, by darkening the albedo appropriately. It is very effective for increasing the apparent resolution of a texture, and was used extensively in Episode Two.
Syntax
$detail <texture>
You will probably want to use at least $detailscale (see below) as well.
Additional parameters
$detailtexturetransform <matrix>- Rotates, scales, etc. the detail texture. Requires DX9.
- The default position is
center .5 .5 scale 1 1 rotate 0 translate 0 0.centerdefines the point of rotation. Only useful ifrotateis being used.scalefits the texture into the material the given number of times.2 1is a 50% scale in the horizontal X axis while the vertical Y axis is still at original scale.rotaterotates the texture counter-clockwise in degrees. Accepts any number, including negatives.translateshifts the texture by the given numbers..5will 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. [todo tested in ?]
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. [todo tested in ?]
$detailscale <float>- Fits the detail texture onto the material the given number of times (default = 4). Generally used instead of
$detailtexturetransformwith a value of around 7 or 8 for a 128px detail texture. $detailblendfactor <normal>- Effectively an
$alphavalue for the detail texture. $detailblendmode <int>- How to combine the detail material with the albedo.
- 0 = normal (darken)
- 1 = additive (lighten)
- 2 = alpha blend detail over base
- 3 = crossfade
$detailtint "<RGB matrix>"- Modifies the colour of the detail texture.
$detailframe <int>- The frame to start animated detail texture on. Requires DX9.
$detail_alpha_mask_base_texture <bool>WorldVertexTransitiononly. When enabled, causes the level of detail alpha to determine "base texture blending".Todo: Which base texture?
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 (1024x1024), 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 & 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
