Anisotropic filtering can give great visual quality for rendered objects that are not parallel to the front plane of the camera. In OpenGL it is one of the easiest extension to use.

When creating a texture just write:

float an = 0.0f; if (is supported EXT_texture_filter_anisotropic()) { glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &aniso); } // and when creating texture: glBindTexture(...) // .. set params... glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, an);

Value 1.0 for anisotropic filtering basically means isotropic (normal) filtering. Higher the value better the quality. The implementation is specific to the vendor. So we cannot guarantee that value 4.0 will look the same on different GPUs.

Here is a quick comparison:

linear & mipmap

linear & mipmap & anisotropic 16x

See www.arcsynthesis.org for a great tutorial about anisotropic filtering.

Link to the spec:EXT_texture_filter_anisotropic.txt

that to get maximum filtering quality usefiltering for magnification, andfor minification.I don't know how much performance do I lose using that filtering, but in this sample the quality has the bigger priority.