In the following article, we will explain how you can create Normal and Specular Maps using Crazybump. Crazybump is a useful tool for the creation process of a 3D configurator.

Specular Maps CrazyBump

A few remarks about Maps before we begin:

The source does not support Parallax mapping natively (it exists, but is disabled, unless you have a coder that can enable it again), so the Displacement Map option can be safely ignored.

Specular maps from Crazybump are used by the engine as $envmapmasks. Normal maps, on the other hand, are stored in a separate texture. This is referenced in the Material VMT file (which you will need for each texture anyway). Source does not support Ambient Occlusion, but you can still burn it into the texture by copying it to a top layer and setting it to “Multiply”.

Maperstellung / Workflow.

We use Photoshop and CBump when creating textures for the source engine. The usual pipeline looks like this:

  • Create the diffuse texture in Photoshop. This could be as simple as a reworked photo or something created entirely in Photoshop.
  • Flatten the image, select everything, copy and paste into Crazybump.
  • Go back to Photoshop and undo the Flatten command to restore all your layers.
  • Fiddle around with the sliders in CrazyBump as needed. Then start copying maps by right-clicking and selecting “Copy
    to Clipboard”.
  • Back to Photoshop. The Ambient Occlusion Map usually goes in a top layer set to Multiply with the opacity we worked on until we were satisfied with it.

Erhöhen Sie Ihr Verkaufsvolumen.

Mit unseren 3D-Konfiguratoren erreichen Sie mehr kommerziellen Erfolg auf Website..

This is where things diverge, depending on what we do.

  • If you just want a normal map, it will be saved as a separate VTF file. The usual naming conventions are yourtexturename_bump, but it doesn’t matter what you call it. You need to reference it in the .vmt file so Source knows it exists.
  • If you want a specular map, you can store a texture in the alpha channel (provided it is not already used for transparency). Due to an error, you must invert this so that it can be read correctly. Save the diffuse texture as a normal compressed texture with alpha and use $basealphaenvmapmask 1 in vmt to specify where it is.
  • If you want to have both a normal map and a specular map, you must save the specular map in the alpha channel of the normal map. The source will not read it otherwise. Save this as yourtexture_bumpspec (naming conventions don’t matter, we only find it helpful to mention in the name of the texture whether the normal map also gets a specular map) with the normal map with alpha preset. In the $normalmapalphaenvmapmask, use 1 to specify that you use the alpha channel of the normal map as the envmapmask.

Since Specular Maps are grayscale, it is best to save them as an alpha mask rather than as a separate, standalone texture. When saved as a standalone program, it is saved in RGB format with three channels, while as an alpha channel for another texture, it only captures one, which reduces the file size.

Note: Due to errors with the Photoshop VTF plugin, note these two things: Once you have used the Normalmap or Normal with Alpha preset, the Exporter will be “glued” to this preset and always saves in this format (especially with the flags “Normalmap” and “Trilinear”), regardless of how you set them until you re-state Photoshop. It’s a handicap and can really do damage if it’s something other than a normal map. Fortunately, you can disable these two flags in VTFEdit. The plugin does not save alpha channels unless you have smoothed the image before.

A good way to check if your source knows about the specular texture is to use Hammer. If you set the 3D view to “Textured”, you will see that the texture is visibly “glossy”. The $envmapmask is not loaded, so you would have to use some debugging methods in the game to check it.