Contents
The Color Pipeline : A Compendium of colorimetry and light perception for the Computer Graphics programmer
This article has 3 knowledge levels :
- The first level is the article itself, which is going to attempt to sum up what I could grasp of the vast subject (!!) that is color perception
- The article will sometimes refer to another page called Colorimetry where technical informations regarding specific details are available
- The Colorimetry page itself will sometimes refer to even more detailed informations and equations that will help performing various tasks
This article is a poor attempt at gathering all the important notions and is a digest of the enormous amount of available informations about colors, color spaces, color profiles, color corrections, color grabbing and color display.
Color Spaces
RGB
XYZ
//Color management, from
Quick overview of the pipeline
The typical color pipeline for a photographer would imply the acquisition by a camera, storage to the disk (usually in JPEG or RAW), processing (in Photoshop or Gimp) then perhaps another storage and finally a hard print to paper.
In CG, the pipeline is quite larger and no longer limited to a single unique pipeline since images can come from different sources (a camera, a hand-painted texture, a rendering software).
Typically, you have the following scenarii for image generation:
- Real Scene → Camera → Storage (real scene acquisition scenario)
- Photoshop → Storage (hand-painted scenario)
- Renderer → Storage (generated scenario)
Then, you have optionally one or more instances of the processing stage:
- Storage → Photoshop → Storage
Finally, the main pipeline:
- Storage → 3D Renderer → Frame Buffer → Display
The ultimate goal is obviously to finally display the exact same color (perceptually speaking) than the one that was originally captured/painted. And to generate the most photorealistic images possible.
It would be easy if:
- The camera could have the same adaptation range as the eye and store the luminance in a lossless HDR format.
- All the various stages in these pipelines would work in linear-space colors.
- The display device could render the same luminance levels as the ones stored by the camera.
Unfortunately, there are various clipping, compression and transform limitations in each of the described stages.
Acquisition
The color acquisition by a camera
Storage
Processing
Photoshop
Loading
Lighting
Writing
Displaying
Color Acquisition
Taking a Picture
Artist Painting
Color Storage
Color Profiles
When editing an image, there will be a color profile that the image is currently in. This is called your "working profile" or "working color space." There are three primary working spaces when editing images in Adobe Photoshop: ProfotoRGB, AdobeRGB, and sRGB. These are ICC profiles designed to be assigned to out-of-camera image files.
When shooting in RAW mode, the color space setting on your camera is essentially an afterthought, since you will be selecting your working space when converting the RAW to an editable file. However, if you are shooting JPEG, it is important to set the ideal setting for color space in your camera. (Source: http://www.steves-digicams.com/knowledge-center/color-management-picking-the-right-working-space.html)
Gamma Correction
Formats
JPEG
PNG
TGA
TIFF
HDR
Color Loading
Very important !
We Want Linear Space
Fixing Things
Nuaj' Code
The bitmap class