Near-edge texturing artifacts

I have a 3d multi-textured polygon. Near the edges of it, from certain angles, the last texel seems miscolored. What is this called and how do I fix it?


This may be related to the texture coordinates you use: if they are close to the actual borders of the texture, and you do not use GL_CLAMP but GL_WRAP or if the border-color of the texture is quite different from the texture colors this may occur.

I think it is called ‘bleeding’.

It can also happen when you use mipmaps: the downsampled versions of the actual texture will gradually show more ‘border-color’, resulting in larger areas along the texture edges displaying the ‘wrong’ color.

Depending on what your texturing requirements are (wrapping or not for example), your problem may be solved by not using the ‘extreme’ texture coordinates 0.0 and 1.0 but slightly offset coordinates like 0.00001 and 0.99999.

The same problem can occur when you have a single texture in which several distinct sub-textures are stored too close to eachother and you use mipmaps that are not carefully constructed: the sub-textures will be blended into each other along their edges by the downsampling filters.