Como descrito nas sessões anteriores, a saída final da máscara de um módulo (o efeito combinado de máscaras desenhadas e paramétricas) é uma matriz de pixels em tons de cinza representando quanto o efeito do módulo deve ser aplicado em cada pixel. Esta imagem rasterizada é guardada internamente por módulos ativos e pode ser reusada posteriormente por outros módulos no pixelpipe.

Assim como com qualquer máscara, se a opacidade do valor de um pixel na máscara rasterizada é zero, a entrada é passada pelo módulo sem modificações. Se a opacidade é 1, o módulo tem efeito completo. Para cada valor entre 0 e 1 o efeito do módulo é aplicado proporcionalmente naquele local.

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.

Isto tem duas implicações:

  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.