Compositor: Alpha Over node, the top input should correspond to foreground
discussion on twitter: twitter.com/mormo_music/status/1288751644403007488
Update:
Several have indicated that the blender convention is to have the top input accept the 'thing to have something done to'. In this case the top input accepts the 'image to have something overlayed on top of' and the bottom one 'the thing to overlay'.
The name of the node (Alpha Over) currently refers to a thing that gets done to the 'base image' - which supports the current input arrangement with regard to consistency with the rest of Blender.
But it needn't be this way. My impression is that if the name of alpha over were 'layer images' instead there'd be no clear 'base image' anymore, and the input order could be changed without any inconsistency with other blender modules. (Perhaps the node could be altered to accept an arbitrary number of image inputs too).
17 Comments
On one hand it seems more logic, on the other hand it would make it inconsistent with other nodes like mix rgb or math as they all follow the binary 0 vs 1 logic.
Maybe a good idea could be to simply use the socket names to indicate whcih is background and foreground.
* @-L0Lock- * more descriptive socket names would already help a lot, i agree. or even tooltips when hovering over the inputs.
imo mix also ought to work as suggested in this proposal. can you explain a consideration against it?
* @tomasz.brain * as soon as you have any kind of mix, the logic is "you mix the first entry to the second entry. The order becomes important depending the choosen operation. Alpha over is about having an image and adding another atop using an alpha value. Mix rgb and math nodes will pzrform mathematical operation on which the order of inputs is important. I.E substrasction.
There isn't an absolute order of input, it depends your needs. Except the alpha over because it's always a matter of background and foreground.
* @-L0Lock- * is it the node name thats an important factor in this case? e.g if the name of alpha over were 'layer images' instead, do you think there'd still be a case for having the top input correspond to background, or would the proposal then be an unambiguous improvement?
* @tomasz.brain * I'm personally not lead into mistake by the node's name so I can't tell.
* @-L0Lock- * +1 for socket names. But i think, consistency here should mean less than logic and whol industry consistency: higher layer is higher! Also, as far as factor-slider is horizontal, there is no problem: it will be closer to foregroung and it means foreground`s opacity
The only thing I would do to the alpha over node is rename the first image to background and the second one to the foreground.
As far as the positions go it is correct as it is now. When the factor is 0 it uses the socket that is on the left. When it is 1 it uses the socket that is on the right. But because sockets can't be one next to each other horizontally they are next to each other vertically. And since you're then not reading from left to right you go and read top to bottom.
I don't agree. I do think more descriptive sockets is a good idea, though.
The thing about nodes vs layers is that it's a hierarchical system based on numbering. So bottom socket makes sense, as the node is running downward in number.
If this was layer based, then sure I'd be all for it. But that will only make this confusing IMO.
This bottom to top thing is valid if you follow Photoshop&friends standard (also the name "over" does suggests it).
But in Blender the logic is that first is 0 and second 1, as in reading order: top to bottom. It's like this everywhere in the application. I wouldn't change it even tied on a torture-bed
* @ Lsscpp * if the name of alpha over were 'layer images' instead, do you think there'd still be a case for having the top input correspond to background, or would the proposal then be an unambiguous improvement?
* @tomasz.brain * I think 'layer images' would be even more ambiguous. Alpha over is correct, it's just what the node does. Personally I don't find uncomfortable the 0-1 logic throughall Blender. Once I learned it, it was straightforward
edit: maybe 'Alpha Blend'?
* @ Lsscpp * "Alpha over is correct, it's just what the node does."
it's an extremely ambiguous name. Possible meanings that are at least as plausible as the actual function imo:
"image overlay" would be very much clearer (use of alpha channel is implicit).
* @tomasz.brain * It's hard to tell from my non-native-english point of view, what is the better/less ambiguous wording for this node. I like Image overlay, but already overlay is a well known blend mode so it could be ambiguous too...
yeah, the current logic is a bit counter-intuitive, this would be a small but very helpful fix
But the picture is 2-dimensional, and the foreground-backgroundthing is a 3rd dimension. Only because you're used to the top input corresponding to foreground doesn't mean it's logical. Top does in no way or form equal foreground and there are many layer based programs that use the bottom equals foreground logic.
👎
* @herrwasser13 * "there are many layer based programs that use the bottom equals foreground logic."
I'm curious which ones. I've never seen it before.
Off the top of my head I've used: photoshop, illustrator, flash/animate, after effects, toon boom harmony, clip paint studio, TVPaint. All of them use the 'top = foreground' pattern.
I agree blender should overhaul the layering system entirely. Even quixels layer system is confusing sometimes.
It is commonly known that the top layers should be the foreground.