Given that most web images are already "gamma corrected" for CRTs
and CRT-emulating LCDs, exactly what "gamma correction"* are web
browsers doing? Do they pay attention to the ICC profile or color
space information of those formats where it can be embedded (.png,
EXIF .jpg, etc)?
The correct pipeline for 3D graphics when using an image for
texturing is 'convert from image color-space to physically linear
space' -> 'apply texture, lights etc.' -> convert from
physically linear to display color-space. I am 99.9% sure that the
"gamma correction" being done by browsers is not to a physically
linear space. If it was the images would look dreadful on an sRGB
display, i.e. the vast majority of displays.
OpenGL has traditionally ignored color spaces. However recent
versions have support for sRGB textures and sRGB framebuffers
which implements the above pipeline. These features will almost
certainly appear in a future version of OpenGL ES so WebGL needs
to be very careful about what it does in this area.
* There is a school of thought that says CRTs have nothing that
needs to be corrected. They are the perfect decoders for a
perceptually-linear encoding of the image data, i.e. an encoding
that uses the bits/bandwidth only for changes that are visible to
a human eye such as sRGB. "Gamma correctors" are in fact encoders.
... When displaying ordinary images on a web page, the browser always performs gamma correction on the image data.
begin:vcard fn:Mark Callow n:Callow;Mark org:HI Corporation;Graphics Lab, Research & Development adr:Higashiyama 1-4-4, Meguro-ku;;Meguro Higashiyama Bldg 5F;Tokyo;;153-0043;Japan email;internet:email@example.com title:Chief Architect tel;work:+81 3 3710 9367 x228 tel;fax:+81 3 5773 8660 x-mozilla-html:TRUE url:http://www.hicorp.co.jp, http://www.mascotcapsule.com version:2.1 end:vcard