$bumpmap

From Valve Developer Community
Revision as of 04:00, 10 July 2008 by TomEdwards (talk | contribs) (redone)
Jump to navigation Jump to search
A material's albedo (left) compared to its normal map.
The above material in-game.

The $bumpmap VMT parameter specifies a texture that will provide three-dimensional lighting information. The texture is known as a Normal Map.

Basic syntax

$bumpmap <texture>
LightmappedGeneric
{
	$basetexture	brick/brickwall021a
	$surfaceprop 	brick
	$bumpmap 	brick/brickwall021a_normal
}

Additional parameters

$bumptransform <matrix>
Transforms the bumpmap texture. Requires DirectX 9 or above.
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 horizontal X axis while the vertical Y axis is still at original scale.
  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. 1 will shift it once completely over, which is the same as not moving it at all.
Note.pngNote:All values must be included!
Icon-Bug.pngBug: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 ?]
Icon-Bug.pngBug: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 ?]
$bumpscale <float>
Scales the normal map by the given value in DirectX 8.
$bumpframe <integer>
Frame number to use from an animated texture.
$nodiffusebumplighting <bool>
See Dealing with fillrate issues. Only relevant when using LightmappedGeneric.
$forcebump <bool>
Forces DirectX 8 cards to render the bump map. They normally don't for performance reasons.
$bumpoffset <?>
Todo: dx8 version of center?
$bumpmap2 <texture>
$bumpframe2 <integer>
Used by the WorldVertexTransition shader in blend materials that display two textures. DirectX 9 required.

See also