Written Tutorials

Nuke Node decorators and indicators

(Image courtesy of Nick Joseph)

Using Eclipse with Nuke

This tutorial will outline the steps to be taken to make Eclipse your Nuke IDE. Though the Nuke script editor has been improved recently, it's still worth looking for alternatives. Eclipse adds lots of extra features like auto completion, syntax checking or source exploration to make daily tasks easier to accomplish.…

Noise Curve

Random noise as a curve is something I use all the time for all sorts of things. Here is an expression which uses Nuke's noise function to generate random noise along a curve. I use this to drive random flicker, luminance shifts, transforms or even camera float or film weave.…

Working with Pipe Numbers

There are a couple of things to keep in mind when creating groups (and subsequently gizmos), if you want to maintain full control over the way the input pipes behave and thus how the flow of data in the tool is handled: Input name = pipe name.…

Camera Trigonometry

Here is a scribble for some camera trigonometry. Keep in mind that if you have an image / image sequence that corresponds to the camera (i.e. match move), then the horizontal  aperture and vertical aperture need to reflect the image aspect, otherwise your render won't match the scans.

10 tips to optimising Nuke and creating efficient workflows

1. B PIPE Keep every layer operation piping in to the B pipe stream (your main branch) - this means, among other benefits, you can dissable the merge and the image stream will still flow.…

RenderManager - BackBurner

Introduction This tutorial will lead you through configuring and using the nuke2backburner submission script. It was initially developed by Sebastian Elsner at RiseFX. For the purpose of this tutorial i have slightly modified the original script to ease configuration and setting of default values within the script. Here is the changelog from the script documenting the things i have changed.…

RenderManager - RenderPal

Introduction This article will teach you how to successfully setup RenderPal with Nuke, so you can build your own Nuke farm quickly and easily. But first lets consider why you would or woudn't want to use RenderPal as your render manager.…

Render Manager - Alfred

ALFRED Let’s start by the end.... To work, eg launch Nuke render jobs, Alfred needs to deal with some particular TCL script (alfredscript) describing a subset of commands with reserved and specific keywords. This script is ran by Alfred and the different commands are sent to different render boxes. We are using python commands in the alfredscript.…

Developing Nuke Plugins on Windows

Now that the Nuke distributions come with a standard Visual Studio solution to be used as a template for your own Plugins, it has become quite easy to set up your dev environment.…

Understanding UVMaps - Warping with STMap - Pt. 1

Here at RISE we started using UVMaps to apply camera lens distortion to matte paintings, cg renders and all sorts of footage when there was no (or at least no cheap) way to get the lens distortion value from your favourite 3D tracking application into Nuke.…

RenderManager - Qube!

In this short tutorial, I'll show you how to talk to the Qube! API within the Nuke interface for job submission. I will assume that you already have a running Qube! installation and that it is already capable of rendering Nuke jobs.…

Additive Keyer

Intro This is not a keyer, as it does not create a matte that is of use. It is more of a 'relative mixer' or image blending tool. It is very good for separating translucent fine details (such as motion blur, dust or hair) that a keyers with mattes might have difficulties extracting.…

Shake to Nuke, a transition guide - Part I: The Interface

Changing a piece of software you work with on a daily basis can be a frustrating experience at first.…

Understanding UVMaps - Warping with STMap - Pt. 2

Following the first tutorial for STMaps this second tutorial should give you some idea what else appart from recreating precise lens distortion warps you can do in Nuke using the same set of tools.…

Creating a 3D image plane

Many people wonder how to line up a 3D Card in  away that it fits the render camera's frustum perfectly and thus it's texture is unaltered in the render.…

Shake to Nuke node guide

This is a reference guide that I wrote in late 2007, and then posted on VFXTalk in about November of that year. As such, it's more based around Nuke 4.8, and I'm sure there's a good amount that probably should be updated.…

Shake to Nuke, a transition guide - Part II: Color Management

2. Color management in Nuke   In compositing, we often need to combine multiple elements from different sources (film scans, digital photographs, CG renders, digital video…).…

Shake to Nuke, a transition guide - Part III: Data Flow

3. Data flow   Visual indicators: Both Shake and Nuke are node-based compositing packages, so if you're used to working with Shake, you won't have too much trouble building and interpreting a script in Nuke. However, Nuke does provide a few more visual cues than Shake as to what's happening on each node.…

Shake to Nuke, a transition guide - Part IV: Operators (nodes)

4. OPERATORS (nodes) In this last part of the Shake to Nuke transition, I'll go through the different categories of nodes in Nuke, and outline some of the biggest differences you may find coming from Shake. For a full description of the available operators/nodes available in Nuke, the user manual is the best reference available.…

