Difference between revisions of "$bumpmap"

From Valve Developer Community
Jump to: navigation, search
m
Line 10: Line 10:
 
* The $bumpmap parameter is not compatible with decals textures.}}
 
* The $bumpmap parameter is not compatible with decals textures.}}
  
== Basic syntax ==
+
==Basic syntax==
 
 
 
<syntaxhighlight lang=php highlight=5>
 
<syntaxhighlight lang=php highlight=5>
 
LightmappedGeneric
 
LightmappedGeneric
Line 21: Line 20:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== Additional parameters ==
+
==Additional parameters==
 
 
 
; <code>$bumptransform <matrix></code>
 
; <code>$bumptransform <matrix></code>
 
: Transforms the bump map texture. Requires DirectX 9 or above.
 
: Transforms the bump map texture. Requires DirectX 9 or above.
Line 41: Line 39:
 
; <code>$bumpframe2 <integer></code>
 
; <code>$bumpframe2 <integer></code>
 
: Used by the [[WorldVertexTransition]] shader in blend materials that display two textures. DirectX 9 required.
 
: Used by the [[WorldVertexTransition]] shader in blend materials that display two textures. DirectX 9 required.
; <code>$bumpmapalphaphongmask <bool></code>
+
; <code>$bumpmapalphaphongmask <bool></code>  
 
: Uses the bump map's alpha as the phong mask for the base texture
 
: Uses the bump map's alpha as the phong mask for the base texture
 +
{{Todo|Where did '''$bumpmapalphaphongmask''' come from? Doesn't phong already use the alpha channel of the bumpmap if one exists?}}
  
== Console commands ==
+
==Console commands==
 
 
 
; <code>mat_fastnobump <[[bool]]></code>
 
; <code>mat_fastnobump <[[bool]]></code>
 
: Quickly enables/disabled normal mapping.
 
: Quickly enables/disabled normal mapping.
Line 53: Line 51:
 
(Yes, these two commands have bump and normal the wrong way around!)
 
(Yes, these two commands have bump and normal the wrong way around!)
  
== See also ==
+
==See also==
  
 
* <code>[[$ssbump]]</code>
 
* <code>[[$ssbump]]</code>

Revision as of 09:33, 3 July 2016

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 called normal mapping. The two terms are often used interchangeably, however.

Warning: $bumpmap will disable prop_static's per-vertex lighting. Not enough data is stored in the vertices for normal mapping, so the engine has no choice but to fall back.

Note:
  • In the Water shader, $bumpmap is for a DX8 du/dv map. Use $normalmap instead.
  • The $bumpmap parameter is not compatible with decals textures.

Basic syntax

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 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
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 <?>
Confirm:DX8 version of center?
$bumpmap2 <texture>
$bumpframe2 <integer>
Used by the WorldVertexTransition shader in blend materials that display two textures. DirectX 9 required.
$bumpmapalphaphongmask <bool>
Uses the bump map's alpha as the phong mask for the base texture

To do: Where did $bumpmapalphaphongmask come from? Doesn't phong already use the alpha channel of the bumpmap if one exists?

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!)

See also