Announcement

Collapse
No announcement yet.

Explanation of FSAA

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Explanation of FSAA

    Seeing that many people here and on the internet think that Voodoo5 FSAA is hardware anti-aliasing and that the G400, GeForce, etc. solution is a software trick... It's _not_, they are two different _hardware_ solutions to solve the problem.

    Let me explain.

    4x Supersampling (G400/GeForce):
    --------------------------------
    If the display resolution is 640x480 then internally the framebuffer is a twice as high resolution 1280x960.

    The RAMDAC combines each 2x2 pixels in that framebuffer into a combined averaged pixel and outputs it to the screen.

    As you might understand, this requires four times more fillrate due to the higher resolution.

    Accumulation buffer 4x FSAA:
    ----------------------------
    The T-buffer used by the Voodoo5 is derived from the accumulation buffer already used for years by special effects in movies etc. The accumulation buffer is a buffer in which you can combine multiple images by averaging those images. (In reality other possibilities are possible, but averaging is the most usefull).

    To accomplisch FSAA using the accumulation buffer is very simple:

    We render a scene four times into four different buffers, but for each buffer we move all polygons a little bit less than a pixel into a different X and Y position.

    By combining these framebuffers we get an anti-aliasing effect. Why? Because of a technique called sub-pixel accuracy. Let me explain, as most people won't know what this means:

    Sub-pixel accuracy means very simple that pixels that are partially or fully covered by a triangle (polygon) will be filled completely.

    If you move a polygon just slightly, some pixels which were drawn at the edge don't become drawn and some which weren't draw are drawn. Very hard to show here without pictures. I hope you understand it.

    Because of the slight differences in which pixels are drawn at the edges, combining the buffers will give a antialiasing effect.

    T-Buffer:
    ---------
    So what does the T-buffer more for anti-aliasing than an accumulation buffer? For the accumulation buffer the scene has to be _calculated_ four times (because of the slight moved polygons) and drawn four times.

    The T-buffer does this moving of the polygons automaticly in hardwaee without the drivers/application knowing it. This means that the scene only has to be calculated _one_ time, but it still has to be drawn _four_ times. Only this drawing to four buffers and combining them is transparent to the user.

    Conclusion:
    -----------
    Both supersampling and the T-buffer require 4x more fillrate (at least for 4x FSAA). Both are transparent for the application. And both are hardware supported.

    The big fallback is that 4x more fillrate is necessary which the current generation of 3D chips can deliver at good framerates. The Voodoo5 and NV15 (and others after that time) will have the neccesary fillrate to make FSAA acceptable.

    supersampling pros:
    - because of the higher internal resolution higher quality textures are used at higher depth than at a lower resolution. Because of the combining you can see a difference, but it isn't big.

    supersampling cons:
    - When combined with say motion blur you need a accumulation buffer, taking another 4x hit, resulting in a 16x hit in total.

    T-buffer (acc. buffer) pros:
    - Easilly combined with other accumulation buffer effects like motion blur. We then simply choose not to anti alias the motion blurred objects. A little bit less picture quality then, but still only the 4x hit.

    T-buffer (acc. buffer) cons:
    - Because sub-pixel accuracy also works for pixels inside the polygon the texturing also differs per buffer. Combined the texture will be a little bit smeared in comparision to a normal screen.

    So both methods have their pros and cons.

    With regards,
    Frank Schoondermark

    PS: I might take some time writing a document explaining it more detailed using pictures and publishing it, but it just as well might not happen.

  • #2
    Thanks a lot for that quick (but very enlightning) tour.

    I was getting very confused on this whole FSAA subject, thought that the T-buffer FSAA had to be implemented in the games/apps.

    Torben R.
    G400 news, info, downloads and mailinglist : http://TRsDomain.homepage.dk

    Comment

    Working...
    X