An “Intersect” mode would be useful, allowing you to check whether or not two masks intersect. My idea for the implementation is as follows:
- Input A is an arbitrary shape/collection of pixels (CoP).
- Input B is an arbitrary shape/CoP.
- For this example, let’s take a circle as a shape for both input A and B (see image 1, A is green, B is red).
- The combiner will check whether or not the pixels of input A overlap with any of the pixels of a shape/CoP of B. If a shape/CoP overlaps, that whole shape/CoP is passed through to the output.
- The shapes of A are not passed through to the output (these could always be added later on via a simple
Combiner[Add]
). - The
Strength
parameter will determine how “tight” the shapes/CoP are defined. At 1, only pixels directly next to each other (that is, to the left, right, above or below and not diagonally above/below) are counted as a shape/CoP. At some lower value, this also counts for pixels that are diagonally above and below each other and at 0, some bleeding may occur, let’s say a bleed of 4-8 pixels at maximum. See image 2 for an illustration of this mechanic.
Image 1: A is green, B is red. The white circle represents the output of the combiner, the dotted lines where non outputted shapes are in respect to what is being outputted.
Image 2: When do pixels count as a shape/CoP. The red pixel has an intersection and therefore the shape this pixel is part of will be outputted (right side). From top to bottom: Strength at 1, only direct neighbouring pixels count as a shape and will be outputted. Strength < 1, neighbouring pixels that are diagonally above or below are now also included. Strength 0, some bleeding may occur and shapes that do not have direct contact with the intersecting shape can be outputted as well. Note: The cut-off points for these inclusions are arbitrary and for illustrative purposes only.
This feature may be too alien for the Combiner
device and a specialised Intersection device may be needed. I hope this feature can be added to World Machine, as it would make for some really interesting masking capabilities.