Using the nuke.math Python module to do Vector and Matrix operations

Nuke has its own python math module (nuke.math) that provides support for Matrix, Vector, and Quaternion classes, and useful functions to operate with them.

If you need to do any maths involving vector operations in Nuke (like adding or substracting vectors, transforming vectors with transformation matrices, calculating vector reflections, inverse-projecting a 3d vector into 2d screen coordinates, etc), then the nuke.math…

Render Manager - Deadline

Written by Mike Owen, Senior TD, Burrows Nvisage - www.burrows.info In this tutorial, I'll show you how to submit Nuke jobs to the Prime Focus (aka Frantic Films VFX) render management software known as "Deadline".…

Launching Nuke from the command line

I decided to write this simple and quick tutorial on how to Launch NukeX from the terminal since it took me a while to figure it out.  I am not very good with command-lines which is why it took my some time to figure this out. hopefully this will save you a lot of time.…

How to build an automatic Write node

Generally, most of the information needed for the output of a Nuke script is contained in it's name. We can reduce manual name-changing on behalf of comp artists and simultaneously increase consistency by creating a Write node that creates (and updates) it's own output path by parsing the script's name.…

Setting up Prman for Nuke 6.2 launched from the gui in OSX

Some people are having issues getting Prman working with Nuke 6.2. So this is a basic tutorial on setting up the proper environment variables you need.  This only works when Nuke is launced from the gui under osx.  I have a separate tutorial for getting it to work when you launch Nuke from the shell. 1.…

Setting up Prman for Nuke 6.2 launched from the shell in OSX/Linux

Lots of people are having issues getting Prman working with Nuke 6.2. So this is a basic tutorial on setting up the proper environment variables you need for launching Nuke from the shell under osx & linux. Bash Shell setup In a text editor create the file ".bash_profile" in your $HOME directory (/Users/yourUserName under osx or /home/yourUserName under linux) 1.…

Measuring Plugin Speed

This was recently discussed on the nuke-dev mailing list and some approaches were new to me, so I thought I would add all answers here: * Use the -P switch to pute nuke into performance mode * Have a test .nk (e.g Read->MyNode->Write) and compare times how long it takes to render on the command line with "nuke -x" *…

Rescuing Broken Nuke Scripts

Especially when using the Roto/Paint nodes it sometimes happens that scripts get broken. You then get messages like: "Missing close brace" or "Variable XY not defined" when opening files.…

Animating a sky in Nuke based on luminance

This is a little trick which I’ve been using for a few years.…

Create Deep Images for Nuke in Maya/Prman

Create Deep Images for Nuke in Maya/Prman Nuke's deep implementation can currently only uses .dtex files rendered out of Prman 15.2 or newer. In this example I will show you how to generate them out of Maya & Renderman Studio. Here is my scene full of 3d geometry Spheres Render Settings 1. Goto your "Render Settings" in Maya 2.…

The lens distortion model in the Card node explained

(The following information comes courtesy of one of the research engineers at the Foundry). The Card node implements the PtGUI lens model.…

Colour Smear for Nuke

This tutorial is from http://richardfrazer.com/tools-tutorials/ Smear out the edge colour of your A plate to create better soft edges. Works by blurring and un-premultiplying your image.…

The 'random' expression

Here you are a brief explanation of all controls in Nuke's random expression. This is the full function 'by default': (random(1,frame*1)*1)+0 or just simplified: random(1,frame) This creates a curve containing random values between 0 and 1.…

Concatenation of transforms in Nuke

A fairly common question among Nuke users is whether transformation nodes concatenate in Nuke, which nodes do and don't, and how can one tell.  The subject can be particularly confusing for artists who had used Shake before and liked the way it gave a visual clue of nodes that were concatenating.…

(sl)Edge Hammer to treat light wrap

The original version of this article can be viewed here Here’s a quick tip to help integrate composites where light wrap is causing a problem.…

Reassign keyboard shortcuts in Nuke6.3v8 -- now it's simple!

Now that Nuke 6.3v8 is out, the Foundry has given us a simple way to reassign keyboard shortcuts for items that are already in menus. This used to be rather complicated, but now it's easy. Here's how. As an example we'll reassign the Posterize node to the control-p shortcut.…

Stepping through Nuke python code using Wing IDE: Oooooh, does it work?

Troubleshooting python scripts in Nuke can be painful, especially when you are used to working in Visual Studio using breakpoints and stepping through code. So I was excited when Wing IDE announced that their latest version (4.1.8) supported debugging in Nuke. I downloaded the free trial and gave it a shot.…

Compositing Practices 101

Head over to my website sachadjordjevic.com and read the article here Cheers compers! - Sacha Djordjevic

