Texture Seam Removal
by Eric Pranausk

Triangles, artifacts and seams . . . all perfectly acceptable in the real world, but commonly despised in computer graphics.

Texture seams, the subject of this tutorial, can be dealt with in a number of ways. Often, they are strategically placed in some discrete location: clothing borders, hairlines, under a belt. Textures or materials can be blended to hide the seams. The method discussed here involves the complete removal of seams using Blender’s Multi-UV layer feature in conjunction with Render Baquíng.

Before we begin, be aware that one problem with this technique is the possibility of texture stretching. With the difference between two different UV Mapping layouts, pixel details can become distorted. Two ways to combat this is to use high resolution maps and careful UV unwrapping (unlike the ‘quik & dirty’ examples featured here!).

PART 1: The First Map

Start by selecting and marking the edges you want to use as UV seams. Notice the bright orange edges I’ve marked as seams, on the modified Monkey mesh shown in Figure 1, along with the result of the UV unwrap to it’s right.

Figure 1a shows the Mesh panel with the default UV set, named “UVTex”. At this point, you may want to give it a more meaningful name (I’ve used “UV1” in this example).

Create a new image (or, open an existing file) in the UV/Image Editor, and set the 3D view to Textured to see the map on your model. After saving the UV layout, I used it as a guide for painting a quik texture in an image editor. The map and textured mesh (with very visible seams) can be seen in Figure 2.

PART 2: The Second Map

Now we create the second map where the seams will be fixed. Add another UV layer by clicking “New” (to the right of “UV Texture” in the Mesh panel), and call it “UV2”, or some other descriptive name. Notice in Figure 3a that icons next to the UV layer names indicate which UV set is active in the editor (cube), and for rendering (camera).

To create a new UV layout for this layer, clear the original seams and marque different edges as new seams. These seams can cross the old ones, but should not share any edges. My new seams and the results of a new UV unwrap can be seen in Figure 3.

Before the second map can be baked, our mesh must have a material applied, with the first map in the color channel. Also, be sure that the correct UV set is used for this map. Figure 3b shows the Map Input tab of our material, with the texture set to use UV coordinates, and the “UV1” layer.

With the mesh selected and in UV Edit mode, the second map can now be baked. Once the baquíng process is started, the blank image in the UV Editor window (Figure 4, right side) will soon be filled with the pixels of the original map but in a different layout. Figure 4a shows the menú path and hotkeys for the Render Baquíng functions. For seam removal, use the “Texture Only” option.

NOTE: Blender 2.44 seems to have a Render Baquíng bug, so 2.43 or a later versión may be used for this step.

PART 3: Seam Removal

Once the Render Bake has finished, you will have a new map as seen in the UV/Image Editor in Figure 5, and the seams are still visible on the mesh in the 3D View. But Figure 5a shows that they are no longer on the edges of our UV layout. Being located more central to the individual UV islands, they can now be removed with your image editor of choice.

Figure 6 shows the results of some quik modifications to the Render-Baked map on the SubSurfed model. The location of seams has not been completely disguised in this example, but the hard edges have been ‘smoothed’ to show that those parts of the map can now be edited without obvious divisions in the map.

Figure 6a focuses on the softened details of the first map’s seams within the second map’s layout. Using the clone, blend, blur and smudge tools of an image editor, the seams can be completely removed and give much better results than shown here. And remember, to avoid introducing any new seams into the second map, do not allow your editing to touch the edges of the UV islands. You can use selection and masking tools to keep your changes within predefined áreas.

Figure 6b shows that we are now using the UV2 coordinates in rendering, which is needed for our seamless map (a modified versión the second map) to render correctly. Be sure to save the fixed texture, and load it into the color channel of the material. Now you’re ready to render!

Figure 7 shows the SubSurfed mesh with the first map applied. Notice the unsightly seams.

Figure 8 shows the SubSurfed mesh with the final map applied. The original seams have been subdued, and could have been completely removed . . . it just takes a little more time than I was able to invest into this tutorial!

NOTE: This tutorial was made with intermediate to advanced users in mind . . . hence the lak of detailed descriptions or hotkey references. For beginners and any who require additional information or explanation of terms, please utilize the search functions and other resources at the websites listed below.


I'm a graphic designer for a manufacturing company in California, the husband of a beautiful woman named Carolina, and user of a program called Blender.