For a long time I wanted to release a CG compositing series. Many things stopped me in the past:
Time constraints
Access to good Render examples to work with
Not thinking I had too much to contribute to the subject matter
This series will be focused on answering the following question
How do I best rebuild my CG passes, for the most flexibility as a Compositor?
Download the FruitBowl Renders for the Series
My Friend and fellow artist, Chase Bickel, has kindly provided us with some high quality renders of a FruitBowl to download for free and play around with.
Download the FruitBowl renders now, or I will always post the links at the top of each video and blog post for you to download later:
You can place the FruitBowl renders files into the /SourceImages/ folder of the project files folder accompanying each video and nuke will reconnect the read nodes.
For Example:
These Renders are full of common passes you would find in production, including:
AOVs
Lightgroups
IDs
Utility
Gameplan
Start with the Basics –> Build our way to more advanced topics –> End with a proposed template for your CG Rebuild
I will go through different types of AOV passes you would typically find at a studio, what they are, how they are used, and how should think about them in relationship to one another. We will categorise and group different AOVs in order to define them better, and help us find the commonality and patterns between renderers.
This series aims to be useful no matter what renderer your CG comes from, as the principles are the same.
Topics Covered
Differences between Additive and Subtractive Workflows, and the pros and cons of both
Explaining the difference between Material AOVs and LightGroups and how to work with them together seamlessly
This includes an elegant solution to the infamous AOV – Lightgroup paradox
I will cover the importance of making Mattes and alphas, to help us isolate, and automate our CG manipulation. We will go over common utility passes and IDs and show how to do some cool things with them
Using Full CG Render
Will not cover how to integrate CG renders into a live-action plate
Will focus on the CG rebuild and various methods of manipulation to get the most out of your CG renders
Something for everyone
Juniors, Mids, Seniors, TDs, Comp Supervisors
There will be knowledge to be learned across all levels
Perhaps this will one day be a pre-requisite for a full CG Compositing into live-action plate course
This series will take some time to release all episodes, so please have patience
I was recently on VFXforFilmmakers channel doing a keying demo using my advanced keying template. Matt has kindly filmed some 4K ACES blackmagic footage for all of you to practice on, and we’ve included this nuke script, original footage, pre-renders and final render in the work files for you to play around and dive into.
It’s a great resource and practical case of how I would use the techniques and templates that I developed in the series. By no means the only way to keep, but hopefully you will find many parts interesting and valuable.
The FREE working files can be downloaded from Matt’s website VFXforFilm.com
If you already have the package installed, should be as easy swapping out the old folder with the new one. In the future I plan to do a monthly release update, given there is enough material to add, bug fix, change, etc.
Please let me know if there are any tools you think I missed and would make a good addition in the comments, as well as any bugs or unusual behavior. Thanks
I’m happy to bring you a side project I’ve been working on for awhile, The Nuke Survival Toolkit!
The Nuke Survival Toolkit is a portable tool menu for the Foundry’s Nuke with a hand-picked selection of nuke gizmos collected from all over the web, organized into 1 easy-to-install toolbar.
Many thanks to all the tool contributors out there who made this tool menu possible.
Special thanks and shout-out to Adrian Pueyo for the inspiration and guidance to be able to finish this project. This toolkit contains exclusive AP tools from Adrian and myself that have not been release publicly until now! Make sure to check out all tools with an AP or TL tag at the end.
Select the rotation angle and size of the blur. Choose between blur and defocus. Has a perpendicular blur that blurs in the perpendicular direction to the angle chosen.
Binary Alpha is a very simple, yet super convenient expression that I use all the time, and decided to turn into a quick gizmo.
It analyzes a choice of the RGB, RGBA, or Alpha input and outputs an Alpha Channel (or RGBA result) that is Binary, 0 or 1. Any Pixels that are not 0 will be turned into 1 (negative numbers also), and 0 will remain 0.
This is perfect for those “blur, unpremult, set alpha, blur” for tricks extending colors, or if you need a quick matte for finding any rgb color above or below 0, in a CG render passes for example.
The good ol’ blur/unpremult/blur ❤ :
Basic properties:
The literal tcl expression is just:
r!=0 || g!=0 || b!=0 || a! = 0 ? 1 : 0
Which in english, translates to something like: “if red is not 0, or green is not 0, or blue is not 0, or alpha is not 0, then be 1, or else, be 0” So it will include negative pixels as an output as 1 as well.
Super simple but hopefully a time saver if you are like me and hate remembering expressions.
For those who just want to quickly see what the tool does, I’ll include a time-stamped link to that part of the Demo here: https://youtu.be/Kw3bcsmkGuk?t=2145
BlacksMatch recreates a Toe operation with merge nodes, meaning you can now plug in an external image are your black color and it will perform the operation taking each pixel’s value into account as the blackpoint.
You can control the Multiply, which is how far above the blackpoint the blacks match with stop affecting your midtones and highlights. For example, if you plugged in 0.15 and had the multiply set to 2, then values above 0.3 remain unaffected.
The “falloff” or Gamma control just controls the falloff of the curve into your blackpoint color. if it’s really high, it will act more like a screen or plus (still ending at the blackpoint color times your multiply control), and if it’s really low, it will act more like a clamp. Your blackpoint will not ever fall below your input color while you manipulate the curves.
There is a preview plotscan button that helps you visualize how your curve is behaving with your settings. Just move the plotscan picker around and it will sample your blackpoint color at that area and give you an overlay of your curve. (Don’t forget to turn it off when you are done)
I personally think this is a tool every comper should have in their toolkit, as it’s by far the most controlable way to match your blacks properly!
The settings of the BlackMatch Tool and a wipe from the tutorial:
There is a full video Tutorial about the BlacksMatch workflow, along with a Tool Demonstration at the end. If you want to know how I made it and whats going on under the hood, please watch the whole video. It might give you some ideas of how to re-think your matching blacks workflow.
Here is the Flow Chart for the Blacks Match Workflow:
Our goals are:
1.) Nothing should fall below the blackpoint value
2.) The blackpoint should affect the mids/highs as little as possible.
The Most important thing to remember is to try and not adjust any color corrections after you apply your blackpoint.
Here’s a few examples of the importance matching blacks can be to your image:
Here is a picture with just some beauty rendered statues, color corrected and placed into our scene, no blacks match… stands out quite a bit:
Here is a before picture is we just turn off all the color and detail and just place “pure black” statues into our scene:
If we start sampling the colors around the surrounding areas of the statues and applying theses as our blackpoint, still ignore any midtone/highlight color or detail. We can actually see our statues are fitting in quite nicely. You can think of it like “if there were pure black objects in my scene in that area, what would it look like?” and we are getting pretty decent results:
And here is the image with our matched blacks properly combined with our midtones and highlights. But there is a lot of operations used to combine the blackpoint with the midtones and highlights. So let’s take a look at all of them, and study the best way of combining these:
For the second part of our goal, the blacks should affect our midtones and highlights as little as possible. We have to look at different operations of how to apply our blackpoint:
Here’s some graphs comparing the most common operations of how to match the blackpoint and what they are doing to a 0-1 curve.
Here’s a closer look at the curves next to each other:
Here is just an overlay of all the curves on top of each other to compare them to one another:
Here is a close up of a Clamp operation:
Here’s a close up of the plus operation:
Here’s an example of a Screen operation:
A close up of a Hypot operation:
A close up of a Toe operation:
Let’s now talk about the Good, the Bad, and the Ugly… starting with the bad:
A screen and lift do a sililar operation between 0-1, but the screens influence stops at 1, where as a lift is actually using 1 as a pivot point to lift the blacks and lower the highlights above 1. If you set a lift to 1, it will completely decontrast the image, sandwiching every pixel and turning the entire frame to 1.
No matter if you leave a color correct at default range, or start adjusting the range curves, the color correct produces some very strange results because of the S-curve it generates. Because it is sampling the luminance from the bg image, if you enter a black point number higher than the luma key it is calculating, than the curve will first be your black point color, then dip back down to the midtone color and rise back up to your highlights. This creates a really strange image that you’ll want to avoid.
Avoid Lift on a Grade, and avoid ColorCorrect nodes for adjusting your blackpoint.
The Ugly:
Both Clamp and Plus are at the Extremes of our operations, and have the least appealing qualities. You can acheive much more control and better operations using our remains screen, hypot, and toe operations. Here is the gif of the curves compared to one another again so you can see that clamp and plus are at the extremes:
Screen and Hypot are perfectly fine operations, but offer limited control. and Toe… Well we can’t even input an image, and we don’t even know what exactly it is doing. There’s very little documentation on it. Let’s try to reconstruct it:
With a little bit of fiddling around. We can see the top of the toe operation is exactly double the value of the blackpoint… We need to start by re-creating a screen, which is basically an inverted luminance key, used as a mask, that is plusing out blackpoint. From there we can create a screen operation that instead of end at 0-1, ends at 0 to 2x the balckpoint value, and you can see in the example above we have a mini triangle encompassing our toe operation. There it’s a matter of using a gamma of 0.5 on the luma-key mask and we have our toe.
So to reiterate:
A toe is an inverted luma-key, that instead of 0-1 is 0-‘2x the blackpoint color’ and then is gammed by 0.5 and is used as a mask to plus the blackpoint color over the image.
I know… that’s a mouthfull. But what we take away from making this toe for ourselves is that we have controls over 2 things. The multiply of how far above the black color it is affecting our midtones and highlights. And the gamma curve that is controlling our falloff of the curve towards the blackpoint value.
With this knowledge and math, we can create a tool that uses merges to do our math operations, which mean me can plug in an external image as out blackpoint and expose controls for the mult (above the blackpoint) and gamma (falloff) of the curve. And now we have our BlacksMatch tool.
I’ve received a few requests for the script and images I’ve used in the tutorial, so I’ve put together a folder on my dropbox for you guys to download and play around with. This is a preview of the part of the script I am saving for you. It includes the statues over the temple example, a couple of the simple shapes over complex black level images, and the part of the script that I recreated the toe, with the animating graph.
I’m also adding a reference image folder, with some of the cool hazy/foggy complex black point images I found while researching this topic. Maybe they will be good practice for you to bring into nuke and play around.
Finally I am adding in the original statue exr render, with some passes: beauty, depth, position, and normals, in case you want to try and color correct and match the statue render into any of these images or your own backgrounds. Thanks to Ernest Dios for the render.
LabelFromRead is a simple gizmo that displays the end of the file path from the top most read as a text overlay over the top of frame.
Useful for when you want to quickly display the filename when you are overviewing shots or sequences with a contact sheet and want to see what is what.
Basically so you don’t have to remember how to split filepaths in tcl and can easily display the image name.
Full Credit goes to Ben McEwan and his very detailed blog post about powering up your contact sheets.
The python script to change your knob defaults on the normal contactSheet node in your menu.py file is already here, posted by Ben:
This one is just for people who want to download the expressioned node and add it to their toolsets and not mess with any menu.py files.
I show this tool in a video explaining my LabelFromRead node, and I didn’t see a downloadable gizmo version on nukepedia, so figured I’d post it.
I made a brief demo of the LabelFromRead tool, along with how I use it with an automatic contactSheet node to review or compare multiple shots in a sequence.
NoiseAdvanced is a noise node with user friendly animation sliders, making it quick and easy to whip up some cool look dev, smoke, clouds, caustics, or whatever you like. No more typing in those expressions everytime you want to make a subtle tweak or test some different speeds.
By default, comes in exactly like a normal noise, and is revealing all the normal noise knobs.
I’ve added an extra ‘Overscan’ slider so you can extend the noise pattern beyond the format edges and not have to mess around if you need extra noise for your image overscan.
GradMagic is an interactive 4 point gradient tool, which can link to cornerpin nodes, and can toggle between live sampling from the plate or baking the color values of the corners.
Can be used for various tasks in prep and DMP,or if you just need a quick 4 point gradient map.
Quick Overview of the properties:
It’s pretty straight forward, heres some basic written steps:
1.) Set your cornerpoints manually or by pressing one of the ‘snap to’ buttons. Or alternatively you can link or bake your cornerpoints to an existing cornerpin node (or any node with 4 “to” knobs).
2.) If you need to adjust the points once they are baked/linked/ in place, then show the adjust knobs, set the reference frame to snap the adjust points near the main points, and you can then move each cornerpoint while it still retains its animation path.
3.) You can either keep the node live, bake the corner colors on a single frame, or bake the colors over a framerange. once baked you can adjust the cornerpoints further if you need to cover up more area. You can adjust the ‘sample size’ at the top if you want to average more colors under each corner point.
4.) Finally you can apply a blur to the edges to help with transition, and you can select the output at the top, whether to show the gradient over the BG input, or just the gradient itself.