Selections on the Adjustment layers

enki enkithan at free.fr
Wed Sep 2 21:51:18 CEST 2009


I think both built-in and separated masks makes sense :

- Having a separated mask explicitely shows that you can change the 
transparency and you're sure your tools will perform the same way. 
Another advantage is that you can drag&drop/copy the mask to another 
layer easily. When the mask is deleted, the filter layer would be 
applied on the whole image.
- But we can also see things the others way around: Paint layers and 
Shape layers have built-in transparency too. So maybe it's is more 
logical to put a built-in transparency mask in other layer types.

The problem with filter layers is that selections are used as data AND 
as a filter for other tools. For example:
- Let's say that I want to paint inside a selection: I can't create that 
new selection because if I do, it will overwrites the existing mask data.
- If I erase with a paint tool, it erase the selection, but if I paint, 
the selection isn't extended, because paint tools are bound by the 
selection.
- I can't use global selections to manipulate pixels.

There is 4 ways to display a mask:
- by the effect it has on its parent.
- as a selection.
- as a greyscale image.
- as a colored overlay.
In our case, we shows two kind of display at the same time(selection + 
effect). That's very confusing. It's a bit like mixing two different 
charts that use the same data.
I think the built-in mask in filter layer and filter masks should behave 
exactly like the transparency mask.
Also, the user should be able to switch from the display mode 
(selection, overlay...) when he need to. But that raise new problems : 
Vector selections are lost if we convert them to another mode (that 
doesn't happen in other editor because they force the user to convert 
vector shape to raster selection). But I think an user that really want 
to keep his selection will save them in a local selection anyway.

Again, here is the behavior of a well-known graphic editor ;P :

- Any layers can have a mask and it always works the same way.
- Adjustement layer are created by default with a child mask.
- A mask is a channel of the current layer:
    *If the mask is set "hidden", its transparency effect is applied on 
the layer(default behavior).
    *If the mask is set "visible", you see it as a colored overlay.
    *If the mask is set "visible" but, other channels are hidden, the 
mask is shown as a greyscale image.
    (not really user-friendly uh ? ^^)
- You can paint on masks as if it was a greyscale layer. Black = 
transparent, white = opaque. That make it easier to use paint tools.
- You can display a selection as an overlay at any moment, paint on it, 
and display it as selection again.
- Masks are shown on the same line than their parent layer, so it 
doesn't take more space in the layer docker.


Now to resume my thinking :
- All masks must behave the same way, even if built-in a special layer type.
- The current filter layer built-in mask is almost unusable :/.
- Selections should not be allowed to paint/erase pixel directly.
- Mask data and display of that data should be independant.
- The user should be able to switch easily between display mode 
(selection/transparency/...).


More information about the kimageshop mailing list