$ssbump: Difference between revisions
Kestrelguy (talk | contribs) m (added language bar.) |
(→Creation: Added warning about large images from my tests) |
||
Line 37: | Line 37: | ||
{{note|Bizarrely, the tool examines ''only the [[alpha channel]] of the input TGA''. The original alpha channel will be passed on to the output TGA, but serves no purpose and should be deleted.}} | {{note|Bizarrely, the tool examines ''only the [[alpha channel]] of the input TGA''. The original alpha channel will be passed on to the output TGA, but serves no purpose and should be deleted.}} | ||
{{warning|Height2SSBump may crash if it is given too large of an input image. Images 2048x2048 or greater are confirmed to crash the tool.}} | |||
You can use '''<code>normal2ssbump</code>''', another SDK tool, to generate an SSBump from a ''normal'' bump map (as opposed to a height or displacement map) - Unlike '''<code>height2ssbump</code>''' you do not need to run through the [[command line]] or use any additional parameters; simply drag-and-drop your normal map onto the program or a shortcut. | You can use '''<code>normal2ssbump</code>''', another SDK tool, to generate an SSBump from a ''normal'' bump map (as opposed to a height or displacement map) - Unlike '''<code>height2ssbump</code>''' you do not need to run through the [[command line]] or use any additional parameters; simply drag-and-drop your normal map onto the program or a shortcut. |
Revision as of 02:49, 14 June 2022


Template:Shaderparam It is a boolean parameter that flags a $bumpmap texture as being a self-shadowing bump map.
Standard bump maps only darken texels that are facing away from a light source. Self-shadowing bump maps darken both texels facing away and also any texels which are 'behind' them. You can read more about the technology behind it in this paper.

Example
LightmappedGeneric
{
$basetexture nature/rockwall_cave02a
$surfaceprop concrete
$bumpmap nature/rockwall_cave_02a_height-ssbump
$ssbump 1
$SSBumpMathFix 1 // seen in L4D2, modifies the amount of light received. Can be any number (0 removes the effect)
}
Limitations
The shadows cast by the bump map are permanently baked into the texture, meaning that they can only appear in one of three predefined locations. height2ssbump
generates shadows for light arriving from the right, top-left, and bottom-left of the texture. If light arrives from between those directions (such as from the left), the nearest available baked shadows are blended between, producing an acceptable but hardly ideal image.
Additionally, in order to preserve the illusion of height, low areas of a SSBumped material will receive less light even if it arrives head-on. This can look odd if you have too intense (rugged) a SSBump.
Creation
You need to use height2ssbump
, a command line SDK tool. The command is:
height2ssbump <options> <path\to\heightmap.tga> <float|bumpscale>
The output is <input name>-ssbump.tga
, in the same folder as the input file. Bumpscale
controls the intensity of the ssbump (i.e., coarseness of the surface).


You can use normal2ssbump
, another SDK tool, to generate an SSBump from a normal bump map (as opposed to a height or displacement map) - Unlike height2ssbump
you do not need to run through the command line or use any additional parameters; simply drag-and-drop your normal map onto the program or a shortcut.

Options
<path/filename>
- The source heightmap (TGA format).
-r <int>
- Set the number of 'rays' (default 250). More rays take more time.
-n
- Generate a conventional bump map as
<input name>-bump.tga
. - Template:L4D add
- Generate an ssbump detail texture.
-A
- Generate ambient occlusion in the alpha channel.
-f <int>
- Set smoothing filter radius (default 10; 0 disables).
-D
- Write out filtered result as
filtered.tga
.
Third Party Tools
Third-party tools capable of generating SSbump maps:
|