Originally posted by Korval:
[b] How did the image texture or colors get into gamma space? If I pick a color out of a color selector (with the correct gamma value set for the monitor), the RGB values for that color should be linear. Isn’t that the whole point of the gamma-correction?
[This message has been edited by Korval (edited 09-20-2003).][/b]
The whole point is that calculations are supposed to be done in a linear space otherwise every step of the calculation accumulate errors. You still want colours and textures to look the same.
In 90% of all software, when you create an image to use as a texture you do it in gamma space and thus must convert it to linear space, do your calculations and then convert the final image back. If you don’t do the gamma->linear conversion you will get the same bland greyed-out look as when you gamma-corected your desktop with the 2.1 setting.
And considering the performace issues, yes it’s very expensive. The current generation hardware can do it, but it cannot do without serious penalty.
Ideally we would like a conversion to linear space at the texture-samplers (before filtering) and higher precision framebuffers so the built in gamma conversion could be used (as the conversion 1.0->CRT and not 2.2->CRT as today) without running into stepping issues. Because of the non-linearness of gamma-space, which is very close to our eyes sensitivity, it becomes a very efficient method for compression. But without it, 8-bits per channel is gonna suffer from stepping at the darker areas of the image.
Thinking of it, it could probably work fine with a 10-bit framebuffer. I haven’t tried it yet though. 10-10-10-2 would probably be good enough for your textures that doesnt use the alpha-channel.
How did the image texture or colors get into gamma space? If I pick a color out of a color selector (with the correct gamma value set for the monitor), the RGB values for that color should be linear. Isn’t that the whole point of the gamma-correction?
Because you authored them in that space. If you created them in linear space, you shouldn’t do the conversion.
[This message has been edited by vember (edited 09-21-2003).]