RSS/Atom feed Twitter
Site is read-only, email is disabled

feature request: clipping mask layer

This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.

This is a read-only list on gimpusers.com so this discussion thread is read-only, too.

7 of 8 messages available
Toggle history

Please log in to manage your subscriptions.

feature request: clipping mask layer Daniel Johannsen 17 May 22:39
  feature request: clipping mask layer yahvuu 19 May 14:10
   feature request: clipping mask layer Stephen Griffiths 19 May 14:24
   4A130BBC.6060101@danieljoha... Daniel Johannsen 19 May 21:42
   feature request: clipping mask layer Daniel Johannsen 19 May 21:45
    feature request: clipping mask layer yahvuu 20 May 17:46
     feature request: clipping mask layer Daniel Johannsen 20 May 22:07
      feature request: clipping mask layer Øyvind Kolås 21 May 11:45
Daniel Johannsen
2009-05-17 22:39:08 UTC (over 15 years ago)

feature request: clipping mask layer

Problem: Painting (e.g. with wacom-board) complex athmospheric perspective with overlapping objects.

Solution suggestion: A parent base layer determines alpha values for a dependent stack of child layers above the base layer. Then the last layer on top of the child stack e.g. could be the "athmosphere color" for the silhouette of the base layer.

People suggest as workaround the "alpha to selection" feature. But if the silhouette of the base layer has transparency gradients, e.g. when painting clouds, every addition of color to child layers will nevertheless end up opaque in the child layer.

Especially when painting on alpha masks of the child layers to evolve the forms gradually a "clipping mask layer" is in fact the only possibilty of producing complex scenes with athmospheric depth.

yahvuu
2009-05-19 14:10:01 UTC (over 15 years ago)

feature request: clipping mask layer

Hi all,

On Sun, May 17, 2009 at 10:39 PM, Daniel Johannsen wrote:

Solution suggestion: A parent base layer determines alpha values for a dependent stack of child layers above the base layer. Then the last layer on top of the child stack e.g. could be the "athmosphere color" for the silhouette of the base layer.

i wonder, is what you're proposing the same as the 'group layers masks' described in
https://lists.xcf.berkeley.edu/lists/gimp-developer/2009-April/022118.html ?

Is this already covered by http://bugzilla.gnome.org/show_bug.cgi?id=51112 ?

Do you envision a user interface for this? The UI Brainstorm always welcomes cool mock-ups: http://gimp-brainstorm.blogspot.com/

greetings, peter

Stephen Griffiths
2009-05-19 14:24:21 UTC (over 15 years ago)

feature request: clipping mask layer

yahvuu wrote:
> i wonder, is what you're proposing the same as the 'group layers > masks' described in
>
https://lists.xcf.berkeley.edu/lists/gimp-developer/2009-April/022118.html ? >
> Is this already covered by
http://bugzilla.gnome.org/show_bug.cgi?id=51112 ?

In photoshop it is a single layer that docks to the layer (or multiple layers) beneath it, acting as a mask. In PS it is activated by Ctrl+LMB (from memory) on the edge between two layers.

Layer group masks would achieve the same thing, and sounds easier to understand/ use.

regards,
Stephen.

Daniel Johannsen
2009-05-19 21:45:43 UTC (over 15 years ago)

feature request: clipping mask layer

yahvuu schrieb:

Hi all,

On Sun, May 17, 2009 at 10:39 PM, Daniel Johannsen wrote:

Solution suggestion: A parent base layer determines alpha values for a dependent stack of child layers above the base layer. Then the last layer on top of the child stack e.g. could be the "athmosphere color" for the silhouette of the base layer.

i wonder, is what you're proposing the same as the 'group layers masks' described in
https://lists.xcf.berkeley.edu/lists/gimp-developer/2009-April/022118.html ?

Is this already covered by http://bugzilla.gnome.org/show_bug.cgi?id=51112 ?

Do you envision a user interface for this? The UI Brainstorm always welcomes cool mock-ups: http://gimp-brainstorm.blogspot.com/

greetings, peter

Hi to all,
yes your links point in the right direction. I agree, the term "layer group mask" hits the mark.
I only like to add, that in the layer group it is the alpha value of the lowest layer in the group
which provides the masking effect for the grouped layers above. (And not a layer in the middle or on top of the group.)

I am not surprised, that this feature is used a lot in photoshop (here it is called "clipping mask").

Some examples in order to stress how important this is for the painting process:

1)One can start with searching for a good composition by defining only silhouettes.
Then, in dependency of the silhouette, you can add volume and texture layers above the silhouette.

