// Source: https://www.shadertoy.com/view/MltBW4

vec4 RGBtoCMYK(vec3 rgb) {
    float K = 1.0 - max(max(rgb.r, rgb.g), rgb.b);
    return vec4(
        (1.0 - rgb.r - K) / (1.0 - K),
        (1.0 - rgb.g - K) / (1.0 - K),
        (1.0 - rgb.b - K) / (1.0 - K),
        K
    );
}

vec3 CMYKtoRGB(vec4 cmyk) {
    return vec3(
        (1.0 - cmyk.x) * (1.0 - cmyk.w),
		(1.0 - cmyk.y) * (1.0 - cmyk.w),
		(1.0 - cmyk.z) * (1.0 - cmyk.w)
    );
}