Keylight (Bundled Plugin) |
Function
Keylight is an Academy Award® winning keyer from Framestore/CFC
based in England. It accurately models the interaction of the blue or green
screen light with the foreground elements, and replaces it with light from
the new background.
With this approach, blue spill and green spill removal becomes an intrinsic
part
of the process, and provides a much more natural look with less tedious trial
and
error. Soft edges such as hair and out-of-focus edges are pulled quite easily
with
the Keylight node.
To ensure the best results, try to always pull the key on raw plates. In the Keylight parameters, there is a colourspace toggle to indicate if the plate is in log, linear, or video color space—so you should not perform a color correction on film plates when feeding the plates into Keylight.
To understand the function in context, see “Lesson Five: Using Keylight,” in the Shake 3 Tutorials book.
Parameters
|
Type
|
Defaults
|
Function
|
HoldOutMatte |
image
|
Indicates areas of the foreground that needs to be corrected for bluespill, but should not become transparent. The 'replace colour' is used in these areas instead of the Background. | |
clipMode | image | 0 | Sets the output resolution of the node, either the foreground image (1) or the background image (0) resolution. |
output | string | "composite" |
Like Primatte, you have the option to do your composite with Keylight, but there are other output options as well: composite: renders the final composite. compOnBlack: renders the foreground objects over black. compOnReplace: renders the foreground objects over the Replace Colour. This is a good mode to test your composite. unpremultiplied: renders the foreground without premultiplying the matte. This is used when you want to continue to do transformations and color corrections after pulling the key. You would then apply either a MMult node or turn on preMultiply in an Over node to do the composite. status: Black pixels represent areas that will become pure background
in the composite. Blue pixels represent areas that will become spill corrected
foreground. Green pixels represent a blend of foreground and background
pixels. Pure green is mostly foreground and dark green is mostly background. |
r,g,bScreen | float | 0,0,.9 | The primary color of the screen color to be pulled,
i.e., usually blue or green. Note that Keylight is tuned to the primary
colors and won't be effective on secondary colors (cyan, magenta, yellow).
If you are trying to pull these color, you might consider switching your
image from RGB to CMY with the ColorSpace node, pull the key, and
then switching back to RGB. |
screenRange | float | 0 | This defines the ranges of colours that should be keyed out. The higher the number the more screen is removed. A value of zero will give you the smoothest key, a value of .3 will remove all gray levels. |
r,g,bFgBias | float | .5, .5, .5 | Foreground bias is used to reduce the blue spill on foreground objects. Keylight uses this colour to calculate which shades the screen colour will pass through as it interacts with the foreground elements. For example, blonde hair in front of a blue screen tends to go through a magenta stage. Setting the FG Bias to the blonde colour will make sure this magenta cast is properly neutralised. This value effects both opacity and spill suppression. Returning it to .5, .5, .5 effectively deactivates this effect. You should avoid picking strong colours for the FG Bias. Muted shades work much better. Another way of looking at this colour is as a way of preserving a foreground colour that might otherwise be neutralised. For example a pale green object in front of a greenscreen would normally become slightly transparent, with the background showing through instead of the pale green. By setting the FG Bias to the pale green, it is preserved in the composite. |
shadow, midtone, highlightBalance | float | .5, shadowBalance, shadowBalance |
This parameter can help you when the screen area
is slightly off of a completely pure primary color, for example cyan instead
of pure blue. The transparency of the foreground is measured by calculating
the difference between the dominant screen colour (blue by default) and
a weighted average of the other two colours (red and green). With our example
of a cyan screen, there is a greater difference between the blue and the
red than the blue and the green since cyan has more green than red. Setting
the balance to 0 forces Keylight to ignore the second most dominant
colour in the screen, which is green in our example. Setting it to 1 makes
it ignore the weakest screen colour (red). There are three controls to tune
the low, medium and highlight ranges. |
shadow, midtone, highlightGain | float | 0, shadowGain, shadowGain |
Increasing the gain makes the main matte more transparent. This tends to tint the edges the opposite of the screen colour - for blue screens edges become yellow. Decreasing the gain makes the main matte more opaque. |
midTonesAt | float | .5 | Sets the level of the midtones used by the Balance and Gain controls. If you are working on a dark shot, for example, you may want to set the midtone level to a dark grey to make the controls differentiate between tones that would otherwise all be considered shadows. |
r, g, bReplace | float | .5, .5, .5 | Spill can be replaced by the Replace Colour.
This happens only in the opaque areas of the holdout matte. This is useful
when you have blue areas in the foreground that you want to keep blue and
opaque. The Replace Color would therefore be blue. |
r, g, bExposure | float | 1, rExposure, rExposure | This allows you to do color correction on the foreground element. This exactly mimics Shake's Brightness node. |
r, g, bGamma | float | 1, rGamma, rGamma | This applies a gamma correction to the foreground element, exactly mimicking Shake's Gamma node. |
saturation | float | 1 | This applies a saturation correction to the foreground element, exactly mimicking Shake's Saturation node. |
colourspace | string | "linear" |
Keylight models the interaction of the blue/green light from the screen with the foreground elements. For these calculations to work correctly, you need to specify how pixel values relate to light levels. This is the function of the colourspace menu. Therefore with Cineon plates (or other logarithmic files) you have to option to pull the key with or without a Delog operator before the key pull. log - colourspaces are designed so that a constant difference in pixel values represents a fixed brightness difference. e.g. In the Cineon 10 bit file format a difference of 90 between two pixels corresponds to one pixel being twice as bright as the other. linear - This colourspace has the brightness of a pixel proportional to its value. A pixel at 128 will be twice as bright as one at 64 for example. video - colourspace has a more complicated relationship, but approximately the brightness is proportional to the pixel value raised to the power of 2.2
|
useHoldOutMatte | int | 1 | If the third image input is used for a holdout
matte, this can toggle it on and off. |
bgColor | int | 1 | Either pulls a key on the area outside of the frame (0), or asserts the background as the background color (i.e., usually black). |
Synopsis
image = Keylight( image Background, image Foreground, image HoldOutMatte, int clipMode, string output, float rScreen, float gScreen, float bScreen, float screenRange, float rFgBias, float gFgBias, float bFgBias, float shadowBalance, float midtoneBalance, float highlightBalance, float shadowGain, float midtoneGain, float highlightGain, float midTonesAt, float rReplace, float gReplace, float bReplace, float rExposure, float gExposure, float bExposure, float rGamma, float gGamma, float bGamma, float saturation, string colourspace, int useHoldOutMatte, int bgColor, );
Script
image = Keylight( Background, Foreground, HoldOutMatte, clipMode "output", rScreen, gScreen, bScreen, screenRange, rFgBias, gFgBias, bFgBias, shadowBalance, midtoneBalance, highlightBalance, shadowGain, midtoneGain, highlightGain, midTonesAt, rReplace, gReplace, bReplace, rExposure, gExposure, bExposure, rGamma, gGamma, bGamma, saturation, "colourspace", useHoldOutMatte, bgColor );
See Also
ChromaKey, DepthKey,
DepthSlice,
LumaKey, Primatte, SpillSuppress,