// 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) ); }