4 ms·
First time I've heard about it in any writings. Put onto my list how to implement it. Any good articles on the RGB vs sRGB colorspace issue in OpenGL ?
by inDigiNeous 11y ago
First time I've heard about it in any writings. Put onto my list how to implement it. Any good articles on the RGB vs sRGB colorspace issue in OpenGL ?
- fsloth 11y agoBriefly and massively simplifying: Unless otherwise specified, sRGB is the default storage and display colorspace for most digital applications dealing with RGB image data (excluding video) https://en.wikipedia.org/wiki/SRGB https://en.wikipedia.org/wiki/SRGB However, one cannot do computations on an image in sRGB colorspace since the colorspace is not linear - the values will turn out wrong. I.e. imaging algorithms expect source data to be in linear colorspace, and if fed sRGB data the result will turn out more or less wrong. Thus, when doing any weighting calculations etc. on a set of samples the samples must be in linear (e.g. RGB) colorspace. Your OpenGL implementation may or may not handle this automatically for you if you specify the image to be in one of the sRGB texture formats. https://www.opengl.org/registry/specs/EXT/texture_sRGB.txt https://www.opengl.org/registry/specs/EXT/texture_sRGB.txt So, in the general sense, if doing any handcoded imaging routines, and reading e.g. PNG image, one needs to convert it to linear colorspace before processing, and back to sRGB before writing to disk/displaying.
- flohofwoe 11y agoLinear vs gamma space is not an OpenGL specific problem. Also the decode/encode doesn't require 3D API support, it can also be done in the pixel-shader (decode from gamma to linear when sampling color textures, and encode back into gamma during a post-effect pass that most engines have anyway). 'The importance of being linear' is the best introduction to the topic I know: http://http.developer.nvidia.com/GPUGems3/gpugems3_ch24.html http://http.developer.nvidia.com/GPUGems3/gpugems3_ch24.html