[cairo] Avoiding seams

Eric Hughes eh-cairo at narthex.us
Mon Dec 12 20:01:02 PST 2005


I can't address everything yet, because I'm still investigating, but 
I can respond to one point.

>On Mon, 2005-12-12 at 18:19 -0700, Eric Hughes wrote:
> > Anti-aliasing can be done locally with path-as-boundary, with one
> > caveat.  You can draw either with luminosity (additive) or occlusion
> > (subtractive).  As long as one or the other is specified, you can get
> > a linear behavior at edges.

At 07:21 PM 12/12/2005, MenTaLguY wrote:
>There is a fundamental ambiguity:
>
>  http://lists.freedesktop.org/archives/cairo/2005-March/003481.html

The fundamental ambiguity of this example is because of the use of 
simple opaque occlusion, what is called there the "covered-by" 
operator.  Mathematically, this is the function max(), which isn't 
linear over the integers.  If you have a non-linear compositing 
operator, then you're in a situation where computing an alias filter 
independently per element doesn't work.  You have to have linearity 
to be able to compute the filter function independently per element.

If you need a non-linear compositing operator to deal with vector 
graphics, you still don't need to compute it over the whole 
screen.  Doing it at intersections (including collinear edges and 
coincident vertices) suffices.

Eric



More information about the cairo mailing list