$bumpmap
(Redirected from $bumpscale)

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]
- Shaders: LightmappedGeneric, Lightmapped_4WayBlend, WorldVertexTransition
$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.