Although 4x multisampled (edge) anti-aliasing (4xMSAA) has become a must
have feature for modern 3D gaming hardware and it does well for most tasks,
there are some cases when better algorithms are welcome. For instance, when a
whole texture needs to be filtered. Of course, there is 8xS algorithm which
combines power of 4xMSAA and 2xSSAA (Super-Sampled Anti-Aliasing).
It samples 4 texels per every edge pixel together with 2 texels per absolutely
every pixel, downsamples and writes to colour buffer afterwards. No wonder that
this algorithm requires much more processing power than 4xMSAA. The
problem is that regular 4xMSAA isn't of much effect sometimes and
2xSSAA just isn't enough. This issue is related to alpha textures which
are used often to produce various effects, say, casting shadows using depth
maps. That's why NVIDIA engineers have implemented the Intellisample 4.0
technology into the G70 graphprocessor which includes support for TAA
(Transparency Anti-Aliasing). This technology is able to detect alpha textures
and treat them accordingly. There are two distinct kinds of TAA: multisampled
(TMSAA) and super-sampled (TSSAA). In theory, the first algorithm implements a
contour anti-aliasing on alpha textures while the second one processes whole
alpha textures at over than 2x sampling rate. There is also GCAA (Gamma
Corrected Anti-Aliasing) which is supposed to increase image fidelity after
anti-aliasing operations. By the way, there are two kinds of MSAA, ordered-grid
and rotated-grid, which differ in texel sampling positions. Rotated-grid
delivers better visual quality at the same performance expense, so it is
implemented in this ForceWare release. Additionally, the driver supports two
2xMSAA modes, regular and quincunx (2xQ). While both of them sample two
texels per every edge pixel, 2xQ chooses them in such way that one is taken from
the pixel centre and another from one of the pixel "corners". The latter texel
is also involved in calculations of three neighborous pixels. So, there are only
two texels per pixel sampled, but five texels blended to receive the final pixel
value with the following weights:
|
2xQ allows for quality better than regular 2xMSAA no matter how to rotate
samples around pixel centre, comparable to 4x ordered-grid MSAA, but inferior
somewhat to 4x rotated-grid MSAA. That's the reason why 4x ordered-grid MSAA has
been phased out. All right, let's leave quality factor beyond our attention
because it depends completely on a particularly taken scene of a particularly
chosen gaming title, and come directly to performance factor. In other words,
how many FPS you'll have to sacrifice in order to get a better looking image.
The following figures have been taken on a non-overclocked BFG GeForce 7800GS OC
running the Training and Branchester demo records of Far Cry and Serious
Sam 2 respectively. NVIDIA's TAA implementation has no effect on OpenGL,
so Quake 4 and Prey are out of luck this time.
|
As you can see, both 2xMSAA and 2xQ lead to a 7% decrease in means of the
average FPS, though there is no negative influence on the minimal FPS. The
difference in performance between either 2xMSAA or 2xQ and 4xMSAA is much more
significant: -13% on the average FPS and -25% on the minimal FPS. GCAA has
absolutely no effect on performance while TMSAA has a very little one. TSSAA has
caused a more tangible performance decrease, and 8xS has almost halved the
performance of 4xMSAA.
Serious Sam 2 seems to be more sensitive to anti-aliasing than Far Cry
above. Both 2xMSAA and 2xQ consume 10% of the average FPS and 13% of the minimal
FPS. Although 4xMSAA isn't much expensive here if compared to either 2xMSAA or
2xQ: -7% on both the average and minimal FPS. The situation with GCAA and TMSAA
enabled remains almost the same, but 4xMSAA + TSSAA mode has delivered a
surprise by getting slower than 8xS. Well, it seems that this demo record
operates with many alpha textures, so here it is.
In general, results from the above say that there is no reason to prefer
2xMSAA if there is 2xQ available. Next, both of them are faster definitely than
4xMSAA, though it depends how much. Far Cry (Training) employs advanced geometry
which produces a lot of work for edge anti-aliasing while Serious Sam 2
(Branchester) isn't much into that. It also appears that having GCAA and TMSAA
enabled all the time isn't a bad idea. There is almost no performance penalty,
but some benefits to image quality should take place. 4xMSAA + TSSAA or 8xS are
expensive in means of performance, so it needs to think twice before enabling
them. Although it should be fine for low resolutions like 800x600 even if to
enable both 8xS and TSSAA.