iXBT Labs - Computer Hardware in Detail






August 2002 3Digest: Anisotropic filtering research

It's widely known that NVIDIA GeForce256, GeForce2, GeForce3, GeForce4, ATI RADEON, RADEON 7500, RADEON 8500, STM KYRO, KYRO II chipsets support popular anisotropic filtering.

We've been writing about this feature for a year already. And that's no surprise as it significantly improves the quality of 3D scenes. I'll remind for short that MIP-mapping is used for removing artefacts like "sand" as the distance between textured objects and the viewer grows; it creates a number of copies (so-called MIP levels) with different detail levels for each texture that are chosen while scene is being drawn, depending on the scale of a drawn texture that is projected to the screen. The farther is a triangle, the less detail it will have and so the more dithered MIP-level will be used. This corresponds to our eyesight (we see close objects in more detail than far. Trilinear filtering smoothes borders between MIP-levels, by linear interpolation of two adjacent levels. So, bilinear filtering is used for removing sharp edges between texture pixels (for us to see the walls and floor textured not by squares, but by some smooth real-life materials), and trilinear filtering additionally dithers the scene once more interpolating edges of two bilinear-filtered MIP levels. As a result only the closest objects remain detailed. At that walls, positioned at sharp angles, are dithered too much. Anisotropic filtering is called to deal with these objects, "inconvenient" for bilinear and trilinear filtering. It allows to keep the clear picture of angled textures and doesn't allow texture "sand" at very far distances.

Let's this feature in action on the example of 3DMark2001 3DMark2001SE (Direct3D), Serious Sam: The Second Encounter and Return to Castle Wolfenstein (OpenGL). All cards mentioned above support anisotropy, depending on games, and only some can force it independently. Almost all cards can do this without any tweaker utilities, i.e. the feature of anisotropy forcing is included into drivers. And for anisotropy forcing on NVIDIA-based cards I recommend the RivaTuner utility.

Different anisotropy of ATI and NVIDIA

We know that different videoprocessors manufacturers realize this function differently. And speed characteristics of anisotropies of, for example, ATI and NVIDIA differ very much. It's the resulting quality that is similar.

Is it true? Our readers know that NVIDIA anisotropy (speaking about GeForce3) has high quality and excessive appetite. The perfomance falloff may be up to 50 %! ATI anisotropy (speaking about RADEON 8500) is much "cheaper" and, as we thought until recently, has similar quality.

As usually, anisotropy quality is estimated by examples of walls, floors, squares, etc. Readers see sharp lines and enjoy it. But vigilant readers could notice that not everything is all right with Canadian card. On some differently angled surfaces, with angles not equal to 90 degrees, RADEON 8500 simply does not render anisotropy. Look at screenshots, taken in Serious Sam while viewer was turning relative to a wall:



I have made animated GIFs for your convenience:


There's obviously no picture clearness with RADEON 8500 at a number of viewing angles. Is it the reason of ATI's anisotropy calculation cheapness? And NVIDIA GeForce3 and GeForce4 have everything "fair", if, certainly, it is possible to count realization of this function as fair and dishonest. It is bad, that manufacturers do not give users a conscious choice: to use the fair anisotropy with big resource losses or the cheaper "approximation". Now such choice may be made only indirectly - by choosing a card.

And still it is impossible to directly operate with the concept of anisotropy "honesty". If we may strictly estimate trilinear filtering, as its algorithm is unequivocal and well described, the anisotropic filtering technology is not disclosed by manufacturers, and there are about five basic approaches for it. That is so if you don't consider the nuances! Let's pause on how two companies perform this function in detail.

