QUOTE(mrtropical @ Oct 2 2022, 05:53)

So I have a question, I hope I'm doing this correctly (this is my second post here)... does anyone have a solid recommendation to learn about monitors & about color spaces (gamuts and all that)?
It's about 2 A.M. where I am now, so I won't go into massive detail at the moment (edit: looks like I lied), but I have written software to wrangle other color management software before (stuff to automate Argyll CMS workflows).
So I might know enough to give some advice/info.
QUOTE(mrtropical @ Oct 2 2022, 05:53)

All the mainstream tech hubs and places I've been to just talk & revolve around nits of brightness, fps and resolution (which are important, yes) but I want to learn the true basics, as well as the nitty gritty stuff of monitors.
To divulge a little, I'm not trying to program nor build one, but I have a keen interest in learning about color representation on screens for art making. I'm not going to buy an eizo monitor, either - they may be great, but I am not going to nor have the means to buy it, nor build/ dedicate an entire space just for color correcting.
I can't afford an Eizo (I want an EV2730Q, the 1920x1920 one, though...) so I'm in a similar boat. My laptop's screen had this horrible orange cast to it that I absolutely wanted to solve at any cost, but I also used the colorimeter I got on my plasma TV and other displays afterwards. It can't make the gamut of a monitor wider than it is, but it can certainly help to fix color inaccuracies. It also helped to correct for the fading backlight of my PowerBook G4 and the change in effective screen gamma that causes.
To get color correction in your stuff, you need two things:
1) white balance correction (this is done via the video card's VCGT (Video Card Gamma Table), which is basically a one-dimensional correction to each of the red, green, and blue curves of the display. This works across the entire display.
2) A 3D lookup table (more on that below).
For true color accuracy, though, you also need to do a color lookup using a 3-D lookup table (3DLUT). Unfortunately, a lot of software doesn't support 3D LUT's; I've done a fair bit of footwork retrofitting support into my preferred comic viewer, but things meant for good quality image processing like GIMP/Krita support it just fine and in Windows Photoshop apparently works with it too (not on Windows 11, though; it's been broken there for some time).
(Technically a compositing window manager could implement 3D lookups as a shader... but I am too dumb to be able to program that and no one else seems interested in doing it).
So that's a major selling point for those ludicrously expensive screens; they have support for loading a 3D lookup table internally, which means
everything on your computer gets accurate colors.
But you can still get away without it, for the most part. Chrome will not support 3DLUT correction, but Firefox and its relatives do (and have for about seventeen years now). Most good quality image processing programs support it. MPV (video player) does, too.
The 3D lookup table is stored in an ICC profile, as is the VCGT adjustment data. The VCGT calculation part is called "calibrating" and the 3DLUT part is called "profiling." You can technically do just the profiling without calibrating and get good colors in image editors and the like, but you will get an overall better result (and better white balance/gamma response across your display) if you do calibration and then profile the already-calibrated screen.
I recommend displaycal for making your ICC profile, if your computer can run it. If not, I can suggest alternatives. DisplayCAL works way better than most software that colorimeter manufacturers ship with their devices. You will also need a colorimeter, of course. I'd suggest getting a "colormunki display" if you want something (relatively) cheap, although if you want to do ultra-bright displays (over 1000 nits) you should get the i1 display pro instead. I think they rebranded both of those recently but I don't remember what they changed the name to. But again, it is very late so I am not going to check right now. Maybe it was "colorchecker" or something?
QUOTE(mrtropical @ Oct 2 2022, 05:53)

