Color Grading

From RMIT Visual Effects
Jump to: navigation, search

Color grading refers to the act of changing the color of a digital image. Most typically, it is done at the very end of Post-Production and is intended to impart to the movie its final 'look and feel'. However, it might also be done to individual clips well before the final grade.

Color Grading The Final Edit

This is done at the very end of the entire filmmaking process. It's purpose is to:

  1. Remove any 'wrongness' from the movie (e.g. poor exposure, poor color balance etc). This is called color correcting.
  2. Ensure that skin color looks natural throughout. This is part of the color correction process.
  3. Ensure color continuity in the movie (e.g. that the color of a characters skin is consistent in two clips that follow each other). This is called color matching.
  4. Impart a distinctive visual 'look and feel' to the movie. This is called color stylization.

Color Grading Single Clips

Consider the following scenario: a matte painter is working on a matte painting. The footage is horribly underexposed and displays a distinct color cast. In the normal course of events, color grading is not done until the very end of the post production process. Are they therefore to do their matte painting onto uncorrected footage? Probably not. Using a Grade node, it would be possible to do a temporary color correction to the footage in nuke, and then apply the reverse of the grade to the painting using the 'reverse' widget of that node. However, this is the only color node with this explicit functionality. Far easier instead to perform the color edit. Also, in a project consisting of only one clip (i.e. most of the projects in the first weeks of this course) there is no need for a separate color grading stage.

Color Correction

At this stage, mistakes in the footage are corrected. This includes fixing such things as poor exposure, incorrect lighting etc. Of the three color grading stages, this is the simplest, as it relies heavily on non-subjective values that can be evaluated numerically.


Normalisation is a color grade performed on the lightness values of an image. A normalised image is one in which the darkest point is black and the lightest is white. Consider the two paintings below. The lightness values of the Rembrandt painting (on the left) extends from black to white. The lightness values of the Gwen John extend from dark grey to light grey. The Rembrandt painting can be described as 'normalized'.

The tonal properties of Rembrandt (left) and Gwen John (right). The tones of Rembrandt are normalized: extending from black to white.

Gwen John notwithstanding, most aesthetic images (paintings, movies, photographs etc) have been normalized. Howvere, bear in mind that some don't need it. This is a matter of aesthetic preference. In an average color grade to a movie, normalisation may be performed regardless at the correction stage, but might be removed later at the stylizations stage.

The perfect normalisation tool in the Grade node. It will perform a lift and a multiply to move those black and white points into place.

A lift operation visualized (blacks go up or down, whites stay the same)
A multiply operation visualized (whites go up or down and blacks stay the same)


Normalisation address the extremes of the tonal range. Gamma address everything else. As a lightness operation, a gamma adjustment can lighten or darken the mid regions, yet leaves the blacks and whites untouched.

A gamma operation visualized (blacks and whites stay the same, middle values go up).


Whilst the lightness and hue of an image can be empirically 'wrong', the wrongness / rightness of the saturation of an image is somewhat a subject of opinion. The nodes which effect the saturation of an image are:

  • Saturation (which changes the global saturation values of an image)
  • HueCorrect (using which the saturation values of particular values can be changed)

Hue (color cast)

It is very common for the hue of an image to be wrong, I.s. For the image to have a color cast. The test of this is to look at the areas of an image that should be neutral (i.e. grey). White walls are ideal for this purpose. If these grey areas have a color cast, then the image needs Repairing. The simple workflow is this:

  1. First identify the target area. This will be something like a wall which should be white, yet is pink or blue. Mid to low lightness regions are preferable.
  2. Select the region by Control Shift selecting in the viewer window. This will restrict
  3. Next you will need to get the numerical values for this region. First select the region by Control Shift selecting in the viewer window. The RGB values for this selected region are to found in the value information bar of the Viewer window. They are also found in the Pixel Analyzer window.
  4. Using a Multiply node, change the R and B values to match that of G (see here for more about R,G and B).
  5. Or... using a Gamma node, or the gamma property of Grade node, change the R and B values to match that of G. A gamma will leave the white values alone, which is sometimes a good thing.
  6. Or... open up a ColorLookup and you will see the three vertical colored lines, representing the selected values. These will change position together with any changes you make to the curve. The task is to get the three lines to be in the same place. See the image below.
The R, G and B values expressed as vertical lines in the ColorLookup node

Color Matching

In the case where two live action elements from two sources are required to match, the workflow is fairly simple. The footage that requires matching is termed the 'target', whilst the 'source' is the footage which it should match. Though the target will require the majority of attention, it is entirely conceivable that the source will also need to be tweaked. Color matching is particularly important in getting the face of an actor to be consistent within a scene.

The color match workflow is simple enough, and assumes that any major color cast has been fixed with a color correction...

