Image Quality

Here we'll take a look at the primary image quality options of the GeForce 7800 GTX.

The texture filtering options are the same as the rest of the NV40 series with Trilinear optimisations enabled by default and Anisotropic filtering that isn't applied at all angles, but capable of going up to 16x at the 90 and 45 degree cases.

The FSAA sample capabilities also stay the same with the rotated grids up to 4x native Multi-Sampling, but with combined Super-Sampling and Multi-Sampling for modes beyond 4x.

NVIDIA have added a new Anti-Aliasing mode to 7800 called Transparency Anti-Aliasing. Multi-Sampling works by performing multiple Z tests, at a higher resolution than the display to see whether polygon edges intersect the pixel, however as this only operates on polygon edges texture data still only recieves one sample per pixel, unlike Super-Sampling FSAA. The issue here is that transparent textures are still commonly used to represent fine detail such as chain link fences, grates, leaves, grass, etc., so although with Multi-Sampling the geometry edges are anti-aliased these types of details aren't and can often end up being distracting within a scene.

Transparency Anti-Aliasing works with Multi-Sampling by testing if a transparent texture is required within the scene and over-sampling that texture in the texture unit and shaders in order to get more sample information such that when the frame buffer is resolved transparent textures receive some Anti-Aliasing.

NVIDIA's drivers have two options for transparency Anti-Aliasing, Multi-Sampling and Super-Sampling. The images above are from a scene in Half Life 2, rendered with 4x FSAA enabled, containing a chain link fence created by the use of a transparent texture. In this instance we can see that Multi-Sampling Transparent Anti-Aliasing isn't really doing much, but Super-Sampling Transparent Anti-Aliasing really is cleaning up the fence significantly*.

Effectively Transparent Anti-Aliasing is just enabling Super-Sampling on transparent textures so the performance of the rendering is going to be highly dependant on the utilisation of transparent textures within the scene. Our Far Cry test isn't within one of the very dense forest areas, but it does have a number of trees that will have transparent textures for leaves, so we've recorded the performances of the various modes with a base of 4x FSAA and 8x AF.

No Transparency AA 81.4 81.4 81.4 78.4 64.4
MS Transparency AA 81.3 81.3 81.3 78.2 64.2
SS Transparency 81.0 81.1 81.1 76.3 58.4
MS Transparency AA -0.2% -0.2% -0.1% -0.3% -0.4%
SS Transparency -0.5% -0.5% -0.4% -2.7% -9.4%

The performance difference between normal 4x MSAA and with Multi-Sampling Transparency AA enabled is fairly slight which, in conjunction with the earlier images, makes us wonder exactly what is going on here, if anything. However, with Super-Sampling Transparency enabled we see that there is a 9% performance drop at high resolution in this particular Far Cry test.

*Update: The reason for the lack of difference between Multi-Sampling and Super-Sampling Transparency AA modes is most likely due to the particular properties of the texture used in that scene – the Multi-Sample Transparency AA option is expected to work when the application has Alpha Test is enabled and Alpha Blend disabled; Super-Sample Transparency AA is more of a catch all situation and can be used when Alpha Test is enabled and Alpha Blend disabled or the shader uses the TEXKILL instruction or the shader is using depth replace. As far as end users are concerned you may need to experiment with application to see which mode works in which application - Super-Sample Transparency AA may handle more situations but might be a little more costly than the Multi-Sample Transparency AA setting.

We’ve also had confirmation that the sampling pattern used on the transparent textures is the same as that of the polygon edge sampling patterns of the base MSAA mode in operation. The number of samples for Transparency AA also operate in lock step with the base FSAA mode selected, such that if 2x FSAA is used then Transparency AA also takes two samples or if 4x FSAA is selected Transparency AA also takes 4 samples.

As far as the operation of this mode goes, its now been independently suggested to us that when an alpha texture is in use the driver detects it and then resubmits the geometry for that state multiple times, dependant on the level of AA selected. The geometry is jittered, offsetting the texture sample position, in order to provide the Anti-Aliasing when the image is resolved down to the display resolution.