{
    "QEN": {
        "description": "Masks the source item with another item.",
        "fragmentCode": [
            "@main",
            "{",
            "    float opacityMaskAmount = texture(opacityMaskSource, texCoord)[opacityMaskChannel];",
            "    opacityMaskAmount = opacityMaskInvert ? 1.0 - opacityMaskAmount : opacityMaskAmount;",
            "    fragColor = fragColor * opacityMaskAmount;",
            "}"
        ],
        "name": "Opacity Mask",
        "properties": [
            {
                "defaultValue": "../images/mask2.png",
                "description": "Sets the image that is used as the mask.\nThe mask image pixel color values of the channel specified by the Channel property are used to determine the affected item's pixels' opacity.\nYou can set a mask item to override the mask image in the effect node's properties once the effect is added to a scene.\nThe mask is scaled to the size of the affected item. To have an unscaled mask item, create an 'Item' node that is the same size as the affected item as a parent of the actual mask item and set that parent item as the source item for the effect.",
                "name": "opacityMaskSource",
                "displayName": "Source",
                "type": "image"
            },
            {
                "defaultValue": "3",
                "description": "Sets which color channel to use from the mask source.",
                "name": "opacityMaskChannel",
                "displayName": "Channel",
                "type": "int",
                "controlType": "channel"
                },
            {
                "defaultValue": "false",
                "description": "Set to true to invert the behavior of the mask source.",
                "name": "opacityMaskInvert",
                "displayName": "Invert",
                "type": "bool"
            }
        ],
        "version": 1
    }
}
