Anistropic Filtering

Anisotropic means “non-uniform shape” and it is because this filtering technique works on non-uniform, or uneven, shaped areas that it is more powerful, and takes much more processing power, than Point Sampling, bi-linear or tri-linear filtering.

One of the problems with these methods is that they rely on a square as their sampling area and are, therefore, only effective on surfaces at right angles to the viewer. The sampling area used by these methods is, in fact, circular but, as they all base their calculations on a 2 x 2 pixel area within that circle, the area they work on is effectively square. When a surface is at an angle to the viewer, an area on the surface that appears to the viewer to be circular is, in fact, elliptical in shape if the viewpoint is moved so that the surface is seen square on. Anisotropic texture filtering calculates the shape of this ellipse, maps it onto the required texture and then takes an average of the colours from up to 32 texels within the ellipse to decide what colour should be plotted onto the target surface. Since the ellipse can have any ratio between its height and width, depending on the angle it is tilted at with respect to the viewer, the arrangement of the texels to be sampled can only be calculated at runtime and will rarely consist of rows or columns of an equal number of texels. It is from this variable arrangement that the label “anisotropic” comes.

Because anisotropic texture filtering requires so many calculations to be done to plot a single pixel, it has, until quite recently, been available only on the most expensive 3D hardware. Now, though, a new generation of graphics processors are becoming available which have sufficient power to allow the inclusion of anisotropic filtering in their features. Amongst the current crop of processors with this feature are: ATI’s Rage 128 Pro, Matrox’ G400, Nvidia’s Riva TNT, S3’s Savage 4, Trident’s Blade 3D and Videologic’s PowerVR.