$bumpmap

$bumpmap is a material shader parameter available in all Source games.

$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.

Note:

  • In the Water shader, $bumpmap is for a DX8 du/dv map. Use $normalmap instead.

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".

  1. center defines the point of rotation. Only useful if rotate is being used.

  2. scale fits the texture into the material the given number of times. '2 1' is a 50% scale in the X axis.

  3. rotate rotates the texture counter-clockwise in degrees. Accepts any number, including negatives.

  4. 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.

$ssbump <boolean>(New with Half-Life 2: Episode Two / Source 2007)

Flags the bump map texture(s) as being self-shadowing. Click for more details.

$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.

$forcebump <boolean> (DX8)

If 0, use bumpmapping if the card says it can handle it. If 1, always force bumpmapping on.

$addbumpmaps <boolean>

(Only in Counter-Strike: Global Offensive)Enables the usage and blending of two bump maps together for LightmappedGeneric.

$bumpmap2 <texture> (DX9+)

$bumpframe2 <integer>

(DX9+)Same as $bumpframe, but for the second bump map.

$bumptransform2 <matrix> (DX9+)

Same as $bumptransform, but for the second bump map.

Note:$detail used with $detailscale will override this on LightmappedGeneric.

$bumpdetailscale1 and $bumpdetailscale2 <normal> (Only in Counter-Strike: Global Offensive)

The strength of the first and second bump maps for bump map blending.

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.

Last updated