2)Often the shapes are not known in advance. Then they are dependend of normally subsequent painting steps
like adding volume and texture layers. With layer group masks one can quickly correct all the layers of the object only by manipulating the base shape layer.

3)Painting objects made of transparent materials like colored glass. The layer group mask feature would look like the following: * top layer: highlights (dependent)
* middle layer: glass texture (dependent) * underlying layer: glass shape in the color of the glass with 50% opacity (defines the transparency for the dependent layers)

regards, Daniel.

yahvuu
2009-05-20 17:46:59 UTC (over 15 years ago)

feature request: clipping mask layer

Hi,

Daniel Johannsen schrieb:

I only like to add, that in the layer group it is the alpha value of the lowest layer in the group
which provides the masking effect for the grouped layers above. (And not a layer in the middle or on top of the group.)

hmm, special-casing the bottom layer seems a bit odd to me. I'd expect the layer group mask to be a property of the layer group and that all layers within that group have independent transparency of their own.

Looking at your examples, i assume the photoshop behaviour is convenient because you usually start with a layer and subsequently turn that into a layer group. Assuming correctly?

greetings, peter

Daniel Johannsen
2009-05-20 22:07:55 UTC (over 15 years ago)

feature request: clipping mask layer

yahvuu schrieb:

Hi,

Daniel Johannsen schrieb:

I only like to add, that in the layer group it is the alpha value of the lowest layer in the group
which provides the masking effect for the grouped layers above. (And not a layer in the middle or on top of the group.)

hmm, special-casing the bottom layer seems a bit odd to me. I'd expect the layer group mask to be a property of the layer group and that all layers within that group have independent transparency of their own.

Looking at your examples, i assume the photoshop behaviour is convenient because you usually start with a layer and subsequently turn that into a layer group. Assuming correctly?

greetings, peter

Hi,
yes, your assumption is right. I start the painting process with layers only for shapes and silhouettes.
Then i add a "layer group" with the mask property (or in photoshop-terms a group of "clipping mask"-layers)
to each of the shape-layers. The layers inside the layer group mask define volume, texture, athmospheric perspective, etc. of the shape they are connected to.

So to say, the layer group mask has the property of a transparency value. This value is defined
by the alpha-value of the layer the group is assigned to.

Here is a link that shows the photoshop approach quite well: http://photoshopcontest.com/tutorials/23/clipping-mask-101.html

You are absolutely right, every layer in the layer group should maintain their independent transparency,
but in addition inherit the transparency of their layer group mask.

greetings, daniel

Øyvind Kolås
2009-05-21 11:45:43 UTC (over 15 years ago)

feature request: clipping mask layer

On Wed, May 20, 2009 at 9:07 PM, Daniel Johannsen wrote:

Hi,
yes, your assumption is right. I start the painting process with layers only for shapes and silhouettes.
Then i add a "layer group" with the mask property (or in photoshop-terms a group of "clipping mask"-layers)
 to each of the shape-layers. The layers inside the layer group mask define volume, texture, athmospheric perspective, etc. of the shape they are connected to.

So to say, the layer group mask has the property of a transparency value. This value is defined
by the alpha-value of the layer the group is assigned to.

Here is a link that shows the photoshop approach quite well: http://photoshopcontest.com/tutorials/23/clipping-mask-101.html

You are absolutely right, every layer in the layer group should maintain their independent transparency,
but in addition inherit the transparency of their layer group mask.

GEGLs XML format implements such per composition subtree masks. It even allows building these masks using other filters, allowing for instance to create a mask for a layer group using a blurred text layer. I've found the underlying technical approach used to represent the GEGL compositing graph as a tree in those systems to provide all the power that should be needed. Finding sufficiently rich mappings to a user interface most probably using some higher level abstract compositing operations remains a challenge for GIMP in exposing such functionality.

An example composition following the underlying model of OpenRaster using low-level operations:

crop over
translate
apply_opacity
gaussian blur
render text
hue-saturation
subtract
some more noise
multiply
some more noise
some noise pattern
checkerboard

Some of the low-level ops like the combination of translation and a compositing operation like over (and perhaps even the application of opacity) can be folded into a single UI level concept to avoid having too many individual items in the compositing tree. What the aboive example renders is three noise layers that are combined with different layer modes, a blurred piece of text is used as the overall group opacity for the noise and the noise itself is composited over a checkerboard background. Finally the whole image is cropped (this crop op would probably in fact be the canvas dimensions).

See http://create.freedesktop.org/wiki/OpenRaster , http://pippin.gimp.org/oxide/ and http://gegl.org/ for more information.