$bumpmap: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (Robot: fixing template case.)
($bumpmap disables prop_static's per-vertex lighting :o)
Line 3: Line 3:


The '''$bumpmap''' [[VMT]] parameter 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 [[Wikipedia:Normal mapping|normal mapping]].
The '''$bumpmap''' [[VMT]] parameter 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 [[Wikipedia:Normal mapping|normal mapping]].
{{bug|$bumpmap disables [[prop_static]]'s per-vertex lighting! It is compiled correctly, but not rendered.}}


== Basic syntax ==
== Basic syntax ==
Line 11: Line 13:
  {
  {
  [[$basetexture]] brick/brickwall021a
  [[$basetexture]] brick/brickwall021a
  [[$surfaceprop]] brick
  [[$surfaceprop]] brick
  '''$bumpmap brick/brickwall021a_normal'''
  '''$bumpmap brick/brickwall021a_normal'''
  }
  }



Revision as of 10:33, 4 September 2009

A material's albedo (left) compared to its bump map.
The above material in-game.

The $bumpmap VMT parameter 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 normal mapping.

Icon-Bug.pngBug:$bumpmap disables prop_static's per-vertex lighting! It is compiled correctly, but not rendered.  [todo tested in ?]

Basic syntax

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

Additional parameters

$bumptransform <matrix>
Transforms the bump map 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 ?]
$ssbump
Flags the bump map texture as being self-shadowing. Click for more details.
$bumpscale <float>
Scales the bump map by the given value in DirectX 8.
$bumpframe <integer>
The frame to start an animated bump map on.
$nodiffusebumplighting <bool>
Stops the bump map affecting the lighting of the material's albedo, which help combat overdraw. Does not affect the specular map.
$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.

Console commands

mat_fastnobump <bool>
Quickly enables/disabled normal mapping.
mat_normalmaps <bool>
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!)

Known Problems

Some users have reported that HLMV does not display normal maps, even though the game/mod itself does.

See also

  • Bump map, for technical details and a guide to creation.