ivand: Is it possible to show four different things for your implementation (for at least one color blindness type):
1) Normal display: X
2) Color blindness simulation: B(X)
3) Color blindness correction: C(X)
4) Color blindness simulation on the color blindness correction: B(C(X))
Our goal would be to make different elements in X as distinguishable as possible in B(C(X)) as well, by improving C(x), with B(X) as our (fixed) simulated model for color blindness. "As distinguishable as possible" isn't trivially defined I think, and there may also be other concerns such as colors which are vibrating/painful to look at.
From what I understand your implementation is based on
https://tylerdavidhoward.com/thesis/, but there's no actual working link to his thesis so I've no idea how he got those magic numbers. I've also googled one other attempt at using that, and it doesn't show the results are good:
http://blog.noblemaster.com/2013/10/26/opengl-shader-to-correct-and-simulate-color-blindness-experimental/PS: Thank you for your effort so far. I'm looking at this from a research perspective and I understand if you don't want to pursue it further.