I don't have any links, but I'll tell you quickly in which way I made the few unique textures to stormkeep2.
You'll need:
-
The GIMP
-
Resynthesizer plugin for The GIMP
-
Normalmap plugin for The GIMP
This procedure works best on surfaces that don't have a special order in structure of sorts. For instance grass, rock, metal, wood etc. It's harder on brick walls, tile floors and such, as the resynthesizer plugin does not really pay attention to the overall structure (I guess there's some way, but haven't quite figured out yet).
So, start out with a photo, open it up in GIMP. Select the area you'd like to create a texture of, make sure the selection is a square (iirc hold shift while dragging). Next, scale down to a power of 2 (eg. 512x512, 1024x1024) and using the rectangle select tool, select about 10% of the lower area of the picture and 10% from the right area of the picture (do the second selection by holding shift+click). You should now be left with a rectangle/square of unselected area in the upper left part of the picture. This part will be used by the resynthesizer plugin to copy pixels off into the areas you have selected, so if you want to preserve some interesting areas in your selection, simply unselect them (ctrl+mouse). Make sure though that areas near the edges are selected, to make tiling look good.
When you are done so far, find the resynthesizer plugin from the Map -> menu (iirc). Make sure you have ticked tile both horizontally and vertically, and hit ok. Now it's time to go get a cup of coffee if your texture is of a big resolution, as this tends to take some time
When it's done, you should now have a quite good looking tiling texture, if it was a texture that works good with resynthesizer
If not, you'll need to do manual adjustments (with the clone tool etc).
Save that texture somewhere, as .tga for now, say
texturename.tga. After saving, use the normalmap plugin to generate a normalmap for the texture, if needed. The result is obviously not always good, as it has no 3D data to analyze. Nevertheless, if you're happy with the result and deem it's worth to have your map use up some more resources with this normalmap, save it as
texturename_norm.tga. Make sure the normalmap is correct by launching a rocket next to the texture in the game, using the console command
g_balance_rocketlauncher_startspeed 0 first to freeze it in midair, while still allowing you to walk around and observe the texture. Look closely at which parts of the texture are lit, and which are not lit by the rocket dynamic light. If it's the wrong way (rocket on left side of a bump, darkness on left side of bump, lit on right side of bump) it means you have got the normalmap flipped the wrong way, which can iirc be corrected by inverting the red color channel of the normalmap in GIMP. Same thing goes for up/down, but there it's the green channel iirc.