Blend modes take 3

Carl Worth cworth at cworth.org
Mon Oct 20 14:10:56 PDT 2008


On Sun, 2008-10-19 at 01:54 +0200, Soeren Sandmann wrote:
> This sort of suggests that instead of adding all the PDF blend modes
> as separate operators, they could instead be given as modifiers to an
> existing operator. For example, you could then specify IN and
> MULTIPLY, and the result would be 
> 
> IN, MULT   0              0                D * S            0

I think that's an interesting result from an academic perspective, but
it's not obvious to me that it will be worthwhile to pursue this.

As evidence, look at the Conjoint and Disjoint operators in the Render
specification. These came about when Keith found a generalization of the
Porter-Duff operators that led to a family of operators that happened to
include one non-Porter-Duff operator he'd already added to Render,
(SATURATE).

The generalization was even hinted at in the original Porter-Duff paper,
where it says that the assumption of uncorrelated coverage could be
improved:

	"if we know that the coverage seldom overlaps (adjacent
	segments of a continuous line) or always overlaps (repeated
	application of a picture)"

So mathematically speaking, the generalization was quite justified.

But in practice, it wasn't very useful. I did actually write one
application that used it, (and that gave the impetus to Keith to invent
the implementation of these operators). But when it came time to expose
Render's operators in cairo 1.0 we dropped all the Conjoint and Disjoint
variants. There was not any measurable application demand for these, and
they would not map at all well onto any backends other than Render.

So I'd suggest just naming the new equations as operators with the same
names as PDF rather than introducing a new notion of "blend mode".

-Carl


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.x.org/archives/xorg/attachments/20081020/f852e00b/attachment.pgp>


More information about the xorg mailing list