The following is the procedure I came up with to produce a working SSbump map (for use with the Source Engine). I had to figure out some method, because at the time Half Life 2-Episode 2 had just come out, and there were no tutorials anywhere on how they worked. This method may be completely different than how valve does it, but I wanted to work it out for science at the time, and get something useable to my comrades in modding.
1. I started with a test diffuse map, and doubled this material as the height map in 3D studio Max.
2. I then created a gradient material, and set it as the spherical environment map in a scene with a square model in the center. The diffuse map (and height map) are applied to the square.\
3. After baking a texture from the result from the square, this is what it should look like. The hue is the direction of the SSbump normals.
4. This is a breakdown of the RGB channels in the new SSbump map, to show how the light from the gradient effects the surface of the texture.
5. Next I made a simple tile texture in Max with random tile heights. I followed the same procedure as above to get this SSbump map.
6. And here is the map in the game. The shorter tiles look bent because of the height of the adjacent tiles, and the shadows they produced in 3D studio Max. This can be corrected to taste by using harder lights, or a less extreme height map.
Also, erroneously, the directions in the SSbump map are being used here to tell which direction the reflections should go, when the purpose of the SSbump is to allow the texture to shadow itself when using a flashlight or in this game’s case, night vision goggles. It is for this reason I prefer to use softer shadows. (instead of razor sharp edges)