[cairo] Incorrect rendering of the edges of overlapping polygons

mental at rydia.net mental at rydia.net
Sun Dec 4 17:50:23 PST 2005


Quoting David Benbennick <dbenbenn at gmail.com>:

> For what it's worth, it appears that Postscript renderers don't
> suffer from this problem.  At least, Metapost, which produces
> Postscript output, doesn't have this problem.

Metapost isn't a renderer (rasterizer), is it?

As far as I know most postscript renderers either use FSAA for
low-resolution output, or render at a high enough resolution that
AA isn't necessary.

> That isn't much of a solution, since it makes sharp edges fuzzy,
> discarding the big benefit of vector graphics.

That depends entirely on the filter you use.  If you simply average
non-overlapping blocks of NxN pixels to do N:1 downsampling, you
can get sharp pixel-aligned edges just fine.

> What does that mean?  If necessary, Cairo can certainly render
> the first n% of the commands it receives, regardless of what
> rendering algorithm it uses.

Sure.  But you can't just render the BSP tree or downsample the
image to an intermediate bitmap at the final resolution for
compositing with later results.  If you do, then you're back to
getting seams between things again.

> Also, you write "by default".  Is there any non-default method
> available?

You have the option of turning off antialiasing entirely.

-mental


More information about the cairo mailing list