FSAA Implementaion

Started by
6 comments, last by neocron 23 years, 7 months ago
How is full-screen anti-aliasing implemented. Is it a simple blur filter applied to the screen bits, or is it something far more complex? Thanks!
Advertisement
On the GeForce2, they simply render the scene at a higher res and sample down - hence on the higher resolutions you can''t use it.

On the Voodoo 5 or whatever, they do some weird thing with their "T-buffer" , not quite sure what.

PS T-buffer? Where the hell did that come from? The term Z-buffer makes sense, W-buffer is pushing it, but T-buffer is just plain silly IMHO.
On EVERY card they use a higher resolution image filtered down.
This gives you sub pixel accuracy.

However, the filters don''t work in the same way on EVERY card.
PowerVR (which first introduced FSAA in the mass market) and GeForce use a ''simple'' filter while 3Dfx use a more advanced one, which look best.
(or at least as good)

Check Out Beyond3D for details on the different implementations.

-* So many things to do, so little time to spend. *-
-* So many things to do, so little time to spend. *-
I read somewhere, that the 3Dfx card renders several frames from slightly different viewpoints to the T-Buffer and blends these images to get the actual frame. Unfortunately, I don''t know where I read about this (it was a while back), so things yould have changed by then.

MK42
quote:Original post by MK42

I read somewhere, that the 3Dfx card renders several frames from slightly different viewpoints to the T-Buffer and blends these images to get the actual frame. Unfortunately, I don''t know where I read about this (it was a while back), so things yould have changed by then.

MK42


I think you may be talking about the motion blur, on of the T-buffers features, although what you suggest does sound like a way to do FSAA. It just rings a bell up in my head too.



==============================
\\// live long and prosper; \||/ die short and rot.
==============================

Drew Sikora
Executive Producer
GameDev.net


Thanks all! I''ve just finished my software implementation of 2x1 FSAA (double the horizontal res. and resample by averaging every two pixels).

The results look quite good. There''s not too much performance penalty for 260x140, 320x240 and 512x384 given the good results. 640x480 gets a bit bogged down (for my application; no hardware acceleration), however the improvement in image quality is obviously less important the higher you go in resolution.

I also implemented a blur filter just to compare the results for a laugh; slower but still not too bad (I use a Bartlett window; [1 2 1][2 4 2][1 2 1] on the surrounding pixels then divide by 16).

Thanks again!
Gaiiden: What I described is also a valid method to do FSAA with OpenGL. That''s what the accumulation buffers are for and the T-Buffer is nothing else, than just an accumulation buffer... I''m not mixing this up with motion blurring. You just render the scene with a jittered view-matrix. Like if you want to sample 4 times, you move the camera a bit to the upper-left, upper-right, lower-left, lower-right. Now, if you average those 4 frames you have FSAA I also believe that''s why 3Dfx is pushing so much on fill-rate (since that''s what''s really important here).

neocron: Isn''t that a 3x3 Gaussian blur? What''s this Bartlett window?

MK42

Hi MK42. You''re right they''re the same beast. Bartlett window is the name given to the NxN Matrix of weights (as far as I recall).

This topic is closed to new replies.

Advertisement