Create motion blur effect using the motion vector pass

In this tutorial, you will create motion blur effect using the motion vector pass rendered from Maya and VectorBlur node. Figure 1 shows the input image and motion blur effect applied to an element in the scene. Figure-1 Step –1 Navigate to http://www.mediafire.com/?k5288w91eeo16 and download file to your hard drive. Next, extract the contents of the file.…

Pull a key using the IBKColor and IBKGizmo nodes

In this tutorial, you will pull a key using the IBKColor and IBKGizmo nodes. Figures 1 displays the input green screen image and final composite, respectively. Figure - 1 Step – 1 Navigate to http://www.hollywoodcamerawork.us/greenscreenplates.html and download Hair Detail clip. Next, extract content of zip file to your hard drive. Step – 2 Start a new script in Nuke.…

Working with deep images in Nuke 7

Nuke's powerful deep compositing tools set gives you ability to create high quality digital images faster. Deep compositing is a way to composite images with additional depth data. It helps in eliminating artifacts around the edges of the objects. Also, it reduces the need to re-render the image.…

Working with ZDefocus Node in Nuke 7

Part - I The ZDefocus node is a major upgrade to the ZBlur node. The ZDefous node is used to blur an image according to the depth map channel and gives you ability to simulate blur using depth of field. This node splits the input image into layers. All pixels have the same depth value within a layer.…

Debugging python code IN nuke with Eclipse (step through like a pro!)

Introduction This tutorial is intended for technical artists or developers who already know how to run Python scripts in Nuke. What is debugging? If you already know, skip on ahead. Debugging offers you the ability to pause code execution and interact with a live session.…

Accessing Nuke’s Write node advanced Compression Settings dialog with Python.

There are a couple different ways of working with the Compression Settings panel for setting up a Quicktime in Nuke’s Write node. Setting fps, quality & keyframe rate. Nuke adds 3 additional hidden knobs: ‘fps’, ‘quality’ & ‘keyframerate’ to the Write node after selecting ‘MOV’ as the file type.…

Expression Node 101

Introduction The expression node in nuke is a bit of a mystery for most people, but it's incredibly powerful.…

Creating a custom motion vector blur using trackers.

The original version of this article can be viewed here As a compositor, one of our daily tasks is to integrate plates of elements (dust, smoke, fire, water etc.) into our shots. Rarely do we get plates that were filmed specifically for the exact shot we are working on, so we rely on libraries of pre-filmed (stock) elements.…

Controlling the ShuffleCopy through Python

The shuffleCopy node might be one of the hardest things to grasp for new Nuke users. Throw a bit of python at it and I bet we could confuse even a seasoned user. Lets try a bit of code and see what we get.…

calculation for the transformation in world space

Matrix is very powerful. Especially "World matrix" is very useful to "bake animation" for exporting to the other softwares. There is pretty nice tutorial "Enter the Matrix Knob" in this nukepedia.com. Well, "Camera" node, "Light" node and "Axis" node have this "World matrix" knob. And "TransfromGeo" node doesn't have it in its property.…

calculation for the transformation in world space

Matrix is very powerful. Especially "World matrix" is very useful to "bake animation" for exporting to the other softwares. There is pretty nice tutorial "Enter the Matrix Knob" in this nukepedia.com. Well, "Camera" node, "Light" node and "Axis" node have this "World matrix" knob. And "TransfromGeo" node doesn't have it in its property.…

Keyframe Reduction script for Nuke

The original version of this article can be viewed here The problem I came across this issue when importing tracking data from PFTrack into Nuke, but it is equally relevant to tracking data create with a nuke Tracker node, or any animation data that gets "baked".…

Creating fast water reflection

Creating realistic water reflection Preview: When we were working on The Admiral, it become clear very soon, that we will have to deal with water reflection. As obvious, ocean reflection is quite complex, and although rendering reflection in Arnold is quite fast, it will never catch up with speed and efficiency of doing such a thing at compositing phase.…

Rebuilding bad frames using OFlow

The original version of this article (with video) can be viewed here THE PROBLEM This is a tool I recently built for helping fix footage that was shot on an octocopter. However, it could equally be used for any situation where you have footage that has good frames interspersed with bad frames i.e.…

Auto Cleanplate for Nuke

The original version of this article can be viewed here I was recently watching a demo of the Remove tool in Mocha Pro, which is a very powerful way of cleaning a foreground object out of the background of your plate.…

Using init.py to dynamically change a plugin path based on the version of Nuke that is launched

We purchased a plugin for our Nuke pipeline but it was a different file for Nuke 8{jcomments on}{jcomments off} and 9.  Unfortunately, the plugin was named the same for both versions meaning we couldn't just drop two different files in the plugins folder and have it sort out automatically.…

