2017年8月8日(火) 5:50 Alexandre Prokoudine <alexandre.prokoudine@xxxxxxxxx>: > On Mon, Aug 7, 2017 at 8:09 PM, sigetch wrote: > IMO, both layer filters and filter layers have their use. > > Also, to quote mitch from today's IRC discussion: > > "it's a medium joke to implement "adjustment layers" is the generally > used term... in fact a layer *is* a filter on the stack below, just > need to replace gegl:buffer-source by another op, in simple terms" > Okay, maybe we have several design choice of adjustment layer actually, including Krita, Photoshop, Clip Studio, and others. I'd like to point out some of the design point for filter layer from my experience as a user. Be careful that filter layer is somewhat different from the simple "history of the gegl operation to the stack." 1) Whether filter layer itself is a "layer with surface", or just the "filter operation" on top of the stack. In Krita, Photoshop and my branch, filter layer itself has a surface on the stack. That means surface projection is generated from the projection of the stack, and generated surface is composited into layer stack. This is useful because we can affect stack in two way (filter and composition). This feature is practical if we consider the post-processing by filter to the existing photo. We sometimes copied base image layer, applied some filter for copied layer, and composite copied layer onto base layer. I think we can naturally follow this step when using filter layer. 2) Clipping and masking can be applied to the layer or not Like Krita's filter-mask, and Photoshop's filter layer, applying filter to part of the image is very common requirements. Krita's filter layer is applied to whole projection, that is not attractive to me. In my branch, filter layer is derived from basic filter. So resize, and layer mask can be used with filter layer. In short, filter layer can be the placeholder of the masks and clipping bounds. 3) Operation to the stack? or operation to the one-layer's projection? Krita separates non-destructive editing in two ways. Filter layer and Filter mask. Filter layer affects whole layer stack, and filter mask goes only for one layer. Of course, both mode is useful in different use cases. Photoshop has an option to restrict filter only to underlying layer's projection. I think just inserting filter layer into stack, and then specifying which projection to apply, is the easiest way. 4) Filter update frequency Krita's filter reflects the updates of underlying filter immediately, and displays it in real time. I was annoyed with that. Updating process prevents other event processing, thus brush stroke cannot be smooth as expected. In my branch, all update propagation is suppressed when underlying filter is changed. This kept brush stroke smooth, but of course, we can see the lag of the updates of filter layer. We need to see further consideration on update policy. As a result of above consideration, I designed my specifications of filter layer. Any comments are welcome. > GEGL filters can have either automatically generated or custom UIs. > There even is some metadata to help build more sensible UIs, from > using custom widgets instead of regular spinboxes to "adaptive" > layouts. E.g.: https://streamable.com/ajbi4 (available in upcoming > 2.9.6). > Great work! Good news to me. Regards, -- seagetch _______________________________________________ gimp-developer-list mailing list List address: gimp-developer-list@xxxxxxxxx List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list List archives: https://mail.gnome.org/archives/gimp-developer-list