GPAA: Geometric Post-process Anti-Aliasing

GPAA - Geometric Post-process Anti-Aliasing

After MLAA (Morphological Anti-Aliasing) and SRAA (Subpixel Reconstruction Anti-Aliasing) or more recently FXAA, here is a new anti-aliasing technique introduced by Humus and called GPAA or Geometric Post-process Anti-Aliasing.

In short, GPAA uses geometry information to very accurately smooth geometric edges:

The technique is relatively simple. The scene is initially rendered normally without any antialiasing. Then the backbuffer is copied to a texture and the geometric edges in the scene are drawn in a post-step. The edges are drawn as lines and for each shaded pixel the shader computes what coverage this pixel should have had by the primitive that shaded it. It also checks what side of the line the pixel center is and blends the pixel with a neighbor up or down in case of a mostly horizontal line, or left/right in case of a mostly vertical line.

According to Humus, the main advantage of this technique is performance and quality and the main disadvantage is that you need to have geometric information available.

More information and Direct3D 10 demo download HERE.

On my HD 5770, the demo with default camera position (image below) runs at around 253 FPS in 1920×1080 with GPAA enabled and 275 FPS with no anti-aliasing.

GPAA - Geometric Post-process Anti-Aliasing


5 thoughts on “GPAA: Geometric Post-process Anti-Aliasing”

  1. xcbb

    This is starting to get really interesting.

    Hopefully one day there will be a hardware implementation of an improved version of this.

    It is a good solution and the first one that (in my opinion) really works like it should.
    (except for that one pixel artefact thing, but I’m sure a better version of this method can be constructed that does not have the current drawbacks, artefacts)

  2. Cobaltpap

    I see a copyright law being broken with the use of the GPAA name. It belongs to Gold Prospectors of America and has for 30 years. Gonna go tell the big wigs now. Let the fun begin.

  3. wteSmithy

    Doesn’t edge-detection AA do the job well enough already without all the extra hard work?

    Maybe you get more FPS because @1920×1200 fullscreen (maxed out), 8x AA GPAA I averaged 1000fps on 5970+2600K @4.6GHz on the benchmark demo.

    I was surprised by this, what do others get.

Comments are closed.