Inno3D Home Page Inno3D Home Page

FAQ News Search Archive Forum Articles Tweaks Technology Files Prices SETI
Visit NVIDIA's home page.
Favorite Pics
Click to Enlarge
Articles/Reviews
OCZ Tech Titan 3
Absolute MORPHEUS
1.0GHz Pentium III
eVGA MX Shootout
nForce Preview
AMD AXIA CPU
VisionTek GeForce3
2001 Spring Lineup
GeForce3 Preview
eVGA TwinView Plus
VisionTek GF2 Ultra
OCZ GeForce2 Pro
Winfast GeForce2 MX
GeForce2 vs Quake3
Linksys Cable Router
GF2 FSAA Shootout
GeForce2 MX Preview
Benchmarking Guide
Quake 3 Tune-Up
Power DVD Review
Live! Experiences
Sponsors
Memory from Crucial.com


FastCounter by bCentral

 Visitors Are Online
Powered by Perlonline.com
Drivers/FAQ
NVIDIA
3D Chipset
Gamers Ammo
Reactor Critical
GeForce FAQ
Associates
Dayton's Misc.
G-Force X Sweden
Maximum Reboot
Media Xplosion
NVchips-fr
nV Italia
Riva Station
3D GPU
nV News Home Page

NVIDIA GeForce3 Preview
By: Mike Chambers - May 14, 2001

Anisotropic Texture Filtering

There are a variety of features that the GeForce series of graphics card can offer to improve the image quality in the games we play. Using 32-bit color, playing at high resolutions, or enabling antialising are just a few of them. Another lesser known feature that can be enabled is an advanced method of texture filtering referred to as anisotropic filtering.

Of course the price one pays for using varying degrees of anisotropic filtering is decreased performance. However, there are instances when a balance between image quality and performance can be reached. A little experimentation is all that's required.

RivaTuner OpenGL Tweaks

RivaTuner OpenGL Tweaks

Using the beta 11.01 Detonator drivers to enable anisotropic filtering on the GeForce3 will not work. I recommend using RivaTuner as it allows anisotropic filtering to be enabled under OpenGL and Direct3D.

This exercise will put anisotropic filtering, along with antialiasing, to the test in the following OpenGL based games - Quake 3, Alice, and Counter-Strike.

Texture Mapping And Filtering

Before we get into the meat of the subject matter, let's have a brief and non-technical discussion on textures. Without the use of textures, the graphics in 3D games would look rather bland. In order to allow objects in the game world to appear realistic, the process of using a texture image and mapping it to an object is often used. However, texture mapping is a complex process as a texture is normally based on a flat image and the object to which it's mapped to is three dimensional.

Wireframe View Sphere With Texture
Wireframe View Sphere With Texture Applied

As a texture is applied to an object using a texture map, a process referred to as texture filtering determines how the elements of a texture (texels) are used to generate pixels in a scene. As textures are filtered, they may be magnified or minified depending on the viewed distance from the object. In these cases, a texture is being mapped to an object that is either larger or smaller than itself which can cause an undesirable appearance.

Using pre-filtered versions of a texture during texture filtering offers better visual quality and saves processing time. The closer the textures aspect ratio is to the projected aspect ratio of the object it's applied to, the more accurate the sampling will be.

RivaTuner OpenGL Tweaks

For example, a high resolution image can be used as a texture when an object is close to the view. As the object moves farther away, a lower resolution image can take its place. By automatically selecting the texture that's closest to the required scale, the scaling process takes less time and reduces the distortion of the texture. The term mipmap is given to the sequence of scaled images that are used as textures.

The various methods of texture filtering have advantages and disadvantages. Bilinear and trilinear filtering are effective for surfaces that appear at right angles to the viewer. Anisotropic filtering is a technique more suited to texturing angled surfaces, but requires additional processing in the form of texture memory reads.

Bilinear filtering calculates a weighted average of four surrounding texture pixels to produce smoother images. In terms of processing, bilinear filtering requires four texture memory reads per pixel. Trilinear filtering requires eight texture memory reads per pixel and calculates a weighted average of two bilinear filtered mipmap levels. It further improves image quality, mainly in distant objects.

Bilinear Filtering Trilinear Filtering
Click to Enlarge - 142KB Click to Enlarge - 140KB