Roto Tip

Easily clean up difficult tracking markers without paint

When you work in a small company you have to constantly come up with fast solutions for tedious tasks, in this case tracking markers. I developed this workflow while working on a 1000+ frames plate where a marker was constantly intersecting with the actress's hair.…

Easily remove tracking markers

Easily remove tracking markers When you work in a small company you have to constantly come up with fast solutions for tedious tasks, in this case tracking markers. I developed this workflow while working on a 1000+ frames plate where a marker was constantly intersecting with the actress's hair.…

Creating VFX for Michiel de Ruyter

Introduction In this article for today, we will see step by step way how I have created one of the iconic shots for movie The Admiral / Michiel de Ruyter. The entire shot creation took 2 weeks.…

Expand Edge

hello my name is matt! one day a friend showed me this gizmo and today I will explain how it works :D It is similar to colour smear that you can find here: http://www.nukepedia.com/written-tutorials/colour-smear-for-nuke/ I really recommend looking at the colour smear tutorial to better understand how it works the idea is the same but instead of using blur and…

Parsing nuke.hotkeys() for Hotkey Viewer

This is my approach to make my Nuke Hotkey Tool.  https://vimeo.com/48127833   nuke.hotkeys() returns text. split '\n' and print repr()   Nuke has several menu 'Nuke', 'Nodes', 'Pane', 'Viewer' etc. menuItem is actual item under menu and menuItem can have shortcuts. looks like menuitem have '\t' and after '\t' hotkeys if exists. menu and menuItem hierachy is based on spaces.…

Parsing nuke.hotkeys() for Hotkey Viewer GUI

For GUI in Nuke, we need to .ui file using QT Designer. There is one I already made for typical keyboard but you can download it from my github and modify. https://github.com/hslth/NukeHotKey   I want our own pushbutton so let's promote it to other name I named it HotKeyButton.…

Restore any plate's original grain | Edited

How to restore the plate’s original grain after pulling a key     This technique is meant for instances where you might want to use a keyer’s pre-multiplied output instead of copying the finished alpha back to the original plate.     Most of the time we want to remove the noise/grain from our plates before attempting to a pull a key.…

simple clean screen using IBK colour with un-premult

Many of us using stack of IBK colour node with incremental of values to get clean Blue or Green screen. Example below image: Most cases 1 IBK color node will give good result. But in some shots we ended up stacking multiple IBK color node to get the clean screen(plate).…

Non-destructive clean-up work using difference grain & color stabilization technique

In this short tutorial I will share my clean-up technique/approach that I use on a daily basis. We will do a simple clean-up work – removing a “X20” sign from the camera.     Ideally you would want to affect only your clean-patch and not affect original plate in any way.…

Blackmagic Design LOG inside of Nuke

In this guide I hope I can help to better utilize Blackmagic Designs LOG-formats inside of Nuke. For this to work, we need a custom OCIOconfig. All default colourspaces will be maintained as well.…

Buttons to disable / enable nodes in batch

How to use: Copy the names of the nodes you need to disable, paste it in the "nodesToDisable" text box, separate them by comma.    Node: set cut_paste_input [stack 0] version 12.2 v5 push $cut_paste_input NoOp { name disableSlowNodes selected true xpos 2490 ypos 3615 addUserKnob {20 User} addUserKnob {1 nodesToDisable} nodesToDisable OpticalZDefocus,OpticalZDefocus1,VRayDenoiser1,VRayDenoiser2 addUserKnob {22 Enable T "n = nuke.thisNode()\['nodesToDisable'].getValue()\nn =…

Sample colour and fill the whole image

set cut_paste_input [stack 0] version 12.2 v5 push $cut_paste_input Expression { expr0 "\[sample this r colourPicker.x colourPicker.y sampleSize sampleSize]" expr1 "\[sample this g colourPicker.x colourPicker.y sampleSize sampleSize]" expr2 "\[sample this b colourPicker.x colourPicker.y sampleSize sampleSize]" expr3 1 name sampleColour selected true xpos -155 ypos 588 addUserKnob {20 ColourPicker l "Colour Picker"} addUserKnob {12 colourPicker} colourPicker {709 358} addUserKnob {16 sampleSize}…

Compositing Practices 101 / コンポジット実践 101

>>>> gd2md-html alert: inline image link in generated source and store images to your server. NOTE: Images in exported zip file from Google Docs may not appear in the same order as they do in your doc. Please check the images! -----> Compositing Practices 101 / コンポジット実践 101 Written by Aleksandar Djordjevic on 16 November 2012.…