5 ms·
Does that just mean that the color space is untagged / undefined? (That is in practice how I see a lot of games rendered - way oversaturated on my wide gamut sc
by bscphil 4y ago
Does that just mean that the color space is untagged / undefined? (That is in practice how I see a lot of games rendered - way oversaturated on my wide gamut screen.)
- csande17 4y agoFor normal maps, the correct color space is definitely "no color space", because the R/G/B channels are used to store a 3D vector and not an actual color. For video game graphics, the ideal color space is "looks good on the median user's television once we apply our gamma curve", which is not actually a real color space. It's more like a statistical distribution of color spaces.
- bscphil 4y agoNormal maps, certainly. I was more confused by the parent's claim that this applied to "pretty much all modern 3D rendering". With video game graphics I'm surprised that PC games aren't handled differently. To the extent that TVs aren't garbage (huge assumption) traditional SDR TVs mostly target sRGB. But PC monitors can be almost anything, there are a ton of wide gamut (e.g. P3) screens out there, and saturated games can be retina-searing on them.
- csande17 4y agoIt'd probably be reasonable to say the output of a game's 3D renderer is sRGB or something, and to call the eye-searing colors on your P3 monitor a bug. But I think kaetemi's comment was talking about the intermediate calculations, which don't usually use sRGB. The "linear" color space used for those doesn't need to have a rigorous definition; even if there's no mathematically correct way to map a video-game-linear color to an sRGB color, the game company just hand-tweaks it until the game looks good.
- andreareina 4y agoIt sounds like gp's issue is only with games, i.e. everything else is rendering correctly. Which sounds to me like the video driver isn't applying the correct output profile (but the OS does so regular applications work). Can you actually specify a color profile in the driver itself? I haven't had a color managed workflow in forever but I remember only ever being able to tell the OS.
- bscphil 4y agoYeah, I believe the issue here is that games are not usually color managed because that would require tagging the rendered image with a space and then converting it, which would probably delay the render by at least a frame.
- kaetemi 4y agoThe output is either linear RGB in modern pipelines or unspecified probably-sRGB for older pipelines (which usually have wrong lighting math). It's the driver that does the linear RGB to display space conversion when the engine swaps the render buffer. In the case of non-specified probably-sRGB color space I have no idea if it converts from sRGB to your display space, or if it just does nothing because it not specified.
- kaetemi 4y agoIn practice, linear texture means "don't mess with the data when sampling", and sRGB texture means "please convert to linear when sampling" (this is a hardware feature). On modern engines, rendering is done in linear. A lot of older engines render in unmanaged maybe-sRGB and look like potato, in which case tagging the textures does nothing. In general either the final render output is linear or "I don't care" probably sRGB, in the first case it's up to your display driver to do the final conversion to your display color space, in which case colors should look correct, but the game engine may have already limited colors (by some post processing magic) within sRGB boundaries if it's not aware of your display range. Or it may have messed up if it can't make sense if the display range. In the other case, I'm not sure if there's a solid definition, the driver will probably assume the color space is already good.