Wed 14 Nov 2012 04:25:22 PM UTC, comment #1:
(You need to move the top layer so a dark bit and a light bit are over the background, right? It looks the same before and after if I don't.)
What you've just described is actually how it's supposed[1] to behave when composited over alpha=0, and all modes will suffer for it to varying degrees. It's very apparent with lighten and a mid-grey background of course, because dark bits of the "Lighten" layer will not be shown over that background.
MyPaint composites differently to other programs because we start with a solid background, and all the editable layers are composited onto that. This results in lots of oddness for users because this behaviour is different to the way its own Merge Down operation works!
IMO we should support a real backgroundless display mode (with real alpha checks) and only support single merge operation, "Merge Visible", which is only enabled when the background is turned off. Then what you see before the merge will be precisely what you get after the merge with zero surprises. But maybe I'm being overly strict!
Maxy favours a Merge Down which picks up the background pixels, making all strokes solid. I'm not so sure. What if you them move the layer expecting it to be transparent?
[1] We use the lighten function from the SVG specifications because that is how OpenRaster is defined. Take a look at the yellow circle in
http://www.w3.org/TR/SVGCompositing/#comp-op-lighten
If the backdrop is empty, the top layer is just used, as if in Normal mode. It's what you get from MyPaint when you save as a transparent (backgroundless) PNG, but not when using the program because the background layer is a proper layer.
Notably, GIMP 2.6 (not sure about 2.8) does something different again: it somewhat weirdly composites the results of "effect" layers like Burn or Lighten using what looks like src-in and not src-over unless the effect layer is the bottom layer in the stack in which case it's treated as a Normal layer and not an effect.
For an effect layer, the "Top layer" above is the result of blending the colous of the bottom layer and the real top layer.
|