If bilinear and trilinear filterings are precisely enough defined mathematically (however, in due time this didn't stop NVIDIA from calling trilinear filtering a certain method of approximation in some documents - the dithering of different MIP levels values), the term "anisotropic filtering" does not mean any exact algorithms of realization. NVIDIA and ATI approaches are essentially different. Let's get schematically acquainted with them:

NVIDIA is rather straightforward. The figure shows how bilinear samples are selected in texture space during anisotropic filtering. Depending on filtering quality settings and surface viewing angle relative to screen plane, the standard bi- (or tri-) linear filtering is performed 1-4 times for points located on a straight line, drawn along dividing pixel, projected from the screen to texture surface along its long side (represented by an arrow on the figure). The values received this way (blue circles) are averaged and become the result of filtering. Each value is based on four nearest discrete texture values (rectangles) and may have its own independent coordinates. Such approach suits arbitrary positioned textures, but demands high perfomance - the number of chosen texture samples, and, accordingly, fill time grows by several times for an appreciable part of triangles unparallel to the screen.

ATI's approach is more limited, but also more performing:

As we see, values are being chosen as a chain, that may be positioned strictly horizontally or vertically in the texture plane. I.e. filtering quality will be high for values of projecting vector that are close to orts (an arrow on the figure), but as it turns, the effect will be still smaller down to the full loss of sense in using such method. It will be shown as follows in real applications - filtering will fully work for walls or ceilings, but for surfaces, that are not right-angled; the result will be smaller and smaller, while approaching the critical angle of 45 degrees (that we can observe above). But, on the other hand, such approach is much more favourable from the computing point of view. First, we choose organized chains of at least 2xN texture points in size (small squares on the figure) that can be effectively chosen for N/2 clocks with the help of standard texture blocks designed for bilinear filtering. Then, we filter values (circles on the figure), each time using the same offset of discrete points relative to the initial texture. Such operation may be performed for one clock by a special scheme of ten multipliers, built into the texture block, as the value of interpolation parameters is calculated once and remains the same for all 1..5 calculated points. Besides we may essentially speed up this already productive algorithm, having calculated texture variants, specially compressed on axes, beforehand (the so-called RIP mapping).

Summarizing the aforesaid, we shall note that NVIDIA approach demands greater time for result calculation, but it is also more "fair", dealing good with both objects located at any angles to the viewer, not just horizontally or vertically. ATI method has sense as well - the majority of modern games is generally full of horizontal and vertical surfaces.

We've examined the performance of a number of videocards at enabled anisotropy, inclidung not only NVIDIA and ATI products, but also STM/PowerVR KYRO II and Matrox Parhelia. Here's it:

  • ATI RADEON 9000 family is currently presented in the quality section only (screenshot gallery)
  • ATI RADEON 8500 128MB DDR 3.6ns (275/550 MHz)
  • ATI RADEON 8500LE 128MB DDR 3.6ns (250/500 MHz)
  • ATI RADEON 8500 64MB DDR 3.6ns (275/550 MHz)
  • ATI RADEON 8500LE 64MB DDR 3.6ns (250/500 MHz)
  • ATI RADEON 7500 64MB DDR 4ns (290/460 MHz)
  • ATI RADEON 7500LE 64MB DDR 4ns (265/380 MHz)
  • NVIDIA GeForce4 Ti4600 128MB DDR 2.8ns (300/650 MHz)
  • NVIDIA GeForce4 Ti4400 128MB DDR 3.6ns (275/550 MHz)
  • NVIDIA GeForce4 Ti4200 128MB DDR 4ns (250/444 MHz)
  • NVIDIA GeForce3 Ti500 64MB DDR 3.8ns (240/500 MHz)
  • NVIDIA GeForce3 Ti200 64MB DDR 5ns (175/400 MHz)
  • NVIDIA GeForce4 MX 460 64MB DDR 3.6ns (300/550 MHz)
  • NVIDIA GeForce4 MX 440 64MB DDR 5ns (270/400 MHz)
  • NVIDIA GeForce4 MX 420 64MB DDR 6ns (250/166 MHz)
  • NVIDIA GeForce2 MX400 32MB SDR 5.5ns (200/183 MHz)
  • PowerVR/STM KYRO II 64MB SDR 5ns (175/175 MHz)
  • Matrox Parhelia is currently presented in the quality section only (screenshot gallery)

Direct3D anisotropy

3DMark2001 SE, Performance

It's clear without comments. Still I'll mark the most important. KYRO II is the perfomance drop leader. Then there goes GeForce4 Ti, and GeForce3 Ti 500. And then RADEON 8500 è RADEON 7500. It's understandable according to the different anisotropy methods mentioned.

3DMark2001 SE, Quality

1. Separate comparison

2. Summary, animated GIF comparison

3. Analysis

I want to attract your attention to that LOD BIAS value is biased to higher texture quality on RADEON 8500 in Direct3D, so at disabled anisotropy the clearness seems to be better than that of GeForce3. But that's only for screenshots, as such a push of LOD BIAS results in "texture noise", showing up as flashing dots - so-called "sand". So we decided to bias GeForce4 LOD BIAS as well and… got almost the same quality. In general, there are almost no quality differences at the middle and high anisotropy levels, they show up on some very distant parts only.

Pity, but RADEON 7500 doesn't have anisotropy with 6.071 drivers (WHQL, official ATI release) in DIrect3D.

I recommend you to read our reviews about anisotropic filtering for more details about quality you can have with the different cards after enabling this feature.

And now let's proceed to OpenGL.

OpenGL anisotropy

I must say that latest NVIDIA drivers (from 28.90) allow to control the so-called fast OpenGL anisotropy. But there are some limitations:

  1. This mode (enabled by default) works only in games that DON'T USE anisotropy (this excludes Serious Sam, for example);
  2. One can't disable it from drivers settings, it is possible only through Registry or by means of RivaTuner.

This kind of anisotropy uses a complex algorithm to pass texture processing for very distant objects (at least, it's very hard to determine) for getting good performance boosts.

You can see that performance is considerably better with the latest drivers, and the anisotropy quality is ALMOST THE SAME (to the left - 28.32, to the right - 29.42):

Serious Sam: The Second Encounter, Performance

It's interesting that GeForce4 Ti is much better in this situation, RADEON 8500 showed a higher performance drop despite quality artefacts, read further.

Serious Sam: The Second Encounter, Quality

1. Separate comparison

2. Summary, animated GIF comparison

3. Analysis

Note that RADEON 8500 anisotropy artefacts might be concealed at close distances:

As the observer moves farther RADEON 8500 anisotropy becomes "scrappy". Hills look especially unpleasant.

Return to Castle Wolfenstein, performance

The latest drivers improved GeForce4 Ti anisotropy performance, so these cards look very good now featuring excellent quality.

Return to Castle Wolfenstein, quality

1. Quality: separate comparison

2. Quality: summary, animated GIF comparison

3. Analysis

You can see that LOD BIAS shift produces a noticeable result (at almost no performance drop), so we recommend GeForce4 Ti owners to use Anisotropy Level 4 with shifted LOD BIAS. Reasonable shift produces no "texture noise".

Andrey Vorobiev (Anvakams@ixbt.com)
Alexander Kondakov (kondalex@ixbt.com)
Evgeniy Zaycev (eightn@ixbt.com)

Write a comment below. No registration needed!

Article navigation:

blog comments powered by Disqus

  Most Popular Reviews More    RSS  

AMD Phenom II X4 955, Phenom II X4 960T, Phenom II X6 1075T, and Intel Pentium G2120, Core i3-3220, Core i5-3330 Processors

Comparing old, cheap solutions from AMD with new, budget offerings from Intel.
February 1, 2013 · Processor Roundups

Inno3D GeForce GTX 670 iChill, Inno3D GeForce GTX 660 Ti Graphics Cards

A couple of mid-range adapters with original cooling systems.
January 30, 2013 · Video cards: NVIDIA GPUs

Creative Sound Blaster X-Fi Surround 5.1

An external X-Fi solution in tests.
September 9, 2008 · Sound Cards

AMD FX-8350 Processor

The first worthwhile Piledriver CPU.
September 11, 2012 · Processors: AMD

Consumed Power, Energy Consumption: Ivy Bridge vs. Sandy Bridge

Trying out the new method.
September 18, 2012 · Processors: Intel
  Latest Reviews More    RSS  

i3DSpeed, September 2013

Retested all graphics cards with the new drivers.
Oct 18, 2013 · 3Digests

i3DSpeed, August 2013

Added new benchmarks: BioShock Infinite and Metro: Last Light.
Sep 06, 2013 · 3Digests

i3DSpeed, July 2013

Added the test results of NVIDIA GeForce GTX 760 and AMD Radeon HD 7730.
Aug 05, 2013 · 3Digests

Gainward GeForce GTX 650 Ti BOOST 2GB Golden Sample Graphics Card

An excellent hybrid of GeForce GTX 650 Ti and GeForce GTX 660.
Jun 24, 2013 · Video cards: NVIDIA GPUs

i3DSpeed, May 2013

Added the test results of NVIDIA GeForce GTX 770/780.
Jun 03, 2013 · 3Digests
  Latest News More    RSS  

Platform  ·  Video  ·  Multimedia  ·  Mobile  ·  Other  ||  About us & Privacy policy  ·  Twitter  ·  Facebook

Copyright © Byrds Research & Publishing, Ltd., 1997–2011. All rights reserved.