PDA

View Full Version : FSAA questions: how it works, and compatibility.


KAN
07-16-05, 06:01 PM
Alright, could anyone elaborate me better about FSAA? How it really works? As far as I'm aware, FSAA is done through the technique of supersamling; that is, renders multiple frames and combining them while averaging adjacent colors. Thus, my impression is that FSAA does not need vector data to remove jaggies (the vector data is only needed to render the frame in 3D). Thus, the questions are.....



(1) How it is impossible to apply FSAA in 2D games? Like I said, I'm under the impression that FSAA doesn't need the vector data to remove the jagged edges; because it is done by averaging the colors of multiple frames. Imagine smoothing out 2D games like Fallout or StarCraft, or even our desktop! Also, IIRC PowerVR Kyro II can enable FSAA in 2D (although the bad side is text becomes more blurry). Why other cards cannot do such thing?



(2) During the release of Voodoo5, 3dfx claimed that its FSAA is "free"; that is, a software doesn't have to be specifically written to support FSAA. Considering FSAA is merely rendering multiple samples of the same frame, then averaging the colors, I thought any video cards capable of doing it should be able to do FSAA for "free". So.... is Voodoo5 the only video card that can do FSAA without developer support? (provided the game supports Direct3D or OpenGL, I guess) Probably because it has the T-Buffers?



(3) Regarding number two, how about nVidia's FSAA? Can it enable FSAA without developer support? Yes, nVidia cards can do FSAA perfectly for newer games, but....

(a) Is it because newer games support newer version of DirectX, where developer support for nVidia FSAA is already included in those DirectX?

(b) Can nVidia cards do FSAA for any games supporting Direct3D or OpenGL, without the games have to be specifically written to support FSAA? An example is older games that came before FSAA was featured in video cards. Voodoo5 do perfectly on those games; can newer cards lke nVidia or ATI do the same?

The reason I ask those questions is because I play older games on my Voodoo5-based legacy system. However, I tried to enable FSAA for European Air War on my notebook, which has ATI Mobility Radeon 7500. Well, it failed. The FSAA doesn't work at all, despite I checked the "FSAA" checkbox in the ATI control panel. The screen didn't show FSAA at all and the jaggies were still there (and yes, I was using 640x480 to get clearer picture of FSAA).

But the funny thing, nVidia FSAA is successful in Falcon 4.0. Does it mean that nVidia cards can force FSAA in any games without developer support whatsoever, or it is just a lucky case?



(4) But then again, if FSAA is merely rendering multiple samples of the same scene, and then combining the frames and averaging the colors, then how is it possible to have "compatibility issues" with FSAA? In fact, which such method, FSAA can be done in 2D as well! But why PowerVR Kyro II can do FSAA in 2D, while the others (including Voodoo5) can't?



Thanks,
-Kreshna

jolle
07-16-05, 06:55 PM
MultiSampling AA, only takes samples around pixels that are on polygonal edges and sortof "evens them out" colorwise, which is rather cheap in terms of performance, but only works on polygon edges.
SuperSampling AA.. well atleast Ordered Grid SS I think renders the image larger and scales it down 2x2 SSAA @800x600 would be 1600x1200 downsampled (4x SSAA since 1 pixel is the result of 4 subpixels).. which has a pretty big performance hit.

1) You can use AA on 2d, depending on a few things..
Might only work with SuperSampling AA, since 2d images dont have any polygons.. perhaps there are filtering methods better suited for 2d tho.
Prolly depends on what API is used to draw the 2d.

2) Any card can do AA on "unsupported" games, software support isnt needed.
Some cards have problems with AA in older games running 16bit color tho (mainly ATI cards I think) prolly why your Mobility 7500 didnt do any AA, if the game was running 16bit color..

3) Both ATi and Nvidia can do AA in any game using D3D or OpenGL.
In the cases where a game has its own AA controls, you should use them and not Force AA from the driver.
Since they most likely set up some parameters to aviod bugs and errors by excluding certain things from AA..or something like that.
In older games, ex Quake1, you can force on AA from the Driver..
for example use Nvidias 8xS(old) mode (2x2 SSAA + 4x (or 2?) MSAA)

4) well it is compatible with pretty much any realtime 3d view.
Since AA is applies after the image is rendered to the framebuffer (well, I think so atleast..)
SSAA should work on any 2d surface being drawn with the right API aswell.

Not 100% sure on all that.. correct me if Im wrong.