The question of image quality is much more complicated than determining which video card renders a scene the fastest. Years ago, we could say that the image that came out of two different computer systems should be exactly the same because developers controlled every aspect of how their program ran with software, rather than leaving some decisions to the hardware on which the program was running. With the advent of hardware acceleration, developers could get impressive speed gains from their software. As a side effect, the implementation of very basic functionality was defined completely by the designers of the hardware (e.g. ATI and NVIDIA). For example, a developer no longer needs to worry about the mathematics and computer science behind mapping a perspective correct texture onto a surface; now, all one needs to do is to turn on the hardware texturing features that they want and assign textures to surfaces. In addition to saving the developer from having to code these kinds of algorithms, this took away some control and made it so different hardware could produce different output (there is more than one correct way to implement every feature).

Obviously, there are many more pros to hardware acceleration than cons. The speed gains that we are able to make in real-time 3D rendering alone excuse any problems caused. Since the developer doesn't need to worry about writing code worthy of a Ph.D. in mathematics (as that is left to the GPU designers), games can be developed faster or more time can be spent on content. The only real con is the loss of control over how everything is done.

Different types of hardware do things differently. There is more room for choice in how things are done in 3D hardware than in something like an x86 processor. For one thing, IHVs have to support APIs (DirectX and OpenGL) rather than an instruction set architecture. There is much more ambiguity in asking a GPU to apply a perspective correct lighted mipmap to a surface with anisotropic filtering than in asking a CPU to multiply two numbers. Of course, we see this as a very good thing. The IHVs will be in constant competition to provide the best image quality at the fastest speed with the lowest price.

