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);Note that to get maximum filtering quality use linear filtering for magnification, and linear_mipmap for minification.
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:
I don't know how much performance do I lose using that filtering, but in this sample the quality has the bigger priority.
![]() |
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