Hi,

currently I have an open pull request, see
https://github.com/darktable-org/darktable/pull/1809

This pull request has some aspect which may lead to confusion by some users in some situations. I would like to draw your attention to this issue and would be thankful for feedback.

The pull request adds some further means to adjust drawn and parametric masks. To explain what the possible problem is, I have to sketch how blending mask adjustment works currently. Currently we have only

* the global opacity parameter,

* the option to invert the mask (taking into account the global opacity parameter),

* and a Gaussian blur filter to smooth the mask.

The blend method currently takes the raw drawn or parametric mask and

* adjusts its opacity and inverts the mask and

* applies the Gaussian filter afterwards(!).

The nice feature of these two steps is that they commute. This is the reason why when a user chooses a non-zero radius of the Gaussian blur filter first and inverts the mask afterwards he/she gets the inverted version of the mask he/she has seen before.

Now the pull request adds

* a feathering filter which can be applied alternatively to the Gaussian filter and

* a mask tone-curve which is parameterized by two parameters, mask brightness and mask contrast.

The tone-curve has been introduced to be able to post-process the mask after application of the feathering filter but should be useful in general. On default (both parameters zero), the tone-curve is just a one-to-one mapping, i.e., it has no effect.

Note that the application of a tone curve to the mask and inverting the mask are two operations which do not commute. The order matters here. If a user adjusts the mask tone-curve parameters first and then inverts the mask, the resulting mask will not(!) be the inverse of what the user has seen before. This might lead to some confusion.

Confusion can be avoided by properly explaining how the new feature works. But possibly one should revise the whole mask processing such that mask inversion comes last such that toggling the 'invert mask' button actually inverts the blend mask with respect to what the user sees in the UI when 'display mask' is active. This means, the function _blend_make_mask would be called much later.

For me the current processing is fine because I understand how it works. However, inverting the mask at the very end just before the application of the mask appears more natural to me. Any thoughts?


Heiko


PS: While I was writing his mail, my pull request made it into main.

--
-- Number Crunch Blog @ https://www.numbercrunch.de
--  Cluster Computing @ https://www.clustercomputing.de
--  Social Networking @ https://www.researchgate.net/profile/Heiko_Bauke
___________________________________________________________________________
darktable developer mailing list
to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org

Reply via email to