Anisotropic Filtering
Anisotropic Filtering
Anisotropic filtering is the newest filtering method on the block. Remember how bilinear filtering only sampled 4 pixels in a square block? Well, anisotrohic filtering takes 8 or more pixel samples. This results in the best quality filtering, but with 8+ pixel sampling, most hardware doesn't have the fill rate to support anisotropic filtering yet. The reason why anisotropic filtering is a good choice for 3D, especially gaming, is because we don't always view polygons face-on, or at a 90 degree angle. If we did look at everything at 90 degrees, then the other forms of filtering would be ok.
However, what separates anisotropic filtering from the others is that it is able to more correctly represent pictures that are angled to the viewer. Imagine it this way: you are looking at a square at 90 degrees. Mipmapping is able to accurately represent this at different distances because you would have different sized mipmaps, all in proportion to each other. However, if you were to walk to the side of the square, and view it at a 45 degree angle, you would see that the vertical plane of the mipmap is the same size, but at a 45 degree angle viewed from the side, the horizontal plane looks shorter because of the perspective that we are at. Well, mipmapping is unable to accurately represent this, because the mipmaps are pre-determined and are proportional to the original image.
Instead, anisotropic filtering is able to give more weight on sampling pixels on the horizontal edge (since it is a different proportion), and less relative sampling weight to the vertical edge, since the dimension there has not changed. Thus, it unevenly samples the image according to the perspective and situation at hand. Of course, this is great for 3D games, if developers want to accurately represent textures as users run around things.
![FS 3D Guide: Filtering and Lighting [ Anisotropic filtering @ 640 x 480 ] > View Full-Size in another window.](images/3dmark-anisotropic-s.jpg) Anisotropic filtering
|