Matching lightness and saturation
  • Match first the lightness value of the footage. Lightness values can best been evaluated in the Viewer by pressing the 'Y' key whilst the mouse is hovering over the Viewer. The Grade node is the best tool for matching lightness value. You are advised to first adjust the white point and black point using the 'blackpoint' and 'whitepoint' sliders. After that the gamma using the gamma slider.
  • Match then the saturation value. If these don't match, then it can probably be fixed by no more than a slight tweak of the Saturation node.

There are (at least) three ways to do this. Both require that first match regions are identified: a region of the source footage that should match a region of the target, yet doesn't.

Hue matching 'by the numbers'.

This technique identifies the numerical values of the source match region, and matching corresponding values of the target match region.

Hue matching 'by eye'.

targeting the same match regions as the preceding technique, this method employs a 'by eye' match method. Color is difficult to match, but grey values are can be matched quiet effectively. Hence, the individual channels of the target match region may be match reliably (a channel is, after all, a greyscale image).

  • This method requires that the source and target match regions are in very close proximity to each other. A CopyRectange can be used to copy the match region from the target image and lay it on top of the source image.
  • Cycle through the 'R, G and B' channels in the Viewer. By making an adjustment in a ColorLookup or Grade node, the greyscale channels may be matched to each other.
'Two point' hue matching
The preceding methods matches one set of values from one image to those of another. Using this method two sets of values can be matched: a light and a dark. It can be more effective that the first methods, but it is not straightforward:
  • Using the blackpoint and whitepoint parameters of the Grade node set, in the target image, the light and dark points. This will move those points to black and white and make the image look weird, but wait...
  • The reason these points were set to black and white is that they are now much more easily moved to new values (moving a 0 or 1 to arbitrary RGB values is easier than moving one arbitrary set of values to another). Using the lift and gain parameters of the Grade node these new black and white values can be moved to new positions which may be sampled from the source image. Part B of the videos that are linked below of the page covers this method very well.

The method is shown here in this excellent video from The Foundry.

Color Stylization

Color stylisation is the point at which the color of an image is changed so as to change its aesthetic ambiance (or 'picture values'). I have found that the most useful nodes for such work are: Grade (which is good for overall work), ColorCorrect (which is good for seperatly adjusting the dark, lights and middle of an image) and HueCorrect (which works upon specific hue ranges). There is too much to say on this subject so I will, for the most part, pass by in silence. Just a few notes:


The color of an image might be physically correct (normalized, no color cast etc) but the skin of the actors might still look like that of a lizard or an orange. Generally we may assume that asian skin color is around %40 to %50 luminosity. Use the Waveform to determine this value. A very good tutorial on skin color is here. When adjust skin color, experainced aesthetic judgement should be used.

Regional adjustment

One of the big differences between correction and stylization is that the later often involves color edits being applied regionally as opposed to globally. Highlights, shadows, foreground, background, edges, corners etc all might need targeted edits. There are different ways to mask these regions:

Area mask
This masks out an area of the scene like the top left or the middle and it is not likely to be very heavily animated. An area mask can be used to darken the top of the sky, lighten the middle of the scene or darken it's outside. We can make the area that drives this mask by using a Rectangle, Radial, Roto or RotoPaint node.
Object mask
This masks out an object like an actor or a car and is more likely to be animated.
Value based mask
This makes a mask based on channel-specific values derived from an image. The ColorCorrect node is specifically built to do this job. Sometimes the channel is drawn directly from the target image but is more likely to have been fed out, adjusted so that its values are more 'contrasty', then fed back in as a mask. A variant of value based masking is keying.

Value based masking is built into the ColorCorrect node, which makes it an ideal color stylisation tool.

Depth plane space

We can usually divide up a scene into at least three flat planes: foreground, middle ground and background (FG, MG and BG). The foreground is where the point of interest is usually located. In this kind of space we often assume that the contrast values are greatest when they are nearest to the camera. We consider depth region contrast in two ways:

  1. Contrast between depth regions
For example: FG is darker than MG which is darker than BG
  1. Contrast within depth regions
For example: within the FG there is high lightness contrast, within the BG there is high hue contrast.
The contrast properties of three depth planes visualised

Picture plane space

A picture plane is the flat 2D plane on which the image lies. Corners, edges and centers are not natural to anyone but painters, photographers and cinematographers. Don't believe me? Well show me the where the four corners of your vision are! Even centers are, perceptually, very fugitive things. The picture plane can have geometries that compliment or contradict those of the depth plane. For example: the top of a table might have been lightened in the depth plane but might have been intersected by a picture plane darkening adjustment.

The vignette

