R54 – Mask clips are special

Turns out floating point masks are hard. Or at least not completely intuitive so you have to make up clear rules for them. The problem solved in this version is that some filters output masks either in the 0 to 1 or -0.5 to 0.5 range for UV planes. And in turn filters that consume masks made expected one or the other. Mismatched assumptions would obviously yield garbage output or a lot of pointless offsetting using Expr.

To solve this the concept of “mask clips” have been introduced. No matter the color space they are always supposed to have a 0-1 range in floating point formats and all filters that output and consume this style of masks have been documented. MaskedMerge is probably the best example of this. Since the Invert and Binarize filters conceptually work in images and not masks (despite often being used for this) new versions called InvertMask and BinarizeMask have been introduced that will have the expected behavior in all cases.