Tutorial: Creating Seamless Textures

If you want to create a seamless texture, you first need a eligible photo. As we want to make it tilable, it may not have any too eye-catching features on there. Small ones however can be fixed. The most important thing is that the lightning is even - in many photos, the top is slightly more light than the bottom. Even a small difference in lightning will be striking in a seamless texture! Textures with repeating regular patterns like bricks need to be rotated upright first before being processed further.

Creating the texture tile

We will start with this photo of a rock. We first make a square selection. The size should be something like 1024x1024 or 512x512. TexTutorialOne.jpg

We will not use the crop tool to cut out the texture but the selection tool, creating a new layer. In GIMP we first create a floating selection (Shift+Ctrl+L) and then a new layer out of it (Shift+Ctrl+N).


Now, we displace the areas in the texture as shown below. How to do this? We can use the displacement feature to displace the texture by half it's size. In GIMP, it is Layer->Transform->Displace (Shift+Ctrl+O).


Making it seamless

The only thing left now to make the texture tilable is to remove the seams that you can now see in the image. This is best done with the clone brush: We clone areas that fit to the existing features in the texture from other parts of the image onto the seams. With regular patterns like bricks, wooden boards etc. this is more challenging than with more random patterns like our rock here. We choose a smooth clone brush with 100% opacity to clone the areas onto the seams.


We could use areas from the texture itself to clone from. However, this will create more or less visible recurrent patterns in the tile itself. Best is to avoid this by cloning from areas from the background layer. This is why we didn't use the crop tool at the beginning. Alternatively, you can of course have several source images and clone the areas from there. While painting, we not only paint over the seams but also a bit around it to fit the newly painted features into existing ones. For this rock here we follow the cracks in the rock. In the following image you see an example of a painted area onto the seam.


Optimising the texture

When we are done, the texture could look like on the left image. For a final texture, we delete the background layer and cut the image so that it fits to the texture layer. The right image shows how it looks tiled. (In GIMP Filter -> Map -> Small tiles).

TexTutorialEight.jpg TexTutorialNine.jpg

As you can see, every little feature will become more striking the more we look at the texture from further away. If you look at the image above this one, you see that I already removed the spot with the dry grass too since it would be too striking if tiled.

We need to find a compromise between "tileability" and keeping distinct features in the texture. If we remove too many features, it looks boring, if it has too many, it doesn't look convincing if tiled. For most, we need to know from how far the texture should still look good. In this example, we could remove some features like the light spot (at the bottom left) and the big crack (at the top). Again with the clone brush. Additionally we can remove some contrast or differences in colour. The result looks less distinct so that the recurring patterns in tiled version are not that striking.

TexTutorialTen.jpg TexTutorialEleven.jpg

However, since we mix together different textures in the earth in Clonk, the textures can keep much distinctness since they normally won't be tiled over a huge area. So actually, we can prefer the first version of the texture here. Further optimisation can be done with other filters, adjusting sharpness, colors etc.


There is also a plugin for creating seamless textures with GIMP: http://gimp-texturize.sourceforge.net/