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.

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

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)