I had an interesting discussion with
Andrew Glassner (since this is often a ray tracing blog I'll tell the youngsters that Andrew is known for many things but he's also the inventor of the
first sub-linear ray intersection algorithm!) about the prismatic color model I have been touting. Andrew points out that while it retains the good properties of HSV it also retains its worst property: terrible color uniformity. The color scientists have long rightly held that it would be nice if a color space had intuitively similar changes in color for similar changes in distance in the space. The so-called MacAdam ellipses on the CIE diagram (where each ellipse holds a collection of colors that are nearby) can be used to warp the CIE space to a more uniform one.
|
Each MacAdam Ellipse has a set of colors you can barely tell are different. A "uniform" color space would have disks of the same size for these. Source wiikipedia. |
Andrew rightly points out that for a color space to be kick-ass (my term) it should be at least somewhat uniform. So a challenge to all of you out there: create a uniform space that is RGB-centric. Or if you know of one, tell me!
"Lab" color space https://en.wikipedia.org/wiki/Lab_color_space is one you should look into for its uniformity.
ReplyDeleteI'm guessing there's newer work, but also see https://scholar.google.com/scholar?cluster=10249168640414100005&hl=en&as_sdt=0,33 as a start. You can at least look at the first two pages on Springer's site.
Lab is my favorite color space for most things and it is what I originally used in my apps, with NTSC old school being another favorite. I ended up switching because terrible out of gamut problems are more terrible when the boundary is complicated. So in the tradoff between nice boundary and nice internal properties, I like nice boundary. That being said, I think a nice boundary and better internal properties are probably possible...
ReplyDelete