$bumpmap: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m ($bumptransform additional information ( does not work with $detail ))
m (Added Caveats and changed first few Templates to Modern ones)
Line 5: Line 5:
{{Shaderparam|$bumpmap}} 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 [[Wikipedia:Normal mapping|normal mapping]]. The two terms are often used interchangeably, however.
{{Shaderparam|$bumpmap}} 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 [[Wikipedia:Normal mapping|normal mapping]]. The two terms are often used interchangeably, however.


{{warning|<code>$bumpmap</code> will disable {{ent|prop_static}}'s per-vertex lighting in every Source game before {{csgobranch|4}}. Not enough data is stored in the vertices for normal mapping, so the engine has no choice but to fall back.}}
{{ModernWarning|<code>$bumpmap</code> will disable {{ent|prop_static}}'s per-vertex lighting in every Source game before {{csgobranch|4}}.<br>
Not enough data is stored in the vertices for normal mapping, so the engine has no choice but to fall back.}}


{{note|
{{ModernNote|
* In the <code>[[Water_(shader)|Water]]</code> shader, <code>$bumpmap</code> is for a DX8 [[Du/dv_map|du/dv map]]. Use <code>$normalmap</code> instead.
* In the <code>[[Water_(shader)|Water]]</code> shader, <code>$bumpmap</code> is for a DX8 [[Du/dv_map|du/dv map]]. Use <code>$normalmap</code> instead.
* Bump maps cannot be used on decal textures except in {{csgobranch|4}}.}}
* Bump maps cannot be used on decal textures except in {{csgobranch|4}}.
* On {{ent|VertexLitGeneric}} using {{ent|$lightwarptexture}} will force bumpmapping even if <code>$bumpmap</code> is not in the VMT. A default one is bound instead, all <code>$bumpmap</code> caveats come with it.}}
{{ModernBug| <code>$bumpmap</code> causes some other Parameters to not work. Parameters that will break with <code>$bumpmap</code> are ( but not limited to ) :
* Will not work with materials using {{ent|$envmapmask}}. Except on {{ent|VertexLitGeneric}}{{mapbase|only}} and {{ent|LightmappedGeneric}}{{csgo|only}}. See [[$envmapmask#Alternative_methods|Alternative methods]].
* In {{csgo}} {{ent|LightmappedGeneric}}, [[$detail#Parameters and Effects|$detailblendmode]] 9 cannot be used.
* In {{csgo}} {{ent|VertexLitGeneric}}, [[$detail#Parameters and Effects|$detailblendmode]] 5, 6, 8, 9, 10 and 11 not usable. With {{ent|$phong}} 5 and 6 can be used.
* In {{src13}}{{tf2}}{{as}} {{ent|VertexLitGeneric}}, [[$detail#Parameters and Effects|$detailblendmode]] 5-11 not usable. With {{ent|$phong}} 5 and 6 can be used.
* In {{src13}}{{tf2}}{{as}}{{csgo}} [[$detail#Parameters and Effects|$detailtint]] won't work.
* {{ent|$distancealpha}}, {{ent|$outline}}, {{ent|$softedges}} won't work.
* On {{ent|LightmappedGeneric}}, cannot be used with {{ent|$basealphaenvmapmask}}
}}


==Basic Syntax==
==Basic Syntax==

Revision as of 22:08, 20 February 2023

English (en)Español (es)Français (fr)中文 (zh)Translate (Translate)
A material's albedo (left) compared to its bump map.
The above material in-game.

Template:Shaderparam 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.

Template:ModernWarning

Template:ModernNote Template:ModernBug

Basic Syntax

LightmappedGeneric
{
	$basetexture	brick/brickwall021a
	$surfaceprop	brick
	$bumpmap		brick/brickwall021a_normal
}

Additional Parameters

$bumptransform $bumpframe $nodiffusebumplighting [[$ssbump|$ssbump]] $forcebump $bump_force_on $addbumpmaps $bumpmap2 $bumpframe2 $bumptransform2 $bumpmask $bumpdetailscale1

Console Commands

mat_fastnobump <booleanRedirectInput/boolean>
Quickly enables/disabled normal mapping.
mat_normalmaps <booleanRedirectInput/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 <booleanRedirectInput/boolean>
Enable or disable normal mapping. Default 1.

See Also