Still going through the article but loving all the detail and interactive components! Nice writeup.
PS: worth mentioning the RGB to CMYK function credited to me is not my original work, I believe I got it off stack overflow or similar many years ago. A more robust way of doing this transformation would be with a color management system and profile, as it happens I’ve done a bit of work on that! [1] Used this here [2].
Transforming with ICC profile will give you a result that might be closer to how a screen printer would turn your digital image into a four colour print, but more advanced screen printing workflows these days tend to use “rip” software that handles many layers (eg: 12 colors instead of 4) and stochastic screening [3] which produces quite different results than what most halftone shaders are doing.
I drove a Scitex RIP (raster image processor) as my part time job in college. The CMYK (and if you were rich, N more spot colors) rotation degrees were held in religious fervor. Me: "These degrees seem random." Boss: "You are not to ever digress from those, they are the Only True Values" (and if you play with them in TFA you'll see it indeed becomes a moire mess with tiny tweaks, which would cost a ton in reprinting and delays).
It was mildly humorous that stochastic dithering (even with dot-gain compensation) was an option back in 1990, and produced much higher grade color reproductions, but clients wouldn't have any part of it, because it wasn't "the look" that I think they expect their readers expected.
PS: worth mentioning the RGB to CMYK function credited to me is not my original work, I believe I got it off stack overflow or similar many years ago. A more robust way of doing this transformation would be with a color management system and profile, as it happens I’ve done a bit of work on that! [1] Used this here [2].
Transforming with ICC profile will give you a result that might be closer to how a screen printer would turn your digital image into a four colour print, but more advanced screen printing workflows these days tend to use “rip” software that handles many layers (eg: 12 colors instead of 4) and stochastic screening [3] which produces quite different results than what most halftone shaders are doing.
[1] https://github.com/mattdesl/lcms-wasm
[2] https://sierra.mattdesl.com/
[3] https://en.wikipedia.org/wiki/Stochastic_screening