SuperAA - feasible with SLI, too?

Xmas

Porous
Veteran
Supporter
I wondered whether NVidia could do something like CrossFire SuperAA, so I made a few test images. ATI has the clear advantage of supporting up to 6xMSAA per card and a programmable sample pattern on a 12x12 grid, which is necessary for optimal placement with SuperAA. But between 8xS with an EER of 4x8 and OGSS, and ATI's "10x" SuperAA mode, there seems to be some room for improvement. ;)

One problem with NVidia's non-programmable pattern is that if you move the texture samples more than half a pixel away from each other, the sample pattern overall gets larger than a pixel and will therefore result in a slight "blur". But since these are only geometry samples reaching "into another pixel", this slight blur is restricted to polygon edges only, not textures.

I've tried a few different combinations of sample patterns. Those images were rendered on a Radeon 9600 with 4xAA enabled. I made two images with slightly shifted geometry and blended them together with PSP. Compared to NV4x, the sampling pattern is mirrored – which makes practically no difference – and the downsampling is gamma-adjusted – which certainly makes a difference. So the images would usually look a bit worse on an NVidia card, depending on your preferred gamma settings.

The outer edge is a polygon edge, the inner edge is done with alpha test. On the left side, you see the proposed sampling pattern, on the right side there's a 4x zoomed view of the two corners.

4x MSAA for reference:
4x.png


Shift by 1/8 pixel horizontally and vertically. No blurring, all samples are inside the grey dotted pixel border. EER is 8x8. Supersampling only has a small effect.
1818.png


Shift by 1/4 pixel horizontally and vertically. Slight blurring, some samples are on the grey dotted pixel border. EER is 4x4, therefore not recommended.
1414.png


Shift by 3/8 pixel horizontally and vertically. Slight edge blurring, some samples are outside the grey dotted pixel border. EER is 8x8. Supersampling effect is acceptable.
3838.png


Shift by 1/2 pixel horizontally and vertically. visible blurring. EER is 4x4 only, but sparse grid supersampling.
1212.png


Shift by 1/8 pixel horizontally and 3/8 pixel vertically. Only slight vertical blurring. EER is 8x8. Supersampling effect is close to 1x2 OG.
1838.png


Similar to the former, but shifted 3/8 pixel horizontally and 1/8 pixel vertically. Same EER, but the pattern is a bit worse.
3818.png


Which is best, and do you think it would be an improvement over 8xS?
 
Noob question: Why aren't the interior edges AA'ed :?:

3/8 3/8 shifts look the best
 
Alstrong said:
Noob question: Why aren't the interior edges AA'ed :?:
They're done with alpha test. Alpha test is a per-pixel operation, so you can't antialias alpha test edges with multisampling. The above modes only use 2x supersampling which means you only get one intermediate step on alpha test edges, and for most modes this intermediate step isn't evenly distributed. But it's better than no supersampling at all (4xMSAA pic).
 
3/8 both h/v looks promising.

What about reversing the angle of the super sample shift?

Currently the SS are shifted along a northwest-southeast axis.

What would happen if you moved them along a northeast-southwest axis?

Jawed
 
What about making each SLI card implement a x2 supersample in opposite axis. Have card one do 2xMSAA + 2xsupersample horizonal, have card two do 2xMSAA + 2xsupersample vertical.
 
Scalable Performance - With Clarityâ„¢ FSAA, IDX IGs achieve high SPS factors using reduced on-chip anti-aliasing, which provides IDX with a significant performance advantage over conventional PC-based IGs. IDX also supports “Performance Tilingâ€￾, which subdivides the screen into multiple viewport tiles that effectively reduce the resolution per IGR, thereby increasing the channel’s effective fill rate and enhancing the overall throughput of the IG. Performance Tiling and Clarity enable IDX 2500 to deliver unmatched levels of performance, while maintaining high image quality. With 8 SPS FSAA and trilinear filtering enabled (at 1600 x 1200), IDX 2500 with 1, 2, 4, or 8 IGRs per channel delivers peak, sustained pixel fill performance between 1.6 and 8.97 billion pixels per second—which is approximately twice that of IDX 2000 and between 4 and 20 times the performance of a merchant PC equipped with GeForceFX 6800 Ultra. IDX 2500 delivers the following peak, sustained triangle performance between 8.5 million to 10 million independent triangles per second and 25.6 million to 35 million meshed triangles per second.
 
DemoCoder said:
What about making each SLI card implement a x2 supersample in opposite axis. Have card one do 2xMSAA + 2xsupersample horizonal, have card two do 2xMSAA + 2xsupersample vertical.
You mean, like this?
2x1-1x2.png

Well, would be worth a try, I think. EER 12x12 (3x3 for alpha edges) but a bit too irregularly distributed for my taste. I think I'd prefer the (3/8, 3/8 ) shift shown above combined with either 2x1 or 1x2 OGSS.

Jawed said:
3/8 both h/v looks promising.

What about reversing the angle of the super sample shift?

Currently the SS are shifted along a northwest-southeast axis.

What would happen if you moved them along a northeast-southwest axis?

Jawed
Don't know what would happen, not much I think. ;) EER and supersampling quality remain the same, maybe some edges get worse, some better, and overall quality remains the same.

If I find the time I might write a little app that renders two shifted images blended together. Has ATI fixed the multisample rendertarget downsampling yet?
 
Personally, I think it's rather a waste to do that sort of AA if you don't also change the sample pattern.
 
Chalnoth said:
Personally, I think it's rather a waste to do that sort of AA if you don't also change the sample pattern.
If the MSAA sample pattern is fixed and one of these modes is better than 8xS at about the same speed, I don't think many SLI users would mind.
 
What a coincidence that they announced new technology just a week after you posted the best possible solutions :LOL:
 
Also note that NVIDIA's 16x AA should be called "20x AA" in ATI terms (which, btw, is just silly).
 
But really, is there point to this? Would you see any real differance in any practical gameing situation compared to 8xS?
 
MistaPi said:
But really, is there point to this? Would you see any real differance in any practical gameing situation compared to 8xS?
I would, especially on alpha test edges. On vertical edges, too.
 
Back
Top