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 GeForce2 MX - Mixed Mode Rendering

By: Mike Chambers - June 30, 2000

Introduction

What do you end up with when you take a leading edge 3D game like Quake 3 and get to play around with it on a new low-cost graphics card based on NVIDIA's GeForce2 MX? Lot's of fun for sure - especially if you're into hard-core tweaking! After having written a couple of guides on tweaking Quake 3 you know I experiment with different graphics settings and am always on the lookout for tips to maximize performance. The name of the game is to get that frame rate counter as high as possible while maintaining a certain degree of visual quality.

For the most part, many of the graphic settings than can be maintained from the Quake 3 menus are adequate for an initial cut at tweaking. On the options menu, settings such as marks on walls and dynamic lights can be disabled. Color depth and texture quality are a few of the settings that can be change under the graphic menu. Then there's the console. The interface that let's us communicate directly with the Quake 3 engine.

24-Bit Z-Buffer 16-Bit Z-Buffer
Click to enlarge - 93K Click to enlarge - 94K

While the purpose of many of the console commands has been well documented, there are a few obscure settings that have no documentation or the documentation is inaccurate. Let's take a look at the r_depthbits setting. At first glance this setting may appear to control some type of color depth setting such as texture color. But we already have a variable that controls the color depth of textures which is called r_texture_bits. So what's this mysterious setting called r_depthbits?

The Graphics Z-Buffer

Before taking a look at the r_depthbits variable, let's briefly, and I mean briefly, discuss the purpose of the Z-buffer in a 3D graphics card. There are a couple of pages that cover its purpose very well. Click here and here for more information.

In any given scene of a 3D game such as Quake 3, there are objects that share the same x and y coordinate values. Z-buffering is an algorithm that determines which objects, or parts of objects, are visible and which objects are hidden behind other objects. The Z-buffer is a special area of graphics memory where the Z-axis, or depth, of each pixel is stored. When objects are drawn, the Z-value of each pixel is compared with the value at the same location in the Z-buffer. If the Z-value is greater, or closer to the viewer, the new pixel is written in the frame buffer and the Z-buffer is updated with the new Z-value.

24-Bit Z-Buffer 16-Bit Z-Buffer
Click to enlarge - 139K Click to enlarge - 141K

So why all this fuss over the Z-buffer? Because the r_depthbits setting in Quake 3 determines the accuracy of the values stored in the Z-buffer table. With a higher Z-buffer depth setting, there's less of a chance that visual artifacts will appear. Reactor Critical covers this subject in their Savage2000 review as does Tom's Hardware in their Matrox G400 Max review. A key point here is that the article at Reactor Critical mentions that the visual quality between a 16 and 24-bit Z-buffer is hardly noticeable in a game such as Quake 3 - when properly implemented.

Less Accuracy For Better Performance

So I tweaked, and tweaked some more. And then...

When I had the GeForce2 GTS in my system and fired up Quake 3 in 32-bit color, a quick look at the driver info shows that r_depthbits is set at 24. Changing the value to 16 and doing a vid_restart kept the Z-buffer to 24-bits (but did change the stencil buffer to 0-bits):

Now imagine my surprise when I changed the r_depthbits setting from 24 to 16 on the GeForce2 MX:

It's recognized by Quake 3! However, with the stencil buffer set to 0, you won't be able to get Quake 3's advanced shadows, which aren't enabled by default anyway. Normal shadows will contine to appear since they don't use the stencil buffer.

So what does this mean? It means that I may have stumbled on something here with the GeForce2 MX that isn't possible with the GeForce2 GTS (and probably the GeForce256 and TNT). It appears that the GeForce2 MX offers a type of mixed mode rendering in that I was able to run with 32-bit color and enable a 16-bit Z-buffer. By using a 16-bit Z-buffer the memory required for data in the Z-buffer is decreased by 33% which results in less memory usage and bandwidth. Does this increase performance? Let's take a look.

The Tests

Since I have a relatively fast processor (P3-683MHz), at 640x480 using high quality settings, Quake 3 is running about at fast as it can on the GeForce2 MX. You can tweak your heart out at 1024x768, but it won't do you much good as the memory bandwidth just isn't there. So that leaves us with the standard Quake 3 high quality settings (800x600 in 32-bit color/32-bit textures), which is the perfect setting to work with on my system.

Let's look at the results. First, we have the yellow bar which is based on using a 24-bit Z-buffer. Next is the green bar which shows the results when changing the Z-buffer to 16-bit. Right off the bat you get a pretty hefty increase from 68.0 fps to 76.4 fps. Overclocking the memory to 196MHz helped out as well as I got over 80 fps.

Quake 3 High Quality - 24-Bit vs 32-Bit Z-Buffer

So it looks like GeForce2 MX owners will have a feature that other GeForce or TNT owners won't have. While it's not going to change the world, at least using a 16-bit Z-buffer is another item you can add to you arsenal of tweaks. But there are some drawbacks which are discussed in the next section.

The Drawbacks

Shortly after I posted this article, I began looking for examples of where a 16-bit Z-Buffer can cause less than desirable results. When looking at scenes close up, you really don't see any difference between a 16 and 32-bit Z-Buffer. But when viewing objects in the distance, differences will appear as these screenshots from map Q3DM17 illustrate. This set of screenshots was taken while I was postioned on the platform where the quad damage is and using the zoom key:

24-Bit Z-Buffer

Click to enlarge - 61K

16-Bit Z-Buffer

Click to enlarge - 62K

And these are from the normal view:

24-Bit Z-Buffer 16-Bit Z-Buffer

Better performance at the expense of visual quality? It's a tough call to make, but the main point is that you do have an option with the GeForce2 MX.

Back to nV News


Last Updated on July 1, 2000

All trademarks used are properties of their respective owners.