Unfortunately, defining image quality is a more difficult task than it seems. Neither ATI nor NVIDIA produce images that match the DX9 reference rasterizer (Microsoft's tool to estimate what image should be produced by a program). There is, in fact, no “correct” image for any given frame of a game. This makes it very hard to draw a line in the sand and say that one GPU does something the right way and the other one does not.

There is the added problem that taking screenshots in a game isn't really the best place to start when looking for a quantitative comparison. Only a handful of tests will allow us to grab the exact same frame of a game for use in a direct comparison. We are always asking developers to include benchmarks in their games, and this is a feature that we would love to see in every benchmark.

The other issue with screenshots is trying to be sure that the image we grab from the framebuffer (the part of the GPU's memory that holds information about the screen) is the same as the image we see on the screen. For instance, NVIDIA saves some filtering and post-processing (work done on the 2D image produced from the 3D scene) until data is being sent out from the framebuffer to the display device. This means that the data in the framebuffer is never what we see on our monitors. In order to make it so people could take accurate screenshots of their games, NVIDIA does the same post-processing effects on the framebuffer data when a screenshot is taken. While screenshot post-processing is necessary at the moment, using this method introduces another undesirable variable into the equation. To this end, we are working very hard on finding alternate means of comparing image quality (such as capturing images from the DVI port).

When trying to render scenes, it is very important to minimize the amount of useless work a GPU does. This has led to a great number of optimizations being implemented in hardware that attempt to do less work whenever possible. Implementing such optimizations is absolutely necessary for games to run smoothly. The problem is that some optimizations make a slight difference in how a scene is rendered (such as approximating things like sine and inverse square root using numerical methods rather than calculating the exact answer). The perceptibility (or lack thereof) of the optimization should be an important factor in which optimizations are used and which are not. Much leeway is allowed in how things are done. In order to understand what's going on, we will attempt to explain some of the basics of real-time 3D rendering.

Color and Alpha
POST A COMMENT

35 Comments

View All Comments

  • zhangping0233 - Thursday, January 05, 2012 - link

    Thank you for your post. Strongly recomend that you used the xeccon flashlight. Reply
  • DerekWilson - Friday, December 12, 2003 - link

    #23

    The FX cards support full DX9. In fact, they support more than the minimum to be DX9 cards and support some features that people speculate will be in DX10 (fp32, longer shader programs, etc...).

    Unfortuntely, this doesn't make the FX cards worth any more.

    Part of the reason ATI is able to lead so well in performance is that they don't support many of these features. And when games come out that can take advantage of them, it isn't likely that FX cards will run those features at very high framerates.

    The only thing FX feature support does for NVIDIA is give them one more generation of experience in supporting those features. Of course, it remains to be seen what they will do with that.

    ATI has proven that it can do a good job of hitting the nail on the head with actually leading the release of DX9 with full DX9 support. If they can do the same for DX10, then they will be doing very well.

    When DX10 emerges, things will get very interesting...
    Reply
  • Pumpkinierre - Friday, December 12, 2003 - link

    So does this meam NVidia FX series cards are now true DX9 cards or DX9 compatible (whatever that means?) or partly DX9 but better at DX8.1 and hopefully DX10? Reply
  • MOwings - Friday, December 12, 2003 - link

    This article was excellent. The explanations of all the technologies used in these cards was very clear. I thought the NVidia screenshots were brighter (the flashlight pic in Halo, the first pic in UT on the front right of the scnene). It seems NVdidia is being more accurate in their methodologies. To me, correct lighting is more important than the antialiasing so I would tend to prefer the NVidia. However, I doubt I would really notice any difference at full game speed and so maybe it is better to get the card that is fastest (ATI), although both seem to be plenty fast enough with their current drivers. Tough call. If there are stability issues with ATI drivers that might swing me although this is the first I have heard of problems with ATI's latest cards and drivers. Reply
  • virtualgames0 - Thursday, December 11, 2003 - link

    #17...
    I'm in the exact same shoes as you are in. I have gone from ATI 9700pro to nvidia geforcefx 5900 from game incompatibility issues. Half my OpenGL games would crash. Tried every driver.. only to find that other games crash while my old game is fixed. Switched to nvidia, not one problem
    However, if you are lucky and do not have problems, I would agree the 9700pro had far superior AA quality, and takes less performance hit doing AA, but nvidia is good for me since 2xAA is all i need when I use 1600x1200 resolution
    Reply
  • DerekWilson - Thursday, December 11, 2003 - link

    In response to the article, Scali over at Beyond3d put up a thread about the alpha blending issues we observed on the ATI cards:

    http://www.beyond3d.com/forum/viewtopic.php?t=9421

    He's written a program to test the accuracy of your cards alpha blending, which is kinda cool (and also confirms that ATI is a little off in the calculation).

    The theory Scali has is that the problem is due to ATI substituing in a couple shifts to save a division.

    We are definitely going to continue looking into the issue, and thanks, everyone, for your feedback.
    Reply
  • Shinei - Thursday, December 11, 2003 - link

    Exactly, Araczynski. I mean, I love my UT2k3 with 4xAA/8xAF(64-tap), I really do, but I don't NEED it to enjoy the game. As long it plays fast and looks better than the games before it, it doesn't matter if I have to dial back my AA/AF; hell, Halo won't even run above 10fps if I don't knock my filter to bilinear, let alone whining about AF quality at 8x!! Sometimes people just need to realize that IQ is a secondary concern to getting the game to run in the first place; suffer in vain with a Ti4200 in Halo at 1024x768 and then tell me that the "lower" IQ for an FX makes it less worthwhile than a Ti or an ATI. Reply
  • araczynski - Thursday, December 11, 2003 - link

    aside from the rest of the points, as far as i'm personally concerned, AA is a waste of time anyway. The only time i bother to use it is when i'm forced to run something in 800x600 or less (assuming it even supports D3D).

    Other then that I will always choose a higher resolution over an AA'd lower one. Personally i prefer the sharpnees/clarity of higher resolutions to the look of AA, but that's my opinion and my taste, I know others think the opposite, which is fine by me.

    Point is, i wish revewiers would stop focusing on AA quality/speed as if EVERYBODY gives a rat's hiny about it.
    Reply
  • Ineptitude - Thursday, December 11, 2003 - link

    Having owned a few ATI and Nvidia cards I can say that I agree with the article. Finding a difference in image quality between the current top models is mostly subjective. It is amazing to see the amount of bickering over the subject.

    What I don't understand is the failure to mention all of the driver problems people have experienced with ATI cards. At this point I will probably never buy an ATI product again due to the poor drivers. Nvidia drivers don't crash my machine.

    I've got a 9800 going cheap if anybody wants it.
    Reply
  • tyski - Thursday, December 11, 2003 - link

    Everybody here who says the article 'concluded suddenly and without concluding anything' could not have read the article. The whole point of the article is that the author provided enough information for the reader to come his/her own conclusions.

    The only conclusion that Derek made was that nVidia does more work to get approximately the same thing done. If you understand anything about real time hardware, this is not a good thing.

    Having read every article Derek has written so far, I think this is probably the best one. Unbiased throughout. And if you want a screenshot for every possible combination of AA, AF, and resolutions, then go buy the cards and see how long it really takes to perform this many benchmarks. There is such a thing as article deadlines.

    Tyrel
    Reply

Log in

Don't have an account? Sign up now