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