Around 11 o'clock on May 16, Carl Worth wrote:

> So, my proposal is to define ab and ac such that this constraint is
> always met. That is:
> 
>       ab = MIN( AlphaArea(area(ab)), abcd - AlphaArea(area(ac))
>       ac = MIN( AlphaArea(area(ac)), abcd - AlphaArea(area(ab))

Sorry, that won't quite work.  One of the assumptions in the proof of 
correctness for the spec (which missed the part about negative alphas)
is that the alpha computations for any region are always computed 
precisely the same, regardless of which trapezoid is being rendered.

When rendering just 'b', the alpha of 'ab' must be computed, but at that 
point the existance of the trapezoid below isn't known, so the existance 
of 'cd' isn't known either, making it rather hard to compute that alpha.

I'm going to run some numbers and see whether I can fix this by changing 
the precision of various alpha computations, the problem in this
example comes from computing the area of the two triangles using vertices 
which rounded in such a way that the larger triangle ended up with a 
smaller area.  If I can fix that, then I think all will be well again.

Keith Packard        XFree86 Core Team        HP Cambridge Research Lab


_______________________________________________
Render mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/render

Reply via email to