Please forgive my poor english, but I’ll try to go over the way I comped our assignment, making extensive use of our shared render passes, so anyone can also improve their renders in post. First of all, I can’t guarantee these are the best ways to work each pass, these are the paths I chose, and please don’t say I’m responsible if there are any mistakes below. Oh, and feel free to disagree and correct me and my english!
Let’s get started.
Inside Nuke, the first thing you should do is set the project’s length and resolution. 1040 frames and 960×540 pixels.
First of all, when importing your footage, there is a great chance that Nuke will display an error for every missing frame in the viewport. On the read node for each file, there is an “Missing Frames” tab, just change it from “Error” to “Nearest Frame”. This will prevent the screen from flickering at EVERY frame.
From now on, I’ll go over each pass separately, but here’s an image of my whole tree (for both shots), in case you want to just check nodes, and try working them without the need to read what’s going on in each step.
Starting easy, with something we went through with the Render Layers tutorial, the Occlusion pass. We have three separate passes, for the set, Allie and the bug. The first one you should merge in is the one in the background, the set. The problem is: since Allie isn’t there, this pass will cast shadows over your characters. This calls for our Matte pass.
Since we don’t want the set’s occlusion over any of our characters, we’re using the Matte’s alpha channel as a mask for our merges. I’ve inserted a shuffle node there, but it’s not doing anything (just deleted, and I’m too lazy for new print screens). Also, since we’re casting shadows, remember to set the node’s operation to Multiply. On the first one (the set’s), we want to AVOID the areas contained in the alpha channel, so, in the Mask tab, be sure check the “Invert” box, otherwise your set occlusion will be applied ONLY to your characters.
On the second merge, Allie’s occlusion, we have information for her shadows even when she’s not showing up on the screen (like in the beginning of shot 1, when she’s behind the chair). Then, we need the alpha channel from the matte again. This time, we want the occlusion to be applied only to our character, which is represented by the green channel in the matte. Apply the Matte as a mask for this second merge as well, but from the dropdown menu, select rgba.green, instead of the default rgba.alpha.
The bug’s occlusion then comes on top of everything, without any need for a mask. The bug is never behind anything. The only situation where you have to turn off this occlusion is when Allie catches the bug in mid-air. If you don’t turn it down (key the mix slider to 0), then she’ll have a really weird shadow over her hands. Another option, if you’re too lazy to use keyframes, is just input the Matte’s green channel as a mask again, but this time checking the Inverted box, so it uses everything that is NOT the green channel.
Moving on to the second pass added to the main data pipe, we have the Rim render.
As Craig said in class, the rim shader is very useful when we want to enhance the visibility of our characters against a background. Adding the rim pass makes it seem as if you had more (and magical) lights in the scene. For better control, things are split in our favorite three colors. The Red rim shows up more on things facing the left/top of the screen, Blue is for right/top and Green comes straight from below.
When adding this pass, we can tone how much influence we want from each channel through the use of multiple shuffle and grade nodes. The shuffles are supposed to get rid of the other two channels, so you can work on the contrast for each of them separately. That’s why we have three shuffle nodes coming from the same input, and each of them has a grade node attached to it. Then, as the Red and Blue lights are the good ones for us, they’re merged together, with a Plus operation, since these are “light information” passes. The green channel must be removed from the image, and so, first has to be inverted, and then merged with a Multiply operation. This way you get rid of weird highlights at your character’s feet, or anything spilling as light coming from under the floor. This helps a lot with integration, as these “floor lights” are very unlikely to exist.
After merging the three back together, they go through another Grade node, called rimIntensity, where you can control the contrast for the overall effect.
I created a Constant with the color I wanted for the rimlight and then used a Copy node to get any of the color channels from my rimIntensity into the Constant’s alpha channel. Premultiplying this stream got rid of the extra color information in the frame. Since this is all light I’m adding to my frame, when merging this into the main data pipe, select a Plus or Screen operation.
Moving on to adding glow to the bug…
Using a constant as the “target” glow color, I did almost the same as in the previous section, using a Copy node to input the red channel from our Matte into the alpha channel of the Constant and then Premultiplying the result.
This one was pretty much covered in class, the only thing I added to it was doubling the glow nodes, so I could have to different light intensity halos, and keyed both of them in regular intervals in order to produce the blinking effect on the bug’s butt. When merging this one to the main stream, be sure to use the Plus operation as well.
Onto adding the lamp glow…
Third time doing kind of the same thing, no surprises here. The only thing to take into account is that the lamp matte covers Allie’s head during some frames, while she’s hanging up there. Use the Matte pass to cut her silhouette into it. I added a blur node to Allie’s matte because I wanted the feeling of light leaking around her edges, like the real world. If something is partially in front of a light source, you still get some flaring from it.
For the lamp, instead of having multiple glow nodes, I used blurs, shuffles and merges to get the shape I wanted for the lamp and its halo, and then repeated the Copy > Premult process, adding the glow on top of that. Merge that in with a Plus operation. Remember to key the mix out when the lamp goes off!
The following step is a personal correction, but can be useful.
My bug wasn’t properly lit by my thousand lights, and this was very noticeable as it came close to the camera, in the end of shot 1. Also, doesn’t make much sense to have an underexposed bug with a glowing butt. So I used the matte and an Erode node to apply a Grade and increase the gain only on the bug’s body.
We’re getting to the end, with the Depth pass.
Use the rendered images with a copy node and input any of its color channels into the depth.Z layer of the main data pipe with a Copy node. Then, on the ZDefocus node, set the “Depth Channel” as your recently created depth.Z layer. This node needs plenty of keyframes as the characters move, so use the focal point on the screen to set and key them properly. If you want to check your focus while you do it, on the “Output” tab, select “focal plane setup” instead of “result”. Whatever is green is in focus, red is closer to the camera, and blue is further.
You can also set values for your maximum blur and average blur. Be sure to UNCHECK the box that says “blur inside”. This doesn’t work properly and will end up making everything blurry, including your focused areas. Just be careful to not overdo the blur and make it look as a miniature house.
After you follow these steps for both shots, it’s time to put them together. I know Craig explained a different method, but I didn’t write it down and ended up forgetting it. So I used an Append node. It follows your input order, so just use Shot 1 as input one and Shot 2 as input 2, that you should be good. Placing a viewer after this node lets you see the whole animation stitched up together, and now you just need a Write node to render it out.
As a reference, mine took about 25 minutes to render, including lots of blur and everything above. It really doesn’t take long. If you survived Maya’s rendering, you’re more than fine now!