Like I want to know what discrepancies to compensate for when viewing stuff on a decent monitor, coloring in the right gamuts, and so on and so on (special interest in perceptual phenomena and/or about techniques like dithering for gradients and such, lol).
Dithering is an interesting one; my best (non-plasma) monitor uses temporal dithering (which is basically PWM'ing (strobing) the subpixels at faster-than-display-rates to approximate an 8 or 10 bit panel's number of colors while using a cheaper 6-bit panel). It honestly works quite well; I think I've noticed (slight) flicker exactly twice in the seven years I have used it. And it was easily ignorable.
As for perceptual phenomena, I find that differentiating between purple and blue is where most of my displays deviate from sRGB (which is all that my non-CRT, non-plasmas can hope to come close to).
With most colors on a 2-dimensional representation of a color space, you can draw a straight line out from the center at any given angle and the hue will stay relatively stable, with the color mainly changing in intensity/saturation. But at some angles, drawing a straight line out from the center in the purple area can actually make you end up in the 'blue' range by the time you reach the edge of the graph. Color profiling (making a 3d lookup table) deals with this quite well, but it's still really interesting to me.
I should probably also mention different rendering intents, but remind me in a few hours after I've slept.
As for things to compensate for (you don't absolutely have to do all of these, but it's good practice when you can):
- never adjust the contrast control from its default setting on an LCD.
- ambient lighting can change the perceived "white point" of a display.
- if your screen has a lower gamut than the color space you are targetting, the rendering intents become important to tell the computer how to handle the difference. Not to get too far into it, but some methods result in clipping, while others "scale" and then adjust the lookup table targetting the wider color space so that it fits within your display's capabilities. Even within these two basic methodologies you can have multiple ways of doing things (I like "luminance-preserving perceptual" on narrow-gamut monitors).
If your display is relatively close to the standard, you may be better off just calibrating (fixing the white temperature) and leaving the 3D lookup stuff alone, since the lookup table will result in potential banding and other issues, especially on 24-bit displays (8 bits for each of R, G, and B; AKA almost all consumer displays... even the 6-bit panels usually take a 24-bit imput signal).
If your display is about sRGB gamut (or maybe lower), you'll probably want to target the sRGB color space when calibrating and profiling. The gamma curve can be left alone, or sRGB gamma can be used. I recommend leaving it alone, again to prevent banding issues, unless you have very specific needs.
QUOTE(mrtropical @ Oct 2 2022, 05:53)

Any recommendations toward in-depth articles, other communities, or other sources for this stuff would be greatly appreciated. Many thanks!
I am happy to talk about this as much as you want, ask away. This is one of the things I am actually very confident on my understanding of (although I probably would not be able to actually write something like Argyll CMS on my own... the math is hard).
Other things I didn't talk about enough here:
- Rendering intents
- Intermediate color spaces (ICSes) - CIE L*A*B and CIE 1931 (X*Y*Z) linear color spaces used as a mid-way point between any given source and destination color space
- Probably a lot of other stuff that I'm forgetting because it's super late here.
Ask about whatever you want. And you're doing it right so far, btw.
P.S.: this picture displays purple/blue very differently on most different displays I throw it up on. It's a good test picture IMO. It also uses some high intensity colors in difficult to reach regions of the color spectrum, so the pinkish highlights are a good test for low-gamut-width screens as well.
(IMG:[
i.postimg.cc]
https://i.postimg.cc/fWBNBfsC/pfp-static.png)
(also, I drew it.) (Did you mean something like this when you said 'dithering for gradients?' or more like the temporal dithering I mentioned above?)
On some of my screens without correction the darker shade of her hair looks blueish; it should be purple. Also on some of my screens, only when using certain rendering intents, the lines in the background can look purplish (they should be solid blue).
I have a photo I took on my DSLR that illustrates how different it can render between different displays, but I am too tired to find it right now.
I also wrote a python program you can use to burn an ICC profile's 3D LUT into an image file so you can set it as a desktop wallpaper or whatever and have it look correct. LMK if you want it.
If you don't want to spend on a colorimeter, you can get at least the white balance/color temperature close to correct eyeballing SMPTE color bars if you know what you're looking for. I'd help with that if you can't afford to "do it rightâ„¢." And remember, generally speaking, the better your display is, the less wildly it will deviate from the standard color spaces, and the easier it will be to get away with no 3D lookups. Assuming your target color space is of a similar gamut width to that of your screen.
This post has been edited by dragontamer8740: Oct 2 2022, 15:05