Anisotropic means non-uniform shape and is a filtering technique that works on non-uniform, or uneven, shaped areas. In reality, when the viewpoint is such that a surface is seen square on, the surface is elliptical in shape. Anisotropic texture filtering calculates the shape of this ellipse and maps it onto the required texture.

Trilinear Filtering 16 Sample Anisotropic
Click to Enlarge - 140KB Click to Enlarge - 154KB

When used in conjunction with trilinear filtering, anisotropic filtering utilizes an additional average of 8, 16, or 32 texel samples within the ellipse to determine the color to be mapped to the target surface. As the dimensions of the ellipse can have any ratio between its height and width in addition to the angle viewed, the arrangement of the texels to be sampled can only be calculated at runtime.

32 Sample Anisotropic 64 Sample Anisotropic
Click to Enlarge - 160KB Click to Enlarge - 162KB

Depending on the game, anisotropic filtering results will vary. For example, using 16 sample anisotropic filtering in Alice offered the following enhancements.

Trilinear Filtering 16 Sample Anisotropic
Click to Enlarge - 207KB Click to Enlarge - 202KB

Anisotropic Performance - Quake 3

Now for the test. The following benchmark results are based on maximum quality settings (high quality settings plus high geometry and maximum texture detail) using Quake 3 version 1.17 demo Demo001. Sound and vsync were disabled.

Anisotropic Filtering Performance - No Antialiasing

Anisotropic Filtering Performance - No Antialiasing

Antialiasing With Anisotropic Filtering

The next logical step was to measure performance with both anisotropic filtering and antialiasing enabled. This was a time consuming process, but well worth the effort as I was able to determine the settings that Quake 3 was playable with.

Before showing the results, the following images (1024x768 with maximum quality settings) from Alice illustrate the use of 16 sample anisotropic filtering along with the antialiasing settings supported by the GeForce 3.

The main point here is to notice the slight blurring of textures that is evident with Quincunx antialiasing. Note that the frame rate appears in the bottom left corner of the full size image.

No AA - Trilinear Filtering 2X AA - 16 Sample Anisotropic
Click to Enlarge - 207KB Click to Enlarge - 211KB

QC AA - 16 Sample Anisotropic 4X AA - 16 Sample Anisotropic
Click to Enlarge - 190KB Click to Enlarge - 211KB

Anisotropic and Antialiasing Performance - Quake 3

Be prepared for a barrage of benchmarks...

Anisotropic Filtering Performance - 2X Antialiasing

Anisotropic Filtering Performance - 2X Antialiasing

Anisotropic Filtering Performance - Quincunx Antialiasing

Anisotropic Filtering Performance - Quincunx Antialiasing

Anisotropic Filtering Performance - 4X Antialiasing

Anisotropic Filtering Performance - 4X Antialiasing

Stress Test

After mulling over the benchmark results, I came up with the following settings to use in the playability series of tests.

  • Quake 3 - 32 Sample Anisotropic Filtering - 4X Antialiasing - Maximum Quality Settings @ 800x600


  • Quake 3 - 32 Sample Anisotropic Filtering - Quincunx Antialiasing - Maximum Quality Settings @ 1024x768


  • Counter-Strike - 32 Sample Anisotropic Filtering - Quincunx Antialiasing - Default Settings @ 1280x960


  • Counter-Strike - 64 Sample Anisotropic Filtering - 4X Antialiasing - Default Settings @ 1280x960

All work and no play, well, you know how the saying goes. I played Quake 3 with these settings over a period of three days while my son Dave logged in about 25 hours of Counter-Strike. For Quake 3, a local multi-player game was used with 10 bots while Counter-Strike was played on-line. Texture compression was disabled in Quake 3 and high quality sound was enabled. Sound was also enabled in Counter-Strike.

After it was all said and done, these settings provided the best image quality I've ever seen in these games along with great gameplay. I was thrilled with the results as the GeForce 3 rarely dipped below 30 frames per second.

The following screenshots from each test are labeled with the corresponding frame rate. While the images are high quality, they don't capture the quality I witnessed during actual gameplay.

32 Sample Anisotropic Filtering - 4X Antialiasing - 800x600

Shot 1 - 45 FPS Shot 2 - 55 FPS
Click to Enlarge - XXKB Click to Enlarge - XXKB
Shot 3 - 45 FPS Shot 4 - 51 FPS
Click to Enlarge - XXKB Click to Enlarge - XXKB

