2

During the rendering process, the texture file have a gamma of 2.2. But the plain color do not need this gamma correction, especially if the RGB values are from a spectral caracterisation.

So, Why have I to use a gamma of 2.2 into my texture files ? Why in the CG world we used 2.2 gamma images ? Why don't we use a gamma of 1 for images with real colors ?

Tofuw
  • 908
  • 5
  • 16
  • 35

1 Answers1

2

Most hardware and drivers assume that you're working with a gamma of 2.2 (or sRGB, which is very similar). So if you try to display a raw file with linear RGB info (i.e., a gamma of 1.0) the display image will be too bright.

3D graphics hardware is designed for game developers more than graphics researchers, so they expect that the inputs (for things like texture buffers) are assets encoded with a 2.2 gamma., which gives more uniform steps in perceptual intensity using the same number of bits than a linear encoding would.

If you control the entire rendering pipeline, then you can certainly work with linear RGB (or other linear spectral sampling) and apply a gamma just at the end, when you send the result to a display or a file.

Adrian McCarthy
  • 45,555
  • 16
  • 123
  • 175
  • Thanks for your answer. If I render a polygon (with a gradient map of 256 steps of grey), I might (eventually) validate if my render engine could convert the 2.2 gamma of my texture in the correct value, to obtain balanced images with my spectral data RGB gamma 1.0. So I effectively obtain a linear image. But if I use a material with a RGB 1.1.1 and gamma 1, in the albedo, what will be the result ? A physical white or just an RGB value ? – Tofuw Feb 03 '15 at 17:40
  • 1
    @tofuw if you want physically correct colors then you need to render in more then just 3 wavelengths (R,G,B) and add things like scattering, and light polarization if you render with basic engines then you always obtain just R,G,B. then after render you can store the result colors as set of wavelengths, or handle it as curve, ... and visualize it by recomputing R,G,B of it back .... did something similar a while back and it is doable (reconstructed white noise will became white on RGB too) – Spektre Mar 02 '15 at 08:35