A bit of history:
Back then when Compositing programs were not as affordeable at today I relied on blenders 2.49 composite for my reel. (Even rotoscoping...but this is for a braindump article in future). In one of my experients I found the channel keyer does generate some nice resuls when keying in different color spaces.
Wich makes sense, since these allows you to include different "adjacent colors" to the tolerance settings. Colors wich are near in RBG colorspace might be different in YUV / HSL etc.
Years later when experimenting with the blackmagic fusion sdk, and a forum posts later the idea nagged me to try to bring this functionality inside this composting program...just to see how well it would behave....especially when adding a difference key to it.
Since I cannot use the source code of blender, because it would violate the gpl, I had to recreate the plugin for myself...
and by doing so add some additional functionality to it. So this thing is compareable to a painting wich is years in the work: Add something here, erase / adopt other strategies etc. A continious WIP project. ..like an oldtimer you rebuild yourself on weekends (if you are into cars..wich I'm not ).
Be aware that this is a very experimental plugin.
(Basic test with the Hollywood Camera Work footage
Keying out the background in YUV color space. Keying could be refined a lot (masks,extra keyer)
but I wanted to demonstrate whats possible with one keyer
SO THIS PLUGIN IS A EXPERIMENTAL PLUGIN BASED ON SOME OBSCURE THEORIES I WANT TO PLAY..
BE AWARE OF THAT.
ALSO IT CAN'T COMPETE ON SPEED (EITHER IN WORKFLOW NOR RENDERING) WITH SOME OF THE EXISTING KEYER IN FUSION.
BE AWARE OF CRASHES AND DRASTICAL CHANGES BETWEEN VERSIONS
Sometimes the calculation from a color space back to rgb resulted in illegal values. Wich resulted in illegal values / corrupting the fusion file. This is a small bugfix checking the values after calculation. Still the swatch can get out of sync to the actual keyed valu. Not sure if I'm ever able to fix it.
Added another key method, MIN is the old behaviour, while DIST result in softer but more hard to key alpha matte.
Added other fallof functions.
Fixed the difference keyer, and its now working in all color spaces.
The Value sliders now allow you to derivate the input color of the difference image. (Keep it at 0 if you don't want the effect)
Added option for linear or cosine (= previous default) falloff. Linear leads to a softer blend, but could also can result in noisier results.
Partial fix for values getting loaded wrong in saved comp
Expanded the slider range for the image values
Added alpha multiply as an option
Tweaked the keying algorythm, results should be more expecteable.
Reintorduced the fade slider with a slightly different functionality. Good values are around 0.5
Added a new despill / color correction method based on the fade algorythm.
This plugin has been hastily packed together for this release, be aware of that
Rewrote the plugin for multi threaded evaluation. Should improve the processing speed quite a bit.
Changed the keying algorythm a bit. Results should be more accessible than the previous version. Fade is currently deactivated an probably will transform into a new functionality in the comming months
The color space in wich the keyer works. As said I had good reults with the YCbCr space when keying greenscreen footage...while using rgb or HSL on the difference keyer function
BG Alpha Blend
Defines how the new alpha channel operates with an existing alpha value of the input image. This has been added to allow you to cascade keyers in a row.
Choose between linear (softer) and cosine (harder edges). Depending on input linear introduce more noise, but gives you a softer blend.
Sometimes its easier to key out the Foreground instead of the background. Using this function you can inverst the alpha
Activated / Deactivates Auto Colorcorrection
Removes Color from semitransparent alpha by substracting the negative/inverted value. Good for removing colors from see trhough materials and hairs
Removes Saturation according to the alpha level
When you are in RGB space 0 represent Red, 1 Green, 2 Blue, when in HSL Colorspace H is 0 S is 1 etc....
I wanted to implement some kind of autorenaming system, dpending on wich channels you key, but I got some weird results trying to implement this.
Each channel has the following parameters:
Value P1 P2 and P3
Nothing else than the Color Value of the channel. EG if you select a pure green Color, Value P1 would be 0 P2 would be 1 and Value P3 would be 0...
Min P1 P2 P3
The minimun tolerance of the color channel.
Max P1 P2 P3
The maximum tolerance of the color channel
The following 4 Values act globally on the resulting alpha channel
The fade can be seen as some kind of rolloff of the tolerance. Set it to a value of 0.1 for a good start
(This has been deactivated in the 0.4 release)
Does an gamma correction to the alpha channel....
As the name descibe it. Multiplies the alpha value with a factor.
Adds / substracts values to the alpha
If you select a secondary image in the second image input (Keyimage) this keyer will not use the color you selected but
the color he finds at the relative position of the second image. All other keying functions still apply
Workflow (or how I do it)
- Select the key color in the image. by hiting the Pick Color button, and use the eyedropper in the color swatch to select the clor to key in the view
- Then I select the Color Space I want to key in
- Set Fade around 0.1 to 0.3
- Switch to alpha view
- Use the Channel settings to isolate forground and background.
- Tweak Multiply Fade and Alpha to get the foreground and background clearly separated (black bg / white fg)
- Composite the key
- Readjust the channel settings and use CC Amount and Desaturate Alpha to tweak the output color..
- Add aditional dilate/erode if necessary.