Difference between revisions of "$bumpmap"
Deprecated (talk | contribs) (Added $bump_force_on from CSGO, added shader information for some parameters) |
Deprecated (talk | contribs) (Added $bumpmask from HL2) |
||
Line 35: | Line 35: | ||
{{MatParam|$bumptransform2|matrix|Same as <code>$bumptransform</code>, but for the second bump map. | {{MatParam|$bumptransform2|matrix|Same as <code>$bumptransform</code>, but for the second bump map. | ||
: {{Note|<code>[[$detail]]</code> used with <code>$detailscale</code> will override this on <code>LightmappedGeneric</code> if the shader is using <code>$addbumpmaps</code>.}}|dx9=1|shaders=LightmappedGeneric, Lightmapped_4WayBlend, WorldVertexTransition}} | : {{Note|<code>[[$detail]]</code> used with <code>$detailscale</code> will override this on <code>LightmappedGeneric</code> if the shader is using <code>$addbumpmaps</code>.}}|dx9=1|shaders=LightmappedGeneric, Lightmapped_4WayBlend, WorldVertexTransition}} | ||
+ | {{MatParam|$bumpmask|texture|If using two bump maps, use a third bump map to act as the base, with the alpha channel acting as a mask for the first two bump maps. The alpha channel of <code>$bumpmask</code> is also used as a specular mask. | ||
+ | : {{note|Only used by {{hl2}}<code>materials/nature/toxicslime002a</code>.}} | ||
+ | : {{note|Does not work with {{ent|$seamless_scale}}.}}|dx9=1|shaders=LightmappedGeneric}} | ||
{{MatParam|$bumpdetailscale1|and=$bumpdetailscale2|normal|The strength of the first and second bump maps for bump map blending.|only={{csgo}}|shaders=LightmappedGeneric}} | {{MatParam|$bumpdetailscale1|and=$bumpdetailscale2|normal|The strength of the first and second bump maps for bump map blending.|only={{csgo}}|shaders=LightmappedGeneric}} | ||
Revision as of 11:56, 12 August 2020

A material's albedo (left) compared to its bump map.
$bumpmap
is a material shader parameter available in all Source games. It specifies a texture that will provide three-dimensional lighting information for a material. The texture is a bump map, but the process it is used for is called normal mapping. The two terms are often used interchangeably, however.

$bumpmap
will disable prop_static
's per-vertex lighting in every Source game but 

Basic syntax
LightmappedGeneric
{
$basetexture brick/brickwall021a
$surfaceprop brick
$bumpmap brick/brickwall021a_normal
}
Additional parameters
$bumptransform
<matrix>
(DX9+)- Transforms the bump map texture. To do: Does this actually require DX9? Present in DX8 fallback shaders.
- The default position is
"center .5 .5 scale 1 1 rotate 0 translate 0 0"
.center
defines the point of rotation. Only useful ifrotate
is being used.scale
fits the texture into the material the given number of times. '2 1
' is a 50% scale in the X axis.rotate
rotates the texture counter-clockwise in degrees. Accepts any number, including negatives.translate
shifts the texture by the given numbers. '.5
' will shift it half-way.
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.
$bumpscale
<float>
(DX8)- Scales the bump map by the given value in DirectX 8. To do: Does this actually exist? Seemingly not present in DX8 fallback shaders.
$bumpframe
<integer>
- The frame to start an animated bump map on.
$nodiffusebumplighting
<boolean>
- Stops the bump map affecting the lighting of the material's albedo, which help combat overdraw. Does not affect the specular map.
Bug: Does not function beyond
Source 2007.[confirm]
$ssbump
<boolean>
(in all games since)
- Flags the bump map texture(s) as being self-shadowing. Click for more details.
- Shaders: LightmappedGeneric, Lightmapped_4WayBlend, WorldVertexTransition
$forcebump
<boolean>
(removed in) (DX8)
- If 0, use bumpmapping if the card says it can handle it. If 1, always force bumpmapping on.
$bump_force_on
<boolean>
(only in)
- Force bump mapping on, even for low-end machines.
- Shaders: LightmappedGeneric, Lightmapped_4WayBlend, WorldVertexTransition
$addbumpmaps
<boolean>
(only in)
- Enables the usage and blending of two bump maps together for
LightmappedGeneric
. - Shaders: LightmappedGeneric
$bumpmap2
<texture>
(DX9+)- The second bump map to use, for either
WorldVertexTransition
or forLightmappedGeneric
infor bump map blending.
- Shaders: LightmappedGeneric, Lightmapped_4WayBlend, WorldVertexTransition
$bumpframe2
<integer>
(DX9+)- Same as
$bumpframe
, but for the second bump map. - Shaders: LightmappedGeneric, Lightmapped_4WayBlend, WorldVertexTransition
$bumptransform2
<matrix>
(DX9+)- Same as
$bumptransform
, but for the second bump map. Note:
$detail
used with$detailscale
will override this onLightmappedGeneric
if the shader is using$addbumpmaps
.- Shaders: LightmappedGeneric, Lightmapped_4WayBlend, WorldVertexTransition
$bumpmask
<texture>
(DX9+)- If using two bump maps, use a third bump map to act as the base, with the alpha channel acting as a mask for the first two bump maps. The alpha channel of
$bumpmask
is also used as a specular mask. Note: Does not work with
$seamless_scale
.- Shaders: LightmappedGeneric
$bumpdetailscale1
and$bumpdetailscale2
<normal>
(only in)
- The strength of the first and second bump maps for bump map blending.
- Shaders: LightmappedGeneric
Console commands
mat_fastnobump
<boolean>
- Quickly enables/disabled normal mapping.
mat_normalmaps
<boolean>
- Displays the bump map texture of all materials that have one in place of their albedo.
- (Yes, these two commands have bump and normal the wrong way around!)
mat_bumpmap
<boolean>
- Enable or disable normal mapping. Default 1.