Artists have been darkening the edge of their paintings for thousands of years. A vignette as made by someone like Rembrandt is a nuanced and complex thing composed of depth plane and picture plane elements. The big problem now is that a dumb cousin of the painters vignette has evolved that has its roots in photography. Old-style photographic vignettes arise from the optical shortcomings of the camera's lens and is entirely situated within the picture plane. When making a vignette, you might wish to experiment with darkening some corners more that others. Conventionally, one or other of the top corners is darkened less than the others. Below in descending order: original, photo-style vignette and complex vignette. The psd for this image can be found in the Assets page.

Original photo
A simple, flat photo-style vignette
A complex vignette, with some corners darkened more than others. also, the centre has been slightly brightened

The sky

Strictly speaking, the sky is just another feature of depth space, being an infinite backdrop against which your ground planes are set. However, it is more useful to regard it as a special case and to treat it as such.

There are few things capable of setting the mood of an exterior shot more powerfully than the sky. You will often find that the most effective skies are either extremely dramatic or very boring. Average skies are, by definition, neither of these. Though it can be a PITA to replace a sky entirely, effective voodoo can be had by adjusting it with masks. Normally, this is quite simple to do with a value based adjustment, as the sky is usually the lightest thing in the scene.

See the following images for an illustration of how important the sky is. The first is from the original version of ‘Star Wars’ which was made before the advent of digital grading. Though the sky is not unattractive, when the film was ‘digitally remastered’ twenty years later the sky was completely replaced. The new sky had a horizontal central weighting with a lessening of the relative contrast values between the foreground interest and the sky

A scene from the original Star Wars
A scene from the remastered version of Star Wars with the sky replaced
See how a similar strategy has been employed by the American artist, Albert Bierstadt

Finally, there is the famous day for night. Why bother? Why not just go shoot a scene at night? Well... shooting in low light conditions is very troublesome, thats why. Go ask a cameraman if you dont believe me.

A scene shot during the day.
The same scene converted to a night scene.

Color Grading Dos and Dont's

Some general rules to follow in color grading

Use HSL 'color thinking' space

Color is a volume, with a single color value being a point in that volume. Describing a point within a volume requires at least three coordinates (e.g. x, y and z). Such a three point system is referred to as a color space. In digital imaging the color space most commonly used is red, green and blue (RGB). This may be referred to as our 'working' space. However, when artists are thinking about color they traditionally refer to hue, saturation and lightness (HSL) color space. This is more perceptually agreeable that RGB... artists find it far easier to make aesthetic judgments in this space.

Value Comments
Hue This can be understood as the 'name space' of the color (i.e. whether it is a blue, green, pink etc).
Saturation This refers to the intensity (or purity) of the color. Hence black, white and grey all have zero saturation value and that ghastly pink shirt that your grandmother bought you for Christmas is highly saturated. Hue and saturation together make up the chroma component of the color.
Lightness The lightness values of an image is what we are left looking at if we pull the saturation of an image down to zero. To see the lightness values of an image, hover the cursor over the viewer and press the 'Y' key.

Both lightness and saturation are expressed in terms of intensity. They are bound by terminal extremes (maximum and minimum). They are also related: zero or maximum lightness (i.e. Black and white) both result in zero saturation. Hue is traditionally expressed as values arranged around a wheel (i.e. A color wheel).

When color grading, it is usual to first address lightness, followed by hue, then saturation. Sometimes an adjustment to one will result in a slight perpetual change to another. Annoying? Yes.

Respect the difference between R, G and B

As already stated, the working space of digital color grading is RGB. These channel are not identical in what they express:

Value Comments
Red This is where details live. Look at the red channel, and see how even-form it is and how well it contains all the fine features of the image.
Green Green is where the lightness values of the image lives. Look at the green channel and see how closely it matches the lightness values of the image. When making a hue adjustment, it is customary to leave the green channel alone, as any adjustment to it could effect the lightness of the image.
Blue Blue is where the large masses of the image lives. It also has the reputation of being the naughty channel, being much inclined to noisiness.

Color grade in order

Color grading may be divided into three stages, delivered in the following order:

  1. Color correction
  2. Color matching
  3. Color stylization

Splitting up compound color edits

Complex color edits are best split up into small components. For example, don't try to adjust the lightness and the hue in one operation. Splitting up such compound adjustments into smaller chunks makes them easier to edit and troubleshoot.

Consider using simple color tools before using complex ones

Fancy nodes with lots of sliders might look fun to play with but are they necessary? You will find that for a lot of color correction work simple nodes like Multiply or Saturation is enough. These require less processing, but also make the script easier to read.

Donʼt leave 'fiddle' values in the parameters

When reading someone else's script, it can be very annoying to open something like a ColorCorrect to discover that a multiply has been set to .0003 (or some other random, completely ineffectual value). If you intend to change a value then do so. If not, then leave it at its default value (to set to default Command click on the slider or contextual menu it).