[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Public WebGL] Gamma correction and texImage2D/texSubImage2D



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.

Regards

-Mark


On 03/09/2010 11:01, Kenneth Russell wrote:
... 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:callow_mark@hicorp.co.jp
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