Jak opisano wcześniej, końcowym efektem maski modułu (połączonego działania masek parametrycznych i wektorowych) jest rastrowy obraz w skali szarości, reprezentujący zakres, w jakim efekt działania modułu ma zostać zastosowany do poszczególnych pikseli. Obraz ten jest przechowywany wewnętrznie na potrzeby aktywnych modułów i może być później wykorzystany przez inne moduły w kolejce przetwarzania.

Jak przy każdej masce, jeśli wartość krycia dla piksela maski rastrowej wynosi zero, wejście modułu po przejściu przez niego pozostaje niezmienione. Jeśli wartość krycia wynosi 1.0, moduł działa z pełną mocą. Dla każdej wartości pośredniej pomiędzy 0 a 1, efekt modułu stosowany jest w tym miejscu proporcjonalnie.

Enable the raster mask from its tab and choose a source from the combobox. Raster masks can be identified by the name of the module against which they were originally generated.

Combining with drawn and parametric masks

In Ansel, a raster mask is no longer a mutually-exclusive mode: it can be combined with a drawn and/or parametric mask on top. When you do, the raster mask serves as the base, and the drawn and parametric masks refine it — their opacities are multiplied together pixel-by-pixel. Because masks combine multiplicatively, adding a drawn or parametric mask on top of a raster mask can only restrict its area further, never extend it.

This lets you reuse a mask computed elsewhere in the pipeline (for instance a luminance or edge mask produced by another module) and then trim it to a region with a drawn shape, or restrict it by color with a parametric mask, without having to rebuild it from scratch. In Darktable, selecting a raster mask disabled the other mask types entirely.


Note: Raster masks are generated as part of a module’s internal processing. Once a module’s processing is complete its mask then becomes available to subsequent modules in the pixelpipe.

Rodzi to dwie konsekwencje:

  1. Raster masks cannot be generated by disabled modules since they do not participate in pixelpipe processing. As soon as you disable a module, its mask is no longer available for use.

  2. Raster masks are passed up the pixelpipe after module processing – they can only be used by modules that come later in the pipe than the generating module.