Channel Booleans Color Matching in Fusion
On the color page of DaVinci Resolve, you can match two colors by eye. But did you know the Fusion page can precisely match colors using Division and Multiplication? Today, let's learn how the channel booleans node, linear light, and a 32 bit float working space allow us to change the color of this Ford Bronco to any reference color pulled from a website.
Compositing is math, and sometimes it’s pretty basic math. This tutorial will teach you how to use the channel booleans to divide two background node constant colors, and then multiply the result back onto the original footage. This allows you to match your footage to any reference color you might need to sample. This technique works great when a client might offer you a product color that needs to exactly match their brand colors (or vehicle paint) like in this easy VFX tutorial.
If you’d like to follow along with the same footage and are so kind to join the cutting club, grab the Bronco clip, and let's get started.
Color Matching Math
Ensure you’re working in 16 or 32-bit floating point for this technique. We will need to exceed values of the 0-1 range and work with Linear Light (no gamma curve) to mimic the physics of the real world. The magic of floating point is that we can temporarily go lower than zero or higher than one to set stuff “into the scene.” Or into the real world and make it appear photometric.
Start by grabbing two background nodes. One node should be color-picked off of the footage color, and the other background node should have a color-picked value from a reference image or a provided hex value that you need to match. To use the color picker in Fusion, hold and drag to the viewer to grab a sample. Even better is to hold down command or control on a PC to expand the sample box to average out values. Using a larger sample box will ensure you don’t grab noise or grain pixel values.
Next, grab a channel booleans node and change the operation to divide. We want to divide on every channel except for the alpha; we will leave the alpha to do nothing. The order for division does matter, it is not commutative like multiplication. We need to reference color to go into the yellow input of channel booleans. The footage color goes into the green foreground input. And the result, which will likely have some pretty high RGB code values will be used in the next step.
A second channel booleans node finalizes the color match using the operation on the second node set to multiply. The connection ordered here does not matter, but I like to place my original footage into the yellow background here, so you can easily bypass the node with command P (p for passthrough) to see the before. The foreground green input should be connected to the output of the divide channel booleans and that’s it!
With just a divide channel booleans and then a multiply channel booleans, you can match any color!
Real Footage ACEScg Example
Let’s discuss using this on actual footage with the basics out of the way. The clip I used in this tutorial was shot with the Blackmagic Camera App on an iPhone 16 in Apple Log. The reference images are screenshot downloads from a website. So the first step is to do some VFX color management and place all the colors and gammas in ACEScg, so they live in the same world. I suggest using the ACES transform node. The input will either be sRGB (for the still images) or Apple Log (for the video clip), and the output should be set to ACEScg. I also recommend always turning on ACES Reference Gamut Compress at this stage of the color pipeline. If another person is doing color grading after this composite, ensure they understand the Reference Gamut Compression has already been applied so it is not used twice. This helps recover and smooth out-of-range highly-saturated colors, like bright blue.
Now, with all the clips in ACEScg, you will need a way to view images, and the best way is with the OCIO display view LUT. You can download this file from here.
Then just color sample with background nodes and divide the reference color by the actual footage background node color. After you have the difference between the two colors, you multiply them together with another channel booleans and finally you’ll need to mask off the correction.
There are many ways to create a mask, but the thing to know is to plug the mask into the blue mask input of the multiply channel boolens tool.
Luma Keys, Magic Mask, and Polygon roto shapes are all good methods you can use in fusion to generate masks to just a specific part of the screen. I have used planar tracking transforms with polygon and b-spline shapes for this example and are included in the cutting club download file.
This tutorial was inspired by an actual high-end car commercial in which the right color vehicle wasn’t filmed on set, and we had to alter it in post. If you haven’t seen how to do match colors without color on the color page - check that out next, and because there’s so much more to learn, I’ll see you in the next video!