It is remarkable that anisotropic filtering optimization algorithms seem to be working only in OpenGL so far. To prove this point we would like to offer you two screenshots of the same Serious Sam: The Second Encounter scene taken with enabled 8x anisotropic filtering with highlighted MIP-levels. You can see OpenGL Performance mode on the left and Direct3D Performance mode on the right:
Performance mode in OpenGL
Performance mode in Direct3D
On the screenshot taken in OpenGL you can clearly see different colors for each MIP-level (the base textures are laid with 8x anisotropic filtering while less detailed textures use regular bi-linear filtering, as we can see from the picture). And in Direct3D the MIP-levels of all textures coincide and form an exact picture of 8x anisotropic filtering.
In Quality mode the optimization should be not so aggressive, or it should be completely disabled. Let’s check it out now. On the left - Quality mode in OpenGL, on the right – Quality mode in Direct3D:
Quality mode in OpenGL
Quality mode in Direct3D
Well, MIP-levels colors do get mixed together, but only at the most far away parts of the scene.
Well, now we have a good idea of some optimizations that may appear in Detonator FX. First, they will definitely continue improving the algorithms aimed at determining the maximum anisotropy level for textures and polygons in OpenGL, and second, these algorithms may also appear for Direct3D.
And in the meanwhile we can estimate how well the new algorithms help NVIDIA chips to perform anisotropic filtering with the smallest performance losses.
To measure the performance hit with enabled anisotropic filtering in OpenGL we ran the tests in Quake3 Arena:
The results are just brilliant! The performance drops twice as little in balanced mode compared with Quality mode, and in Performance mode the losses are ten times smaller now.
For a better comparison, here is the result of ATI RADEON 9800 Pro in Quality mode:
ATI RADEON 9800 Pro provides smaller performance hit in Quality mode compared with NVIDIA GeForce FX 5800 Ultra/5900 Ultra in Quality mode. However, ATI’s algorithm for anisotropic filtering features one serious drawback, which NVIDIA GeForce FX chips do not have: there are some “inconvenient” angles, where anisotropic filtering quality is lower.
To evaluate the performance hit during forced anisotropic filtering in Direct3D we used Unreal Tournament 2003:
There are no optimizations yet in the Direct3D part of the driver like the one we saw in the OpenGL part. Therefore, the performance hit hardly got that much lower here.
In Unreal Tournament 2003 with enabled anisotropic filtering ATI RADEON 9800 Pro “loses” more than in Quake3 Arena, but this value is still smaller than what we saw by NVIDIA GeForce FX 5900 Ultra in Quality and even in Balanced mode.
So, our investigation of anisotropic filtering quality and speed showed that the new Detonator FX is very badly needed. The anisotropic filtering optimization algorithms used in OpenGL part of the driver ensure a significant reduction of performance losses retaining acceptable image quality. Therefore, the implementation of the same optimizations in the Direct3D part could be very efficient.