People won't always have the same model monitors in their setups and the colors won't look the same. Even monitors of the same model can and often do look different. Operating systems do have support for monitor color profiles but it is not always respected. (full-screen with nvidia card on windows7+ from personal experience) Color correction can be done via DLL injection for DirectX games with Color Clutch. (for single monitor setups only afaik) Some games have cheat protection that prevents DLL injection. Planetary Annihilation will be OpenGL for multi platform support so the much more common DirectX DLL injectors won't work. So my questions are: Can this issue be solved? Do people with multi-monitor (or even single monitor setups for that matter) even care about color calibration? Are the artists even working on color calibrated monitors? Is this a common enough issue that it's worth spending time on to find a solution and build an implementation, e.g. ui option or simple .ini edit?
If your monitor setup shows different colours, you should calibrate your monitor hardware. You can use hardware calibration devices like "Spyder". Or you can use software calibration by nVidia / AMD software. The colour profiles may help to use the right colours (for example Adobe RGB). So why should a game be able to change colours if its a calibration problem with your monitors / graphiccards?
Calibration in hardware would be a good solution. However, software calibration exists for a reason, not all monitors have calibration options or the options provided are not adequate for a dE < 1 calibration and it isn't reasonable to expect everyone that wants correct colors to buy a new monitor if such options are not available to them. With nVidia's latest release drivers, changing the settings in the Adjust Desktop Color Settings dialog have no effect on the colors in a full-screen mode game. It may be a different story with graphics software from other vendors but I don't have the hardware to test. A note of interest is that the fact that the Color Clutch software even exists at all.
This sounds like its outside the scope of what Uber should be worrying about. Its really up the video card and monitor manufactures to not make junk and its up to the end user to calibrate their screen and not buy something that can't be calibrated. It sounds like the fault here is with Nvidia and not the game devs. Honestly I don't think most PC users who are not graphic artists or photographers even know what monitor calibration is. People who build multi monitor systems are probably not using cheap junky monitors anyway. Anyone that knows what monitor calibration is and actually cares about it really has no excuse if they can't calibrate their monitor in hardware or in the video driver.
Calibration in hardware is not lossless with consumer hardware. That stuff often enough already uses 7bit and dithering, and everything except for the original settings simply reduces the color depth even further. Besides, calibration OUTSIDE the application will always mean that the accessible color space is the smallest intersection of all monitors, which is fairly small. Doesn't matter whether calibration is done in "hardware" (inside the monitor) or by the graphics driver, effect is the same. If you have different monitors and HDR rendering you actually want to achieve a different effect, gamma, brightness and color intensity should be matched, but the dynamic of each monitor should still be used to full extent. This is only possible if the color profiles are applied during HDR filtering, separate for each monitor. It's actually a shame that many games stopped providing calibration options, claiming the the graphics driver could do the job, although the graphics driver can operate neither lossless nor without simply capping the dynamics of the picture when transforming color space, brightness and gamma.
I'm trying to blow up planets, not process RAW files from a Nikon D4 for a client. If the explosions look a tiny bit different on one screen than they do on another screen I'm going to be cackling with glee not worrying about the white balance.
I couldn't care less if PA looks different on one of my monitors than the other, and I'm even paid to care about stuff like this. It isn't PA's job to fix this imo.
The general consensus (at least of the vocal minority on these forums) seems to be that color calibration doesn't matter for games. This has wonderfully answered my second question in the op. It would be interesting to discuss why people feel this way as there are most likely some deeper issues at play. I do think the issue can be solved and ideally it would be better if it were done at the os or driver level so people wouldn't have to keep looking for workarounds. Until then the next step down the ladder is the software developers and they are the people with the vision of what the game should look like and that's why it matters (at least to me). A good example is console emulators that are now getting support for NTSC color and even CRT scan-line scaling filters. The developers for those games made them on the older hardware that has a certain look and people feel that it is important to preserve that.
most artificial graphics don't have the need to be fully color correct, it normally doesn't matter or you even notice how much different it is from the intended color. Sure when having multiple monitors it might be a bit irritating, but that difference should be there independent from PA and I would change it manually or on the os level. years ago I had a monitor with really to much red in the color spectrum (got worse with time), but I only noticed how much red it was when I saw the side by side comparison on a LAN party running the same game. The point, for many applications it doesn't really matter if the profiles don't match the intended color range and with the graphics style PA is going for it would probably matter even less (as long you can distinguish the player colors, otherwise it would get confusing )
Actually, it isn't. Support for ICC profiles needs to be build in into applications. You can get the correct profiles to use via "Windows Color System" on Windows and "ColorSync" on Mac, there is no unified API on Linux systems. Color profiles can only be applied in the application, anything which comes later can only apply lossy conversions which WILL degrade image quality, reduce the usable color space and should be last choice only. Not saying that PA needs to have ICC profile support, but advanced graphic settings are something the game should have, adjusting gamma and alike in the graphics driver or on the monitor is a terrible thing to do. And the settings should be available for each individual monitor.
That's a great point. I know I've read before that applications have to support the color profiles but it didn't click until now that there would be a loss of quality otherwise so thank you for clearing up the ignorance on my part. I redact saying that an optimal solution is at the os/driver level (at least with how today's software currently does things). After thinking about things I realized that with recent game renderers color correction is already happening when the internal HDR image format is tonemapped to the sRGB color space. So it may not be too difficult to extend that to be able to tonemap to an ICC profile instead. That would need to be the last color adjustment in the rendering pipeline I think or the quality will be degraded. Doing post processing effects on an image in an HDR format may not be realistic unfortunately but I don't know enough about everything that's involved with that. An interesting idea would be to use the tonemapping to support monitors with higher than 24bpp that may become the standard in the future. If I recall, Total Annihilation was praised for some of the work put into the game for future-proofing. I'm thinking of making a ranked list of all the color correction setups that explains the different artifacts that they have just to clear up any confusion anyone might have on the subject. I'm not sure if anyone would be interested in something like that tho.
I do, so thank you for taking the time to make this post. I've spent a long time modifying xorg.conf[1], I'm not missing that aspect of multiple monitors. I don't know enough about Windows desktop rendering/management to give good solutions. But requiring full screen openGL processes[2] for each monitor could solve the problem. It would also create new problems, like migrating a picture-in-picture to another process [monitor], and monitor interface logic. In the picture Windows 7 [64 bit] is running, and no it [picture] is not color calibrated.. [1] http://en.wikipedia.org/wiki/Xorg.conf [2] http://en.wikipedia.org/wiki/Process_(computing)