32 Sample Anisotropic Filtering - 4X Antialiasing - 800x600

Shot 5 - 46 FPS Shot 6 - 48 FPS
Click to Enlarge - XXKB Click to Enlarge - XXKB
Shot 7 - 50 FPS Shot 8 - 41 FPS
Click to Enlarge - XXKB Click to Enlarge - XXKB

At no time did the frame rate dip below 30 frames per second. The frame rate peaked at 80 frames per second and averaged between 40-50 frames per second. The difference in image quality, compared to no antialaising (even at high resolutions) and trilinear filtering, was clearly obvious.

32 Sample Anisotropic Filtering - Quincunx Antialiasing -1024x768

Shot 1 - 41 FPS Shot 2 - 51 FPS
Click to Enlarge - 241KB Click to Enlarge - 197KB
Shot 3 - 40 FPS Shot 4 - 51 FPS
Click to Enlarge - 201KB Click to Enlarge - 212KB

32 Sample Anisotropic Filtering - Quincunx Antialiasing -1024x768

Shot 5 - 36 FPS Shot 6 - 50 FPS
Click to Enlarge - 213KB Click to Enlarge - 199KB
Shot 7 - 53 FPS Shot 8 - 50 FPS
Click to Enlarge - 213KB Click to Enlarge - 204KB

At a resolution of 1024x768 and Quincunx antialiasing, the frame rate would drop into the mid to upper 20's during exceptionally heavy fighting. For the most part, the frame rate averaged between 40-50 frames per second with peak frame rates in the mid-60's.

Counter-Strike

I left gameplay testing in Counter-Strike with my son Dave who is an experienced player. The framerate counter (cl_showfps 1), appears at the top left corner and was enabled was enabled at all times. My job was to manually record the framerate during various gaming sessions.

32 Sample Anisotropic Filtering - Quincunx Antialiasing -1280x960

Shot 1 - 52 FPS Shot 2 - 66 FPS
Click to Enlarge - 340KB Click to Enlarge - 350KB
Shot 3 - 63 FPS Shot 4 - 49 FPS
Click to Enlarge - 395KB Click to Enlarge - 363KB

You would think that playing Counter-Strike with these settings would finally tax the GeForce 3. Although we used 16-bit color, which is what most players use, it was quite the opposite. With Quincunx antialiasing, the frame rate was steady ranging from a low of 55 frames per second to a high of 75.

Wanting to bring my system to its knees, I upped the ante and moved to 4X antialiasing and 64 sample anisotropic filtering. Did it work?

64 Sample Anisotropic Filtering - 4X Antialiasing -1280x960

Shot 1 - 68 FPS Shot 2 - 63 FPS
Click to Enlarge - 353KB Click to Enlarge - 399KB
Shot 3 - 44 FPS Shot 4 - 56 FPS
Click to Enlarge - 344KB Click to Enlarge - 299KB

64 Sample Anisotropic Filtering - 4X Antialiasing -1280x960

Shot 5 - 37 FPS Shot 6 - 72 FPS
Click to Enlarge - 430KB Click to Enlarge - 341KB
Shot 7 - 49 FPS Shot 8 - 76 FPS
Click to Enlarge - 232KB Click to Enlarge - 263KB

Nope. Even at 4X antialiasing with 64 sample anisotropic filtering, gameplay was fluid. Occassional drops in frame rate to the mid-30's were countered with an average frame rate of around 55-60 frames per second.

Note that antialiasing on the GeForce 3 wasn't able to eliminate the effects of aliasing on the rails as is shown in the first screen shot. From what I understand, these objects are comprised of what are referred to as alpha textures.

Final Thoughts

Based on this exercise, I've come to realize that the GeForce 3 has what it takes for the gamer to take visual quality to the next level. Fortunately, you don't have to wait for the next generation of DirectX 8 compliant games to reap the benefits of the GeForce 3. You can get them today with its excellent texture filtering and antialiasing performance. Combine the two features together, and your in for a visual treat.

Next Page: Multitexturing Performance

Skip To:

 
Last Updated on May 14, 2001

Copyright 1998-2003. All rights reserved.
Reproduction in whole or in part in any form or medium
without written permission of the site's owners is prohibited.
All trademarks are properties of their respective owners.

Privacy Policy


FastCounter by bCentral