I'm interested in the theory of gamma correction in games. Mainly the process and how it ends up looking just right.
Firstly, the guides mention that diffuse textures should be stored gamma-corrected and get converted when needed. When this occurs, how are the textures converted? Does it preserve all the details that the original texture had in floating point or something? When it then is time to gamma-correct again, what exactly happens? All I've read is that one simply applies it to the frame buffer, but since linear images lack detail in dark areas, will this not produce banding of some sort?
Also, do basically all modern engines use gamma-correction? What are some examples of high-profile games that don't?