[TUTORIAL] Making a texture with a normal map

Here's how I built a cobblestone texture for my castle map (cp_siege). What I cover in here is the process of using free source photos to produce a TF2ish texture with a bump map. I don't go into the details of using photoshop (a screencast would be better for that), or of compiling vtfs, since that's already covered in other tutorials.

First I decided on the look I wanted. I was after rectangular, fairly even granite cobbles. Here was a nice reference image on flickr:

Starting from a photo is a good way to get a realistic-looking image: I was going to take some source photos myself, but my camera packed it in, so I hopped on over to cgtextures.com to find some suitable images. In particular, I was looking for a nice high-contrast picture. This one fit the bill quite nicely:

I cropped this down, edited it to be seamless, resized it to 1024x1024, and adjusted the levels and colours a bit:

I wanted the cobbles to look like granite, not sandstone, so it was off to cgtextures to find another source image:

I cropped and resized it, and tweaked the colours to get what I wanted:

I put this in a layer underneath the cobbles, and changed the cobbles layer to "Multiply" mode to get nice granite cobbles. Notice how a little of the texture of the original cobblestones has remained:

So the texture was shaping up well. I didn't like the black cracks, so I thought I'd find a source image to put dirt in the cracks. From cgtextures:

I cropped and resized this one down to fit:

I now needed to make the dirt only appear in the cracks between stones. So I copied the light cobblestones texture, increased its brightness and contrast, and blurred it slightly. This gave me a nice outline of the cobblestones:

Taking this, I inverted it and put it in a mask for the dirt, so the dirt was now only in the cracks:

You can see that the stones don't seem to stand out from the dirt at all. I added another layer with a black "inner glow" on the stones so they'd be better defined:

This is now almost right. It just looks a little to grainy and 'realistic'. I used the 'Artistic -> Dry Brush' filter to give it more of a painted look. I then tweaked the lightness a little as well. This is the final diffuse map:

Now for the normal map. To make this, I used Nvidia's photoshop plugin. This works from a variety of sources, but I find it works well if you make a heightmap indicating the different levels of the texture. Since the cracks are low and the bricks are high, I used the same outline image again for the heightmap:

Running it through the normal map filter, using the "Max (R, G, B)" conversion produced the normal map:

Now we need to put it together. First I resize the texture down to 512x512 (it doesn't need to be bigger), and then I make a simple VMT file:

Epic
Nothing I didn't already know but thats besides the point.
I think you need to make the normal map for your stones rounded slightly (more like cobbles) and you definatly need some brush strokes in there

it would likely add to the tutorial if you added brush strokes steps as a optional add-on

and also...is there somewhere i can find a list of the other texture types?
like for this you have "rock" listed in the vmt code, if, say you wanted a texture that behaved like wood, would you just replace rock with wood?

it would likely add to the tutorial if you added brush strokes steps as a optional add-on

Click to expand...

Unfortunately, I don't remmeber the steps I took to add the brush strokes; although you can see the end result, and download the PSD to see how it's different.

and also...is there somewhere i can find a list of the other texture types?
like for this you have "rock" listed in the vmt code, if, say you wanted a texture that behaved like wood, would you just replace rock with wood?

eh...i was mostly looking for how to make a texture shiny, with a bit of reflectiveness
like polished metal, or polished granite
reflecting players isn't something i was aiming for
the 1st link doesn't look like what i want, but Ill play with what it says in the 2nd tomorrow, the most useful thing though would be a name of a default shiny texture, so I can look at the vmt and see how its done

If it's purple checkers layered on top of your textures in-game, then look for info on cubemaps, if you add but a single env_cubemap the checkers will disappear, but you want to take a look at it a little bit more. Just search the forums for Cubemaps. In fact, if you searched for checkers or Purple checkers you'd get an answer

If your whole texture is with checkers, there is either a problem in your VMT or materials folder configuration. In the VMT you don't add the .vtf extension!