[cairo] Survey of polygon rasterization techniques

Bill Baxter wbaxter at gmail.com
Tue Jul 31 00:38:27 PDT 2007


> agg
>         - coverage based antialiasing from freetype
>         - compute edge flags for all edges into a list of cells
>         - quick sorts cells into pixel order
>         - scanline rasterize the cells
>         - O(p log p) : p is the number of pixels on edges

AGG also supports a different rasterizer made specifically for
implementing Flash more accurately.  It's called
agg_compound_rasterizer or something like that.  The problem as I
understand it is that in order to properly rasterize and adjacent
fills with anti-aliasing, you need a rasterizer that is aware of the
color on the "both sides of the fence".  This is because the
compositing used for implementing edge anti-aliasing is
order-dependent.  Usual techniques treat a half covered pixel as a
fully covered pixel that is half transparent.  If you come back and
exactly fill the other half with a different color the result should
be 0.5 c1 + 0.5 c2.   But that's not what you get.  You get a 50% c2
over 50% c1 over background compositing operation which is not the
same value.

--bb


More information about the cairo mailing list