$bumpmap: Difference between revisions
Jump to navigation
Jump to search
Warning:
CS:GO engine branch. Not enough data is stored in the vertices for normal mapping, so the engine has no choice but to fall back.
Note:
Kestrelguy (talk | contribs) m (added language bar.) |
|||
Line 1: | Line 1: | ||
{{lang|$bumpmap}}[[Category:List of Shader Parameters|B]] | |||
[[Image:Brickwall021a normalcompare.jpg|thumb|A material's [[albedo]] (left) compared to its bump map.]] | [[Image:Brickwall021a normalcompare.jpg|thumb|A material's [[albedo]] (left) compared to its bump map.]] | ||
[[Image:Example of bump mapping.jpg|thumb|The above material in-game.]] | [[Image:Example of bump mapping.jpg|thumb|The above material in-game.]] | ||
Line 4: | 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 | {{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.}} | ||
{{note| | {{note| | ||
* 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 | * Bump maps cannot be used on decal textures except in {{csgobranch|4}}.}} | ||
==Basic | ==Basic Syntax== | ||
<syntaxhighlight lang=php highlight=5> | <syntaxhighlight lang=php highlight=5> | ||
LightmappedGeneric | LightmappedGeneric | ||
Line 20: | Line 21: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Additional | ==Additional Parameters== | ||
{{MatParam|$bumptransform|matrix|Transforms the bump map texture. {{todo|Does this actually require DX9? Present in DX8 fallback shaders.}} | {{MatParam|$bumptransform|matrix|Transforms the bump map texture. {{todo|Does this actually require DX9? Present in DX8 fallback shaders.}} | ||
{{VMT UVtransform}}|dx9=1}} | {{VMT UVtransform}}|dx9=1}} | ||
{{MatParam|$bumpframe|int|The frame to start an animated bump map on.}} | {{MatParam|$bumpframe|int|The frame to start an animated bump map on.}} | ||
{{MatParam|$nodiffusebumplighting|bool|Stops the bump map affecting the lighting of the material's [[albedo]], which help combat [[Material optimization#Overdraw|overdraw]]. Does not affect the [[specular]] map, making it useful for distorted reflections on flat surfaces. | {{MatParam|$nodiffusebumplighting|bool|Stops the bump map affecting the lighting of the material's [[albedo]], which help combat [[Material optimization#Overdraw|overdraw]]. Does not affect the [[specular]] map, making it useful for distorted reflections on flat surfaces. | ||
: {{bug|Does not function beyond {{ | : {{bug|Does not function beyond {{src07|2}}.{{confirm}}}}|shaders=LightmappedGeneric, Lightmapped_4WayBlend, WorldVertexTransition}} | ||
{{MatParam|[[$ssbump]]|bool|Flags the bump map texture(s) as being self-shadowing. Click for more details.|since={{src07}}|shaders=LightmappedGeneric, Lightmapped_4WayBlend, WorldVertexTransition}} | {{MatParam|[[$ssbump]]|bool|Flags the bump map texture(s) as being self-shadowing. Click for more details.|since={{src07}}|shaders=LightmappedGeneric, Lightmapped_4WayBlend, WorldVertexTransition}} | ||
{{MatParam|$forcebump|bool|If 0, use bumpmapping if the card says it can handle it. If 1, always force bumpmapping on.|dx8=1|removed={{l4d}}}} | {{MatParam|$forcebump|bool|If 0, use bumpmapping if the card says it can handle it. If 1, always force bumpmapping on.|dx8=1|removed={{l4d}}}} | ||
{{MatParam|$bump_force_on|bool|Force bump mapping on, even for low-end machines.|since={{portal2}}|shaders=LightmappedGeneric, Lightmapped_4WayBlend, WorldVertexTransition}} | {{MatParam|$bump_force_on|bool|Force bump mapping on, even for low-end machines.|since={{portal2}}|shaders=LightmappedGeneric, Lightmapped_4WayBlend, WorldVertexTransition}} | ||
{{MatParam|$addbumpmaps|bool|Enables the usage and blending of two bump maps together for {{ent|LightmappedGeneric}}.|only={{ | {{MatParam|$addbumpmaps|bool|Enables the usage and blending of two bump maps together for {{ent|LightmappedGeneric}}.|only={{csgobranch}}|shaders=LightmappedGeneric}} | ||
{{MatParam|$bumpmap2|texture|The second bump map to use, for | {{MatParam|$bumpmap2|texture|The second bump map to use, either for {{ent|WorldVertexTransition}} or for <code>LightmappedGeneric</code> in {{csgobranch}} for bump map blending.|dx9=1|shaders=LightmappedGeneric, Lightmapped_4WayBlend, WorldVertexTransition}} | ||
{{MatParam|$bumpframe2|int|Same as <code>$bumpframe</code>, but for the second bump map.|dx9=1|shaders=LightmappedGeneric, Lightmapped_4WayBlend, WorldVertexTransition}} | {{MatParam|$bumpframe2|int|Same as <code>$bumpframe</code>, but for the second bump map.|dx9=1|shaders=LightmappedGeneric, Lightmapped_4WayBlend, WorldVertexTransition}} | ||
{{MatParam|$bumptransform2|matrix|Same as <code>$bumptransform</code>, but for the second bump map. | {{MatParam|$bumptransform2|matrix|Same as <code>$bumptransform</code>, but for the second bump map. | ||
: {{Note| | : {{Note|{{ent|$detail}} used with <code>$detailscale</code> will override this on <code>LightmappedGeneric</code> if the shader is using <code>$addbumpmaps</code>.}}|dx9=1|shaders=LightmappedGeneric, Lightmapped_4WayBlend, WorldVertexTransition}} | ||
{{MatParam|$bumpmask|texture|If using two bump maps, use a third bump map to act as the base, with the alpha channel acting as a mask for the first two bump maps. The alpha channel of <code>$bumpmask</code> is also used as a specular mask. | {{MatParam|$bumpmask|texture|If using two bump maps, use a third bump map to act as the base, with the alpha channel acting as a mask for the first two bump maps. The alpha channel of <code>$bumpmask</code> is also used as a specular mask. | ||
: {{note|Only used by {{hl2}}<code>materials/nature/toxicslime002a</code>.}} | : {{note|Only used by {{hl2}}<code>materials/nature/toxicslime002a</code>.}} | ||
: {{note|Does not work with | : {{note|Does not work with {{ent|$detail}} and {{ent|$seamless_scale}}.}}|dx9=1|shaders=LightmappedGeneric}} | ||
{{MatParam|$bumpdetailscale1|and=$bumpdetailscale2|normal|The strength of the first and second bump maps for bump map blending.|only={{ | {{MatParam|$bumpdetailscale1|and=$bumpdetailscale2|normal|The strength of the first and second bump maps for bump map blending.|only={{csgobranch}}|shaders=LightmappedGeneric}} | ||
==Console | ==Console Commands== | ||
{{IO|mat_fastnobump|param=bool|Quickly enables/disabled normal mapping.}} | {{IO|mat_fastnobump|param=bool|Quickly enables/disabled normal mapping.}} | ||
{{IO|mat_normalmaps|param=bool|Displays the bump map texture of all materials that have one in place of their [[albedo]].}} | {{IO|mat_normalmaps|param=bool|Displays the bump map texture of all materials that have one in place of their [[albedo]].}} | ||
Line 45: | Line 46: | ||
{{IO|mat_bumpmap|param=bool|Enable or disable normal mapping. Default 1.}} | {{IO|mat_bumpmap|param=bool|Enable or disable normal mapping. Default 1.}} | ||
==See | ==See Also== | ||
* {{ent|$ssbump}} | * {{ent|$ssbump}} | ||
* [[Bump map]], for technical details and a guide to creation. | * [[Bump map]], for technical details and a guide to creation. | ||
Revision as of 15:16, 9 May 2022

A material's albedo (left) compared to its bump map.
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.

$bumpmap
will disable prop_static's per-vertex lighting in every Source game before 

- In the
Water
shader,$bumpmap
is for a DX8 du/dv map. Use$normalmap
instead. - Bump maps cannot be used on decal textures except in
CS:GO engine branch.
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 <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.