Nuke
Nuke
Nuke
VERSION 11.3v5
Nuke™ 11.3v5 Online Help. Copyright © 2019 The Foundry Visionmongers Ltd. All Rights Reserved. Use of this document and the Nuke
software is subject to an End User License Agreement (the "EULA"), the terms of which are incorporated herein by reference. This
document and the Nuke software may be used or copied only in accordance with the terms of the EULA. This document, the Nuke
software and all intellectual property rights relating thereto are and shall remain the sole property of The Foundry Visionmongers Ltd.
("The Foundry") and/or The Foundry's licensors.
The Foundry assumes no responsibility or liability for any errors or inaccuracies that may appear in this document and this document is
subject to change without notice. The content of this document is furnished for informational use only.
Except as permitted by the EULA, no part of this document may be reproduced, stored in a retrieval system or transmitted, in any form
or by any means, electronic, mechanical, recording or otherwise, without the prior written permission of The Foundry. To the extent that
the EULA authorizes the making of copies of this Reference Guide, such copies shall be reproduced with all copyright, trademark and
other proprietary rights notices included herein. The EULA expressly prohibits any action that could adversely affect the property rights
of The Foundry and/or The Foundry's licensors, including, but not limited to, the removal of the following (or any other copyright,
trademark or other proprietary rights notice included herein):
Nuke™ compositing software © 2019 The Foundry Visionmongers Ltd. All Rights Reserved.
Primatte™ keyer tool © 1997-2019 Photron USA, Inc. All Rights Reserved.
In addition to those names set forth on this page, the names of other actual companies and products mentioned in this User Guide
(including, but not limited to, those set forth below) may be the trademarks or service marks, or registered trademarks or service marks,
of their respective owners in the United States and/or other countries. No association with any company or product is intended or
inferred by the mention of its name in this User Guide.
ACADEMY AWARD ® is a registered service mark of the Academy of Motion Picture Arts and Sciences.
Mac, Mac OS X, macOS, Sierra, High Sierra, Mojave, Shake, Final Cut Pro, and QuickTime are trademarks of Apple, Inc., registered in the
U.S. and other countries.
Adobe ® and Photoshop ® are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or
other countries.
Maya ® is a registered trademark of Autodesk, Inc., in the USA and other countries.
Thank you to Diogo Girondi for providing icons for the Nuke user interface and Tim Baier for proofreading.
The Foundry Visionmongers Ltd.
5 Golden Square
London
W1F 9HT
UK
Nuke Products 81
About Nuke 82
About NukeX 83
Key Concepts 88
Channel Operations 90
Compositing in 3D 91
Operating Systems 93
Windows 94
System Requirements 94
Launching on Windows 99
Nuke Analytics 99
Linux 124
Panning 173
Animated Parameters in the Dope Sheet and the Curve Editor 195
Shots 258
Histogram 314
Waveform 316
Vector 318
Changing the Relation Between the Current Frame and the Frame
Read In 340
Using Expressions 340
Specifying a Start Frame for a Clip 341
Offsetting All Frames by a Constant Value 341
Channels 375
Introduction 375
Channels 377
Layers 377
View 440
Status 441
View 443
Status 443
Biasing 448
Tuning 455
Dilate 457
Softness 457
Despot 458
Mattes 459
Inside and Outside Masks 460
Edges 463
Auto-Compute 469
3D Sample 494
Transforming in 2D 641
Warping 667
Morphing 686
Morphing One Image into Another Using the GridWarp Node 687
Morphing One Image into Another Using the SplineWarp Node 689
Using the cookie-cutter to create traveling masks 691
Interpolation 702
Frame-Blending 702
Histogram 720
Waveform 723
Vectorscope 724
Introduction 811
3D Compositing 818
Overview 818
Lighting 898
Cameras 919
Selecting the View to Process When Using the RotoPaint Node 982
Metadata 1023
Viewing Metadata 1025
Modifying the Audio Curve in the Curve Editor and Dope Sheet 1038
Specifying a Frame Number for the First Frame in the Clip 1076
On Windows 1132
On Mac 1132
On Linux 1133
Examples 1140
Using [argv 0] 1141
Using Python to convert TIFFs to JPEGs 1142
Expressions 1214
Annotations 1380
Workflow 1380
Transcoding 1465
VectorGenerator 1488
Kronos 1493
MotionBlur 1506
Introduction 1548
Prerequisites 1681
UV Unwrapping 1712
PrmanRender 1753
Introduction 1763
Parameters 1765
Introduction 1766
Response 1769
Parameters 1772
Introduction 1776
Background 1777
FurnaceCore 1777
Tracker 1779
Tracking 1782
Introduction 1790
Controls 1794
Widgets 1796
Introduction 1797
Parameters 1801
Introduction 1803
Occlusions 1806
Parameters 1808
Parameters 1814
GPU 1829
Introduction 1833
Epilogue 1874
Introduction 1875
Epilogue 1893
Introduction 1894
Rotoscoping 1906
Epilogue 1911
Introduction 1912
Epilogue 1939
Appendices 1940
General 1941
Performance 1947
Behaviors 1957
Panels 1962
Conventions 1979
Global 1980
Roto/RotoPaint 2005
Notes 2007
Learn about the different products and modes of Nuke as well as some key concepts, everything you
should know before using Nuke products.
Find out how to install and license Nuke on Windows, Mac, and Linux to the point where you have the
application in front of you and are ready to start work.
Comp Environment
Discover the basics of Nuke's compositing environment, designed to streamline day-to-day workflow.
Flexible, efficient and feature packed, this toolset delivers film-grade results, fast.
Timeline Environment
Explore Nuke Studio's timeline environment allowing you to conform, review, edit, and even create
and render compositions from the timeline.
USER GUIDE
80
Meet the Nuke Product Family
These pages introduce the different products and modes of Nuke and provide links to some key
concepts you should know before using Nuke products.
Nuke Products
The Nuke products have different purposes and different levels of functionality.
Nuke Studio is a product that combines the functionality of all the Nuke products listed below, which
are then used as different modes in which to run Nuke Studio. It also includes its own specific
functions that are only applicable to Nuke Studio.
All the Nuke products listed below can also be licensed as separate products, except for Nuke Assist,
which is included with NukeX and Nuke Studio.
See About NukeX and the Advanced Compositing with NukeX and Nuke Studio section for more
information.
• Nuke Studio- the most powerful application in the Nuke product family, it includes all the
functionality of Nuke and NukeX with the addition of timeline and conform workflows.
• Nuke Assist - a feature of NukeX intended for use as a workstation for artists performing painting,
rotoscoping, and tracking. Two complementary licenses of Nuke Assist are included in every NukeX
maintenance package. Nuke Assist only supports a limited subset of Nuke tools.
See About Nuke Assist for a run down of the functionality provided by Nuke Assist.
• Nuke Non-commercial - a special version of the commercial Nuke application that you can run
without a license, intended for use as an educational tool.
See About Nuke Non-commercial for a run down of the restrictions placed on using the non-
commercial version.
USER GUIDE
81
About Nuke |
About Nuke
When you purchase Nuke, it contains all the Nuke products as different modes. For example, you can
choose to run Nuke in NukeX mode, or Nuke Non-commercial mode.
Mode Description
Nuke Studio Includes the Timeline environment and Compositing environment, and has
some additional Nuke Studio specific features, such as the ability to create a
Nuke Comp, add soft effects to the timeline, and the annotations menu. Nuke
Studio combines the tools and abilities of Nuke, NukeX, and Hiero.
For more information about Nuke Studio, see Nuke Studio Environments.
NukeX Just like Nuke, a single shot compositor (what is referred to as the
Compositing environment in Nuke Studio), with additional tools such as
CameraTracker, DepthGenerator, FurnaceCore, Kronos, and so on.
Nuke Assist Provides basic tools including Bezier, Draw, Roto, and so on. The Nuke Assist
mode is intended for use as a workstation for artists performing painting,
rotoscoping, and tracking.
Nuke Non- This mode is intended for personal and educational use. It includes all the
commercial features of the commercial version of Nuke, offering you a chance to explore
and learn the application fully while using it from the comfort of your own
home.
USER GUIDE
82
About NukeX |
About NukeX
When using NukeX, you have all the features of Nuke in use, plus the following:
• CameraTracker
• DepthGenerator
• FurnaceCore
• Kronos
• LensDistortion
• MotionBlur
• ModelBuilder
• Particles
• PlanarTracker
• PointCloudGenerator
• PoissonMesh
• PrmanRender
• ProjectionSolver
• VectorGenerator
Nuke and NukeX are fully compatible, with Nuke capable of viewing and rendering - but not editing -
NukeX features.
USER GUIDE
83
About Nuke Assist |
Image
Read Viewer
Draw
Roto RotoPaint
Note: Bezier is only available through the X menu. Press X in the Node Graph and then
enter Bezier as a Tcl command to add the node.
Time
TimeOffset
Channel
Shuffle ShuffleCopy
Color
USER GUIDE
84
About Nuke Assist |
Filter
Blur
Keyer
Keyer
Merge
Transform
Views
Metadata
ViewMetadata
Other
Note: You cannot render output using Write nodes in Nuke Assist.
You can load projects created in Nuke's other modes and work as normal, within the constraints of
Nuke Assist. The Viewer renders the output of the node tree whether the components are supported
or not. Any unsupported nodes and plug-ins in the Node Graph are outlined in red and their controls
are grayed out. You cannot modify the output of unsupported nodes and plug-ins.
USER GUIDE
85
About Nuke Assist | Using Gizmos, Groups, Precomps, Knobs, and Python
Tip: For more information on node trees and node-based compositing, see Understanding
the Workflow.
Note: Nuke Assist allows the creation of custom knobs, but they can't be edited.
Python scripts work as usual for nodes that are supported by Nuke Assist, but any attempt to add
unsupported nodes displays an error message in the Script Editor output section, or terminal (in -t
mode).
For example, executing nuke.createNode('Transform') adds a Transform node to the Node Graph,
but nuke.createNode('Convolve') prints the following error:
# Result:
Traceback (most recent call last):
File "<string>", line 1, in <module>
RuntimeError: Convolve is not available in Nuke Assist
USER GUIDE
86
About Nuke Non-commercial | Using Gizmos, Groups, Precomps, Knobs, and Python
You can run Nuke, NukeX, and Nuke Studio in non-commercial mode using the --nc command line
argument. For example, to launch Nuke Studio in non-commercial mode on Mac, enter:
Nuke Non-commercial is a fully functional version of Nuke, but as it's designed for non-commercial
use only, it does differ from the commercial version in some aspects. Here are the main differences:
• Certain nodes are disabled in Nuke Non-commercial, including BlinkScript, GenerateLUT, Primatte,
Ultimatte, and WriteGeo.
• Rendered output is restricted to 1920x1080 HD and the MPEG4 and H.264 formats are disabled.
• command line renders are restricted to encrypted .nknc scripts.
• Frame Server slave rendering is disabled.
• Exporting EDL/XML sequences is disabled.
• Exporting LUTs from MatchGrade is disabled.
• Gizmos, clipboard contents, .hrox project files, and .nk scripts are all encrypted.
• Monitor Output is disabled.
In other respects, Nuke Non-commercial contains all the functionality of the commercial version of
Nuke.
USER GUIDE
87
Key Concepts | Understanding the Workflow
Key Concepts
Nuke products are a resolution-independent compositing system, with extensive channel support,
powerful image manipulation tools, and a rich 3D compositing environment. This section explains
concepts you should know before using Nuke products.
You can open a Nuke comp file in a text editor, and a series of sequential commands are displayed,
which are interpreted and executed when you render the output.
USER GUIDE
88
Key Concepts | Working with Multiple Image Formats
In the image above, you see an example of a very simple Nuke script. Two Read nodes reference
media on disk. Effect nodes extract a matte and blur an image. A Merge node set to over, composites
the foreground image (input A) over the background image (input B). Finally, a Write node renders
and outputs the completed composite to disk. There is also a Viewer node, which displays the output
of any node in the script.
Note: Nuke Assist does not support Write nodes or render farms. See Nuke Products for
more information.
USER GUIDE
89
Key Concepts | Channel Operations
Note: Nuke Assist does not support Colorspace or Log2Lin nodes. See Nuke Products for
more information.
There are no restrictions on image resolution - you can freely mix and scale elements of any
resolution within the same script. You can, for example, use a 2k film plate as the background for
video shot in PAL format, and then output the result in HD1080i. Nuke products automatically adjust
their Viewers to accommodate the image you’re viewing.
Channel Operations
In Nuke products, you can assign the output of each node as new channels, and pass them to the
next node in the script. When you need to re-use a particular channel (say, to apply a color correction
to the hair), you simply choose the channel containing the matte from the downstream color-
correction node.
Nuke products support up to 1023 channels of image data. This provides additional benefits when
working with computer-generated (CG) elements, especially when such elements are rendered out in
the OpenEXR format.
For example, your 3D department could render out multiple lighting passes for a particular CG
element (beauty, fill, backlight, reflection, shadow, etc.) as an .exr sequence, which you could then
read into a Nuke script, or comp. You would be able to access all of the render passes stored within
the .exr sequence from any downstream node in your script.
You might choose to color correct only the CG element’s highlights by using the specular pass as a
mask to a particular color correction operator. Such an approach again has the advantage of keeping
the Nuke comp free of unnecessarily complex branching - virtually all render passes and mattes can
be passed through a single pipe in the comp.
USER GUIDE
90
Key Concepts | 8-, 16-, and 32-Bit Image Processing
The Channels chapter explains how to take full advantage of the 1023-channel workflow.
For Nuke products, which began as a film effects tool, image quality is paramount. Thus, they support
the processing of exclusively 32-bit-per channel elements (elements with lower bit depths are
converted to 32 bits per channel upon import). Thirty-two bit support allows for a much richer palette
of colors and floating point precision in all script calculations. In practice, this means that Nuke
products carry out every operation - from an increase in gamma to a transform - with much greater
accuracy than a lower-bit-depth system.
Compositing in 3D
Some digital compositing systems support a strictly two-dimensional workflow. Nuke products, by
contrast, offer a robust 3D workspace that lets you create and render complex scenes composed of
polygonal models, cards (planes textured with images), cameras, lights, and textures.
This 3D workspace has countless uses, the simplest of which is generating pan-and-tile scenes. These
are scenes with 2D image planes arranged into a curved shape, and then rendered out through an
animated camera to give the illusion of a seamless environment.
The 3D Compositing chapter explains how to make full use of Nuke’s 3D workspace.
USER GUIDE
91
Key Concepts | Render Farms and Frame Servers
In addition, Nuke Studio ships with an internal Frame Server, which also allows you to setup external
slave machines to process renders faster. See Using the Frame Server on External Machines for more
information.
Note: Nuke Assist does not support Write nodes, render farms, or the Frame Server. See
Nuke Products for more information.
USER GUIDE
92
Installation and Licensing
We know the installation and licensing of a new application can be a boring task that you just want to
be done with as soon as possible. To help you with that, this chapter guides you to the point where
you have the application in front of you and are ready to start work.
Operating Systems
To see the installation and licensing instructions for your operating system, go to:
• Windows,
• Mac OS X and macOS, or
• Linux.
Note: For more information on the differences between the Nuke applications, see Nuke
Products.
USER GUIDE
93
Windows | System Requirements
Windows
These pages guide you through installation and licensing to the point where you have the application
in front of you and are ready to start work. After installation, all applications are run from either
desktop icons, the browser, or from the command line using arguments.
System Requirements
• Windows 7 64-bit
• Windows 10 64-bit
Note: Other operating systems may work, but have not been fully tested.
Note: To avoid graphical problems, such as text disappearing in the Viewer and Node
Graph, it is important to keep your graphics card drivers up-to-date. Driver updates can be
USER GUIDE
94
Windows | Requirements for GPU Acceleration
obtained from the websites of the graphics card manufacturers (for example,
www.nvidia.com and support.amd.com).
Note: If you’re using R3D Rocket graphics card, note that using it with Foundry applications
will most likely only be considerably faster when you’re reading in at full resolution. If you’re
reading in at half resolution, for instance, disabling the R3D Rocket card may be faster. This
is because the R3D Rocket graphics card is designed to be fast when reading in multiple
frames at the same time. This is not how Nuke works internally, and therefore reads with the
R3D Rocket card disabled may sometimes be faster when working in lower resolutions (< 4K
widths). Note that the R3D Rocket card always produces better results than Nuke when
downsampling. Also, the R3D Rocket card can only be used by one application at a time, so if
you are viewing multiple Nuke comps at once, you may only be able to use the R3D Rocket
card in one.
NVIDIA
• An NVIDIA GPU with compute capability 2.0 (Fermi) or above. A list of the compute capabilities of
NVIDIA GPUs is available at www.nvidia.co.uk/object/cuda_gpus_uk.html
Note: The compute capability is a property of the GPU hardware and can't be altered by a
software update.
• Graphics drivers capable of running CUDA 8.0 & 6.5 or above. These are bundled with the regular
drivers for your NVIDIA GPU. Driver version r361 or above is required.
Note: If your computer enters sleep mode, the CUDA drivers cannot recover and you must
restart Nuke to use GPU acceleration.
USER GUIDE
95
Windows | Requirements for GPU Acceleration
AMD
An AMD GPU and recommended driver from the following list:
Card Driver
Note: Other AMD GPUs may work, but have not been fully tested.
Multi-GPU Processing
Nuke's GPU support includes an Enable multi-GPU support option. When enabled in the
preferences, GPU processing is shared between the available GPUs for extra processing speed.
Note: Multi-GPU processing is only available for identical GPUs in the same machine. For
example, two NVIDIA GeForce GTX 1080s or two AMD FirePro W9100s.
USER GUIDE
96
Installing on Windows | Installing with the User Interface (UI)
Installing on Windows
The installation bundle installs the entire Nuke family, including Hiero and HieroPlayer, and icons for
the various components appear in your installation folder.
Note: Some modern anti-virus software may wrongly assume that certain files in the Nuke
installer are suspicious. Examples of these files include libnuke-12.0.0.so and geolib-
runtime-prof.so. If you have trouble installing Nuke on your machine, try disabling your
anti-virus software before installation. Don't forget to restart your anti-virus software after
installation.
Note: On Windows, if you install Nuke to a network drive to run from multiple computers,
please ensure that the correct Microsoft run time libraries are installed on each machine
that runs Nuke. To do this, run vcredist_x64.exe on each machine. The appropriate one of
these files can be found in the VCRedist subdirectory in the folder where Nuke is installed.
Running Nuke without installing the libraries on your machine may work correctly,
particularly as many systems (such as Windows Vista by default) already have them. If the
libraries are not present, Nuke can still run correctly, but some plug-ins may fail to load with
error messages such as “This application has failed to start because the application
configuration is incorrect. Reinstalling the application may fix this problem.”
Please note that these libraries are set up automatically on the machine that runs the Nuke
installer, so users installing on their local machine do not need to worry about this issue.
USER GUIDE
97
Installing on Windows | Installing from the Command Line
Tip: You can add /MERGETASKS="!desktopicon" to the /verysilent flag to avoid creating
Desktop icons for all the flavors of Nuke.
Note: By using the silent or verysilent install options, you agree to the terms of the Nuke
End User Licensing Agreement. To see this agreement, please refer to Foundry's End User
License Agreement or run the installer in standard, non-silent mode.
USER GUIDE
98
Launching on Windows | Nuke Analytics
Launching on Windows
To launch the application on Windows, do one of the following:
• Double-click the required icon on the Desktop.
• Navigate to Start > All Programs > The Foundry > Nuke11.3v5 and select the required application.
• Using a command prompt, navigate to the Nuke application directory (by default, \Program
Files\Nuke11.3v5) and enter:
• Nuke11.3.exe --studio to launch Nuke Studio.
• Nuke11.3.exe --nukex to launch NukeX.
• Nuke11.3.exe to launch Nuke.
• Nuke11.3.exe --hiero to launch Hiero.
• Nuke11.3.exe --player to launch HieroPlayer.
• Nuke11.3.exe --nukeassist to launch Nuke Assist.
Note: Nuke Assist licenses are only available as part of the NukeX or Nuke Studio package,
and cannot be purchased separately. For more information, see About Nuke Assist.
Tip: For more information on other command prompt options, such as safe mode, see
Command Line Operations.
If you already have a valid license, the graphical interface appears, and a command line window
opens. If you don't have a license or haven't installed one yet, proceed to Licensing on Windows.
Nuke Analytics
In an effort to further improve quality and reliability, we ask you to allow us to collect usage statistics
from the machines on which you license Nuke, NukeX, Nuke Studio, Hiero, and HieroPlayer. This
usage information also assists our Support team to resolve issues more quickly.
Note: The port number used to communicate with Foundry is 443, the same one used for
uploading crash reports.
USER GUIDE
99
Launching on Windows | Nuke Non-commercial
The first time you start an application, and on every major release, a dialog displays asking for
permission for us to collect this information. You can enable or disable collection at any time in the
Preferences under Behaviors > Startup.
Note: This information is only collected for interactive sessions. Running applications in
terminal mode or under render licenses does not upload data to Foundry.
The following list shows the information we'll collect, if you give us permission to do so:
• Unique session ID • Anonymous user key • Application version string
• Application name • Session start time (GMT) • Session duration (in seconds)
• If the session exited cleanly • Peak memory usage • Model
• Operating system • System OS version • MAC address
• CPU Name • CPU Cores • GPU model name
• Amount of GPU RAM • OpenGL driver version • GPU driver version
• Amount of RAM • Memory speed
Nuke Non-commercial
If you want to try out or learn Nuke, you can run Nuke Non-commercial. This version allows you to
explore most of Nuke’s features, but prevents the commercial use of the application. For more
information, see About Nuke Non-commercial.
If you have already activated Nuke Non-commercial on the current device, the graphical interface
appears, and a command line window opens. If you haven't activated the device yet, proceed to
Licensing Nuke Non-commercial on Windows.
USER GUIDE
100
Licensing on Windows | Obtaining Licenses
Licensing on Windows
The following licensing methods are available:
• Activation Keys - activation keys allow you to activate and generate your actual product license key,
at a later point after purchase, on the machine for which you require the license.
They are provided for both node locked and floating licenses, and generate the appropriate license
type once installed using the product's Licensing dialog or online using the Activate a Product page:
https://www.foundry.com/licensing/activate-product
• Node Locked Licenses - these can be used to license an application on a single machine. They do
not work on different machines and if you need them to, you’ll have to transfer your license.
Node locked licenses, sometimes called uncounted licenses, do not require additional licensing
software to be installed.
• Floating Licenses - also known as counted licenses, enable applications to work on any networked
client machine. The floating license is put on the server and is locked to a unique number on that
server.
Floating licenses on a server requires additional software to be installed on the server to manage
the licenses and give them out to the client stations that want them. This software is called the
Foundry Licensing Tools (FLT) and can be downloaded at no extra cost from our website.
• Subscription Licenses - subscription licensing differs from traditional node locked or floating
licenses in that a single license, or entitlement, is valid on any authorized device up to the
entitlement's maximum number of activations.
For more information on Subscription Licensing, see Licensing Nuke Non-commercial on Windows.
The following instructions run through the basic options for the first two licensing methods, but you
can find a more detailed description in the Foundry Licensing Tools (FLT) User Guide available on our
website: https://www.foundry.com/licensing
Obtaining Licenses
To obtain a license, you'll need your machine's System ID (sometimes called Host ID or rlmhostid).
Just so you know what a System ID number looks like, here’s an example: 000ea641d7a1.
USER GUIDE
101
Licensing on Windows | Installing Licenses
Note: Bear in mind that, for floating licenses, you'll need the System ID of the license
server, not the machines on which you intend to run the application.
There are a number of ways you can find out your machine's System ID:
• Launch the application without a license, click Status, and then scroll down the error report until
you see your System ID.
• Download the Foundry License Utility (FLU) from https://www.foundry.com/licensing and run it.
Your System ID is displayed.
• Download the Foundry Licensing Tools (FLT) free of charge from https://www.foundry.com/licensing
and then run C:\Program Files\TheFoundry\LicensingTools7.0\ Foundry License Utility.exe
When you know your System ID, you can request a license for Foundry products:
• from Foundry's Sales Department at sales@foundry.com
• from the product pages on our website, such as https://www.foundry.com/products/nuke
• by launching the application without a license and selecting:
• Buy Nuke or Buy Hiero - opens a web browser directly to our website to purchase a license.
• Try Nuke or Try Hiero - displays the 15-day trial license download screen. Enter your Foundry
account details or create a new account and follow the on-screen instructions to receive a trial
license.
Note: By default, if you have installed a temporary license, the application displays a dialog
at start-up alerting you to the number of days remaining. If you want to disable this
behavior, you can set the FN_DISABLE_LICENSE_DIALOG environment variable to 1 to
suppress the warning message about imminent license expiration. See Environment
Variables for more information.
Installing Licenses
When you start the application before installing a license, a Licensing dialog displays an error
informing you that no license was available. The installation process is dependent on what type of
license you requested:
• License file - if you requested a license file, typically foundry.lic, this option allows you to browse
to the file location and install it automatically. See To Install a License from Disk for more
information.
USER GUIDE
102
Licensing on Windows | Installing Licenses
• Activation Key or license text - if you requested an Activation Key or license by email, this option
allows you to paste the key or license text into the Licensing dialog, which then installs the license in
the correct directory. See To Install an Activation Key or License Text for more information.
• A floating license - if you requested a floating license to supply licenses to multiple client
machines, this option allows you to enter the server address that supplies the client licenses.
Note: You must install a floating license and additional software on the license server to use
this option.
USER GUIDE
103
Licensing on Windows | Installing Licenses
Note: Activation Keys require an internet connection. If you access the internet through a
proxy server and cannot connect to the activation server, you may get an error dialog
prompting you to either:
Click Use Proxy to enter the proxy server name, port number, username, and password.
This enables the application to connect to the activation server and obtain a license. The
license is then installed automatically, or
Click on the web link in the dialog and use the System ID (also known as hostid) provided to
manually activate and install a license.
1. Make sure you have saved both the license key (foundry.lic) and the FLU application in the same
directory.
2. Run the FLU application.
The license key automatically appears in the FLU window if the FLU and foundry.lic are in the
same directory.
Tip: If they are not in the same directory, you can either copy and paste the contents of the
license key or drag-and-drop the file into the FLU window.
3. Click Install.
This checks the license file and, provided that the license is valid, installs it into the correct
directory.
4. In order for the floating license to work, you will need to install the Foundry Licensing Tools (FLT)
on the license server machine.
USER GUIDE
104
Licensing on Windows | Further Reading
For more information on how to install floating licenses, refer to the FLT User Guide, which you can
download from our website https://www.foundry.com/licensing
5. Once your license server is up and running, launch the application on the client machine.
The Licensing dialog displays.
6. Click Install License to display the available install methods.
7. Click Use Server and enter the server address in the field provided. The format for the server
name is: <port>@<servername>, for example, 30001@red.
Note: You must perform steps 5 through 7 on each client machine that requires a license
from the server.
Further Reading
There is a lot to learn about licenses, much of which is beyond the scope of this manual. For more
information on licensing, displaying the System ID number, setting up a floating license server,
adding new license keys and managing license usage across a network, you should read the Foundry
Licensing Tools (FLT) User Guide, which can be downloaded from our website,
https://www.foundry.com/licensing
USER GUIDE
105
Licensing Nuke Non-commercial on Windows | Further Reading
For example, if an Entitlement for Nuke has five activations, you can use Nuke on five separate
Authorized Devices simultaneously. If you want to activate another device, you have to deactivate an
existing one, but you can activate and deactivate devices as often as you like.
Note: Replace <username> and <SystemID> with the current user and the MAC address of
the device, respectively.
Note: On Windows, there is a known issue with user names containing non-ASCII characters
causing licensing to fail. If a licensing error similar to the following displays:
Unable to create subscription license directory: C:\Users\Zoë
USER GUIDE
106
Licensing Nuke Non-commercial on Windows | Further Reading
Hernández\FoundryLicensing\
Try changing the license directory to an alternate location using the FN_SUBSCRIPTION_
LICENSE_DIR environment variable. See Environment Variables for more information.
7. If you need to deactivate an entitlement or deauthorize a device, navigate to Help > License and,
click:
• Deactivate Nuke to reclaim one of your entitlements,
• Deauthorize Device to reclaim your existing Foundry entitlements on this device and stop
additional ones running, or
• Deauthorize All Devices to reclaim your existing Foundry entitlements on all devices
associated with your account, and stop additional ones running.
USER GUIDE
107
Uninstalling Apps on Windows | Further Reading
USER GUIDE
108
Mac OS X and macOS | System Requirements
System Requirements
Note: Other operating systems may work, but have not been fully tested.
Note: To avoid graphical problems, such as text disappearing in the Viewer and Node
Graph, it is important to keep your graphics card drivers up-to-date. Driver updates can be
USER GUIDE
109
Mac OS X and macOS | Requirements for GPU Acceleration
obtained from the websites of the graphics card manufacturers (for example,
www.nvidia.com and support.amd.com).
Note: If you’re using R3D Rocket graphics card, note that using it in Nuke will most likely
only be considerably faster when you’re reading in at full resolution. If you’re reading in at
half resolution, for instance, using Nuke without the R3D Rocket card enabled may be faster.
This is because the R3D Rocket graphics card is designed to be fast when reading in multiple
frames at the same time. This is not how Nuke works internally, and therefore reads with the
R3D Rocket card disabled may sometimes be faster when working in lower resolutions (< 4K
widths). Note that the R3D Rocket card always produces better results than Nuke when
downsampling. Also, the R3D Rocket card can only be used by one application at a time, so if
you are viewing multiple Nuke scripts at once, you may only be able to use the R3D Rocket
card in one.
NVIDIA
An NVIDIA GPU with compute capability 2.0 (Fermi) or above. A list of the compute capabilities of
NVIDIA GPUs is available at:
www.nvidia.co.uk/object/cuda_gpus_uk.html.
Note: The compute capability is a property of the GPU hardware and can't be altered by a
software update.
Graphics drivers capable of running CUDA 8.0 & 6.5 or above. On Mac, the CUDA driver is separate
from the NVIDIA graphics driver and will need to be installed, if you don't have it already. The
minimum requirement is driver version r361 which can be downloaded from
www.nvidia.com/drivers.
USER GUIDE
110
Mac OS X and macOS | Requirements for GPU Acceleration
Note: If your computer enters sleep mode, the CUDA drivers cannot recover and you must
restart Nuke to use GPU acceleration.
AMD
On Mac, AMD GPUs are supported on any Mac Pro running Mac OS X Mavericks (10.9.3 ), mid 2015
MacBook Pros onward, and late 2017 iMac Pros. Bit-wise equality between GPU and CPU holds in
most cases, but for some operations there are limitations to the accuracy possible with this
configuration.
Warning: Although AMD GPUs are enabled on Mac Pros manufactured prior to the late
2013 model, they are not officially supported and used at your own risk.
Note: To ensure you get the best performance from OpenCL GPUs, we recommend
updating Mavericks to 10.9.5, or above for full functionality. However:
If you're running an earlier version of Mac OS X than 10.9.5 and processing images greater
than 4 mega pixels resolution, VectorGenerator, Kronos, and MotionBlur do not support
GPU acceleration.
If you're running an earlier version of Mac OS X than 10.9.4, Kronos and MotionBlur do not
support GPU acceleration.
Multi-GPU Processing
Nuke's GPU support includes an Enable multi-GPU support option. When enabled in the
preferences, GPU processing is shared between the available GPUs for extra processing speed.
Note: Multi-GPU processing is only available for identical GPUs in the same machine. For
example, two NVIDIA GeForce GTX 1080s or two AMD FirePro W9100s.
USER GUIDE
111
Installing on Mac | Installing with the User Interface (UI)
Installing on Mac
The installation bundle installs the entire Nuke family, including Hiero and HieroPlayer, and icons for
the various components appear in your installation folder.
Note: Some modern anti-virus software may wrongly assume that certain files in the Nuke
installer are suspicious. Examples of these files include libnuke-12.0.0.so and geolib-
runtime-prof.so. If you have trouble installing Nuke on your machine, try disabling your
anti-virus software before installation. Don't forget to restart your anti-virus software after
installation.
USER GUIDE
112
Installing on Mac | Installing from the Terminal
Note: By running a silent install of Nuke, you agree to the terms of the End User Licensing
Agreement. To see this agreement, please refer to Foundry's End User License Agreement or
run the installer in standard, non-silent mode.
USER GUIDE
113
Launching on Mac | Nuke Analytics
Launching on Mac
To launch the application on Mac, do one of the following:
• Double-click the required icon on the Desktop.
• Open the Nuke application directory (/Applications/Nuke11.3v5/), and double-click the required
icon.
• Using the terminal, navigate to the Nuke application directory
(/Applications/Nuke11.3v5/Nuke11.3v5.app/Contents/MacOS/) and enter:
• ./Nuke11.3v5 --studio to launch Nuke Studio.
• ./Nuke11.3v5 --nukex to launch NukeX.
• ./Nuke11.3v5 to launch Nuke.
• ./Nuke11.3v5 --hiero to launch Hiero.
• ./Nuke11.3v5 --player to launch HieroPlayer.
• ./Nuke11.3v5 --nukeassist to launch Nuke Assist.
Note: Nuke Assist licenses are only available as part of the NukeX or Nuke Studio package,
and cannot be purchased separately. For more information, see About Nuke Assist.
Tip: For more information on other terminal options, such as safe mode, see Command
Line Operations.
If you already have a valid license, the graphical interface appears, and a command line window
opens. If you don't have a license or haven't installed one yet, proceed to Licensing on Mac.
Nuke Analytics
In an effort to further improve quality and reliability, we ask you to allow us to collect usage statistics
from the machines on which you license Nuke, NukeX, Nuke Studio, Hiero, and HieroPlayer. This
usage information also assists our Support team to resolve issues more quickly.
Note: The port number used to communicate with Foundry is 443, the same one used for
uploading crash reports.
USER GUIDE
114
Launching on Mac | Nuke Non-commercial
The first time you start an application, and on every major release, a dialog displays asking for
permission for us to collect this information. You can enable or disable collection at any time in the
Preferences under Behaviors > Startup.
Note: This information is only collected for interactive sessions. Running applications in
terminal mode or under render licenses does not upload data to Foundry.
The following list shows the information we'll collect, if you give us permission to do so:
• Unique session ID • Anonymous user key • Application version string
• Application name • Session start time (GMT) • Session duration (in seconds)
• If the session exited cleanly • Peak memory usage • Model
• Operating system • System OS version • MAC address
• CPU Name • CPU Cores • GPU model name
• Amount of GPU RAM • OpenGL driver version • GPU driver version
• Amount of RAM • Memory speed
Nuke Non-commercial
If you want to try out or learn Nuke, you can run Nuke Non-commercial. This version allows you to
explore most of Nuke’s features, but prevents the commercial use of the application. For more
information, see About Nuke Non-commercial.
If you have already activated Nuke Non-commercial on the current device, the graphical interface
appears, and a command line window opens. If you haven't activated the device yet, proceed to
Licensing Nuke Non-commercial on Mac.
USER GUIDE
115
Licensing on Mac | Obtaining Licenses
Licensing on Mac
The following licensing methods are available:
• Activation Keys - activation keys allow you to activate and generate your actual product license key,
at a later point after purchase, on the machine for which you require the license.
They are provided for both node locked and floating licenses, and generate the appropriate license
type once installed using the product's Licensing dialog or online using the Activate a Product page:
https://www.foundry.com/licensing/activate-product
• Node Locked Licenses - these can be used to license an application on a single machine. They do
not work on different machines and if you need them to, you’ll have to transfer your license.
Node locked licenses, sometimes called uncounted licenses, do not require additional licensing
software to be installed.
• Floating Licenses - also known as counted licenses, enable applications to work on any networked
client machine. The floating license is put on the server and is locked to a unique number on that
server.
Floating licenses on a server requires additional software to be installed on the server to manage
the licenses and give them out to the client stations that want them. This software is called the
Foundry Licensing Tools (FLT) and can be downloaded at no extra cost from our website.
• Subscription Licenses - subscription licensing differs from traditional node locked or floating
licenses in that a single license, or entitlement, is valid on any authorized device up to the
entitlement's maximum number of activations.
For more information on Subscription Licensing, see Licensing Nuke Non-commercial on Mac.
The following instructions run through the basic options for the first two licensing methods, but you
can find a more detailed description in the Foundry Licensing Tools (FLT) User Guide available on our
website: https://www.foundry.com/licensing
Obtaining Licenses
To obtain a license, you'll need your machine's System ID (sometimes called Host ID or rlmhostid).
Just so you know what a System ID number looks like, here’s an example: 000ea641d7a1.
USER GUIDE
116
Licensing on Mac | Installing Licenses
Note: Bear in mind that, for floating licenses, you'll need the System ID of the license
server, not the machines on which you intend to run the application.
There are a number of ways you can find out your machine's System ID:
• Launch the application without a license, click Status, and then scroll down the error report until
you see your System ID.
• Download the Foundry License Utility (FLU) from https://www.foundry.com/licensing and run it.
Your System ID is displayed.
• Download the Foundry Licensing Tools (FLT) free of charge from https://www.foundry.com/licensing
and then run /Applications/TheFoundry/LicensingTools7.0/Foundry Licence Utility.app
When you know your System ID, you can request a license for Foundry products:
• from Foundry's Sales Department at sales@foundry.com
• from the product pages on our website, such as https://www.foundry.com/products/nuke
• by launching the application without a license and selecting:
• Buy Nuke or Buy Hiero - opens a web browser directly to our website to purchase a license.
• Try Nuke or Try Hiero - displays the 15-day trial license download screen. Enter your Foundry
account details or create a new account and follow the on-screen instructions to receive a trial
license.
Note: By default, if you have installed a temporary license, Nuke displays a dialog at start-
up alerting you to the number of days remaining. If you want to disable this behavior, you
can set the FN_DISABLE_LICENSE_DIALOG environment variable to 1 to suppress the
warning message about imminent license expiration. See Environment Variables for more
information.
Installing Licenses
When you start the application before installing a license, a Licensing dialog displays an error
informing you that no license was available. The installation process is dependent on what type of
license you requested:
• License file - if you requested a license file, typically foundry.lic, this option allows you to browse
to the file location and install it automatically. See To Install a License from Disk for more
information.
USER GUIDE
117
Licensing on Mac | Installing Licenses
• Activation Key or license text - if you requested an Activation Key or license by email, this option
allows you to paste the key or license text into the Licensing dialog, which then installs the license in
the correct directory. See To Install an Activation Key or License Text for more information.
• A floating license - if you requested a floating license to supply licenses to multiple client
machines, this option allows you to enter the server address that supplies the client licenses.
Note: You must install a floating license and additional software on the license server to use
this option.
USER GUIDE
118
Licensing on Mac | Installing Licenses
Note: Activation Keys require an internet connection. If you access the internet through a
proxy server and cannot connect to the activation server, you may get an error dialog
prompting you to either:
Click Use Proxy to enter the proxy server name, port number, username, and password.
This enables the application to connect to the activation server and obtain a license. The
license is then installed automatically, or
Click on the web link in the dialog and use the System ID (also known as hostid) provided to
manually activate and install a license.
1. Make sure you have saved both the license key (foundry.lic) and the FLU application in the same
directory.
2. Run the FLU application.
The license key automatically appears in the FLU window if the FLU and foundry.lic are in the
same directory.
Tip: If they are not in the same directory, you can either copy and paste the contents of the
license key or drag-and-drop the file into the FLU window.
3. Click Install.
This checks the license file and, provided that the license is valid, installs it into the correct
directory.
4. In order for the floating license to work, you will need to install the Foundry Licensing Tools (FLT)
on the license server machine.
USER GUIDE
119
Licensing on Mac | Further Reading
For more information on how to install floating licenses, refer to the FLT User Guide, which you can
download from our website https://www.foundry.com/licensing
5. Once your license server is up and running, launch the application on the client machine.
The Licensing dialog displays.
6. Click Install License to display the available install methods.
7. Click Use Server and enter the server address in the field provided. The format for the server
name is: <port>@<servername>, for example, 30001@red.
Note: You must perform steps 5 through 7 on each client machine that requires a license
from the server.
Further Reading
There is a lot to learn about licenses, much of which is beyond the scope of this manual. For more
information on licensing Nuke, displaying the System ID number, setting up a floating license server,
adding new license keys and managing license usage across a network, you should read the Foundry
Licensing Tools (FLT) User Guide, which can be downloaded from our website,
https://www.foundry.com/licensing
USER GUIDE
120
Licensing Nuke Non-commercial on Mac | Further Reading
For example, if an Entitlement for Nuke has five activations, you can use Nuke on five separate
Authorized Devices simultaneously. If you want to activate another device, you have to deactivate an
existing one, but you can activate and deactivate devices as often as you like.
Note: Replace <username> and <SystemID> with the current user and the MAC address of
the device, respectively.
USER GUIDE
121
Licensing Nuke Non-commercial on Mac | Further Reading
• Deauthorize Device to reclaim your existing Foundry entitlements on this device and stop
additional ones running, or
• Deauthorize All Devices to reclaim your existing Foundry entitlements on all devices
associated with your account, and stop additional ones running.
USER GUIDE
122
Uninstalling Apps on Mac | Further Reading
Note: The directories may be a hidden directory on your machine. To allow your Mac to
display hidden files and directories, type the following command in the Terminal
application, press Return, and then relaunch the Finder application:
defaults write com.apple.finder AppleShowAllFiles YES
3. Delete, rename, or move your cached files, which reside in the following directory by default:
/var/tmp/nuke
USER GUIDE
123
Linux | System Requirements
Linux
These pages guide you through installation and licensing to the point where you have the application
in front of you and are ready to start work. After installation, all applications are run from either
desktop icons, the browser, or from the command line using arguments.
System Requirements
• CentOS 6 (64-bit)
• CentOS 7 (64-bit)
Note: Other operating systems may work, but have not been fully tested.
Note: To avoid graphical problems, such as text disappearing in the Viewer and Node
Graph, it is important to keep your graphics card drivers up-to-date. Driver updates can be
USER GUIDE
124
Linux | Requirements for GPU Acceleration
obtained from the websites of the graphics card manufacturers (for example,
www.nvidia.com and support.amd.com).
Note: If you’re using R3D Rocket graphics card, note that using it in Nuke will most likely
only be considerably faster when you’re reading in at full resolution. If you’re reading in at
half resolution, for instance, using Nuke without the R3D Rocket card enabled may be faster.
This is because the R3D Rocket graphics card is designed to be fast when reading in multiple
frames at the same time. This is not how Nuke works internally, and therefore reads with the
R3D Rocket card disabled may sometimes be faster when working in lower resolutions (< 4K
widths). Note that the R3D Rocket card always produces better results than Nuke when
downsampling. Also, the R3D Rocket card can only be used by one application at a time, so if
you are viewing multiple Nuke scripts at once, you may only be able to use the R3D Rocket
card in one.
NVIDIA
• An NVIDIA GPU with compute capability 2.0 (Fermi) or above. A list of the compute capabilities of
NVIDIA GPUs is available at:
www.nvidia.co.uk/object/cuda_gpus_uk.html
Note: The compute capability is a property of the GPU hardware and can't be altered by a
software update.
• Graphics drivers capable of running CUDA 8.0 & 6.5 or above. These are bundled with the regular
drivers for your NVIDIA GPU. Driver version r361 or above is required.
Note: If your computer enters sleep mode, the CUDA drivers cannot recover and you must
restart Nuke to use GPU acceleration.
USER GUIDE
125
Linux | Requirements for GPU Acceleration
AMD
An AMD GPU and recommended driver from the following list:
Card Driver
Note: Other AMD GPUs may work, but have not been fully tested.
Multi-GPU Processing
Nuke's GPU support includes an Enable multi-GPU support option. When enabled in the
preferences, GPU processing is shared between the available GPUs for extra processing speed.
Note: Multi-GPU processing is only available for identical GPUs in the same machine. For
example, two NVIDIA GeForce GTX 1080s or two AMD FirePro W9100s.
USER GUIDE
126
Installing on Linux | Installing from the Terminal
Installing on Linux
The installation bundle installs the entire Nuke family, including Hiero and HieroPlayer, and icons for
the various components appear in your installation folder.
Note: Some modern anti-virus software may wrongly assume that certain files in the Nuke
installer are suspicious. Examples of these files include libnuke-12.0.0.so and geolib-
runtime-prof.so. If you have trouble installing Nuke on your machine, try disabling your
anti-virus software before installation. Don't forget to restart your anti-virus software after
installation.
Tip: To install Nuke silently, you can simply unzip the installer file. This creates the properly
formed Nuke directory tree in the current directory.
Note: By installing Nuke silently, you agree to the terms of the End User Licensing
Agreement. To see this agreement, please refer to Foundry's End User License Agreement or
run the installer in standard, non-silent mode.
USER GUIDE
127
Installing on Linux | Installing Remotely from the Terminal
USER GUIDE
128
Launching on Linux | Nuke Analytics
Launching on Linux
To launch the application on Linux, do one of the following:
• Double-click the required icon on the Desktop.
• Open the Nuke application directory (by default, /usr/local/Nuke11.3v5) and double-click the
required icon.
• Using a terminal, navigate to the Nuke application directory and enter:
• ./Nuke11.3 --studio to launch Nuke Studio.
• ./Nuke11.3 --nukex to launch NukeX.
• ./Nuke11.3 to launch Nuke.
• ./Nuke11.3 --hiero to launch Hiero.
• ./Nuke11.3 --player to launch HieroPlayer.
• ./Nuke11.3 --nukeassist to launch Nuke Assist.
Note: Nuke Assist licenses are only available as part of the NukeX or Nuke Studio package,
and cannot be purchased separately. For more information, see About Nuke Assist.
Tip: For more information on other terminal options, such as safe mode, see Command
Line Operations.
If you already have a valid license, the graphical interface appears. If you don't have a license or
haven't installed one yet, proceed to Licensing on Linux.
Nuke Analytics
In an effort to further improve quality and reliability, we ask you to allow us to collect usage statistics
from the machines on which you license license Nuke, NukeX, Nuke Studio, Hiero, and HieroPlayer.
This usage information also assists our Support team to resolve issues more quickly.
Note: The port number used to communicate with Foundry is 443, the same one used for
uploading crash reports.
USER GUIDE
129
Launching on Linux | Nuke Non-commercial
The first time you start an application, and on every major release, a dialog displays asking for
permission for us to collect this information. You can enable or disable collection at any time in the
Preferences under Behaviors > Startup.
Note: This information is only collected for interactive sessions. Running applications in
terminal mode or under render licenses does not upload data to Foundry.
The following list shows the information we'll collect, if you give us permission to do so:
• Unique session ID • Anonymous user key • Application version string
• Application name • Session start time (GMT) • Session duration (in seconds)
• If the session exited cleanly • Peak memory usage • Model
• Operating system • System OS version • MAC address
• CPU Name • CPU Cores • GPU model name
• Amount of GPU RAM • OpenGL driver version • GPU driver version
• Amount of RAM • Memory speed
Nuke Non-commercial
If you want to try out or learn Nuke, you can run Nuke Non-commercial. This version allows you to
explore most of Nuke’s features, but prevents the commercial use of the application. For more
information, see About Nuke Non-commercial.
If you have already activated Nuke Non-commercial on the current device, the graphical interface
appears, and a command line window opens. If you haven't activated the device yet, proceed to
Licensing Nuke Non-commercial on Linux.
USER GUIDE
130
Licensing on Linux | Obtaining Licenses
Licensing on Linux
The following licensing methods are available:
• Activation Keys - activation keys allow you to activate and generate your actual product license key,
at a later point after purchase, on the machine for which you require the license.
They are provided for both node locked and floating licenses, and generate the appropriate license
type once installed using the product's Licensing dialog or online using the Activate a Product page:
https://www.foundry.com/licensing/activate-product
• Node Locked Licenses - these can be used to license an application on a single machine. They do
not work on different machines and if you need them to, you’ll have to transfer your license.
Node locked licenses, sometimes called uncounted licenses, do not require additional licensing
software to be installed.
• Floating Licenses - also known as counted licenses, enable applications to work on any networked
client machine. The floating license is put on the server and is locked to a unique number on that
server.
Floating licenses on a server requires additional software to be installed on the server to manage
the licenses and give them out to the client stations that want them. This software is called the
Foundry Licensing Tools (FLT) and can be downloaded at no extra cost from our website.
• Subscription Licenses - subscription licensing differs from traditional node locked or floating
licenses in that a single license, or entitlement, is valid on any authorized device up to the
entitlement's maximum number of activations.
For more information on Subscription Licensing, see Licensing Nuke Non-commercial on Linux.
The following instructions run through the basic options for the first two licensing methods, but you
can find a more detailed description in the Foundry Licensing Tools (FLT) User Guide available on our
website: https://www.foundry.com/licensing
Obtaining Licenses
To obtain a license, you'll need your machine's System ID (sometimes called Host ID or rlmhostid).
Just so you know what a System ID number looks like, here’s an example: 000ea641d7a1.
USER GUIDE
131
Licensing on Linux | Installing Licenses
Note: Bear in mind that, for floating licenses, you'll need the System ID of the license
server, not the machines on which you intend to run the application.
There are a number of ways you can find out your machine's System ID:
• Launch the application without a license, click Status, and then scroll down the error report until
you see your System ID.
• Download the Foundry Licensing Tools (FLT) free of charge from https://www.foundry.com/licensing
and then run the following command in a terminal shell:
/usr/local/foundry/LicensingTools7.0/bin/systemid
When you know your System ID, you can request a license for Foundry products:
• from Foundry's Sales Department at sales@foundry.com
• from the product pages on our website, such as https://www.foundry.com/products/nuke
• by launching the application without a license and selecting:
• Buy Nuke or Buy Hiero - opens a web browser directly to our website to purchase a license.
• Try Nuke or Try Hiero - displays the 15-day trial license download screen. Enter your Foundry
account details or create a new account and follow the on-screen instructions to receive a trial
license.
Note: By default, if you have installed a temporary license, the application displays a dialog
at start-up alerting you to the number of days remaining. If you want to disable this
behavior, you can set the FN_DISABLE_LICENSE_DIALOG environment variable to 1 to
suppress the warning message about imminent license expiration. See Environment
Variables for more information.
Installing Licenses
When you start the application before installing a license, a Licensing dialog displays an error
informing you that no license was available. The installation process is dependent on what type of
license you requested:
• License file - if you requested a license file, typically foundry.lic, this option allows you to browse
to the file location and install it automatically. See To Install a License from Disk for more
information.
• Activation Key or license text - if you requested an Activation Key or license by email, this option
allows you to paste the key or license text into the Licensing dialog, which then installs the license in
the correct directory. See To Install an Activation Key or License Text for more information.
USER GUIDE
132
Licensing on Linux | Installing Licenses
• A floating license - if you requested a floating license to supply licenses to multiple client
machines, this option allows you to enter the server address that supplies the client licenses.
Note: You must install a floating license and additional software on the license server to use
this option.
USER GUIDE
133
Licensing on Linux | Installing Licenses
Note: Activation Keys require an internet connection. If you access the internet through a
proxy server and cannot connect to the activation server, you may get an error dialog
prompting you to either:
Click Use Proxy to enter the proxy server name, port number, username, and password.
This enables the application to connect to the activation server and obtain a license. The
license is then installed automatically, or
Click on the web link in the dialog and use the System ID (also known as hostid) provided to
manually activate and install a license.
1. Make sure you have saved both the license key (foundry.lic) and the FLU application in the same
directory.
2. Run the FLU application.
The license key automatically appears in the FLU window if the FLU and foundry.lic are in the
same directory.
Tip: If they are not in the same directory, you can either copy and paste the contents of the
license key or drag-and-drop the file into the FLU window.
3. Click Install.
This checks the license file and, provided that the license is valid, installs it into the correct
directory.
4. In order for the floating license to work, you will need to install the Foundry Licensing Tools (FLT)
on the license server machine.
For more information on how to install floating licenses, refer to the FLT User Guide, which you can
download from our website https://www.foundry.com/licensing
USER GUIDE
134
Licensing on Linux | Further Reading
5. Once your license server is up and running, launch Nuke on the client machine.
The Licensing dialog displays.
6. Click Install License to display the available install methods.
7. Click Use Server and enter the server address in the field provided. The format for the server
name is: <port>@<servername>, for example, 30001@red.
Note: You must perform steps 5 through 7 on each client machine that requires a license
from the server.
Further Reading
There is a lot to learn about licenses, much of which is beyond the scope of this manual. For more
information on licensing Nuke, displaying the System ID number, setting up a floating license server,
adding new license keys and managing license usage across a network, you should read the Foundry
Licensing Tools (FLT) User Guide, which can be downloaded from our website,
https://www.foundry.com/licensing
USER GUIDE
135
Licensing Nuke Non-commercial on Linux | Further Reading
For example, if an Entitlement for Nuke has five activations, you can use Nuke on five separate
Authorized Devices simultaneously. If you want to activate another device, you have to deactivate an
existing one, but you can activate and deactivate devices as often as you like.
Note: Replace <username> and <SystemID> with the current user and the MAC address of
the device, respectively.
USER GUIDE
136
Licensing Nuke Non-commercial on Linux | Further Reading
• Deauthorize Device to reclaim your existing Foundry entitlements on this device and stop
additional ones running, or
• Deauthorize All Devices to reclaim your existing Foundry entitlements on all devices
associated with your account, and stop additional ones running.
USER GUIDE
137
Uninstalling Apps on Linux | Further Reading
USER GUIDE
138
Nuke Studio Environments
By default, there is a Node Graph panel in the lower-left corner, a Viewer panel in the top-left corner,
and a Properties panel on the right.
Node Graph The Node Graph is where you add nodes and build your node tree.
USER GUIDE
139
Nuke Studio Environments | The Timeline Environment
Properties Panel When you add a node to the Node Graph, its properties appear in the
Properties panel on the right.
Viewer To check the result, you can view the output in a Viewer.
Project Tab You can manage all aspects of your projects and bins in the Project tab.
Menu Bar Use the Menu bar to access Nuke Studio's dropdown menus.
Bin View The bin displays the contents of any selected Project tab.
Viewer You can display and review your media in the Viewer.
Timeline Info The timeline info displays the current timeline’s sequence, media, and
USER GUIDE
140
Nuke Studio Environments | How the Panels Link
metadata information.
Editing Tools There is a comprehensive set of editing tools provided in Nuke Studio. See
Timeline Editing Tools for more information.
Spreadsheet Tab Use the Spreadsheet tab to display the contents of the timeline in
spreadsheet form. Note that the spreadsheet and timeline are linked,
mirroring any selections made.
Timeline The timeline displays the current track, including all shots and any effects that
have been added.
The Timeline linked group includes the spreadsheet, the Timeline environment Viewer, and the
timeline. The Compositing linked group includes the Node Graph, the Compositing environment
Viewer, and the node Toolbar.
For example, when you are in the Compositing environment and you select the a spreadsheet from
the Properties content menu. The spread sheet appears as a new tab in the Properties pane, and
automatically opens the timeline, and the timeline Viewer.
USER GUIDE
141
Nuke Studio Environments | Panel Focus and Keyboard Shortcuts
Note: If more than one tab in the linked group is in the same pane, the most recently
viewed tab is displayed at the front of the pane.
Shared panels take precedence over unshared panels. Shared panels include Curve Editor, Dope
Sheet, Pixel Analyzer, Scopes, and Progress bars. The Properties pane and Script Editor are also
shared panels, but differ slightly in that they show workspace-specific content. For example, the
Properties panels shows soft effect keyframes and Node Graph keyframes depending on the
currently selected workspace.
A good example of click focus versus mouse-over focus is between Viewers and the Node Graph:
• If a Compositing Viewer has click focus and you press B, only the blue color channel is displayed in
the Viewer. If the mouse-over focus resides on the Node Graph and you press B, the click focus is
overridden and a Blur node is added to the Node Graph.
• If a Compositing Viewer has click focus and you press , (comma), the gain is reduced in the Viewer.
If the mouse-over focus resides on the Node Graph and you press , (comma), the gain is still
reduced in the Viewer because the Node Graph has no , (comma) equivalent keyboard shortcut.
Some areas of the interface retain focus no matter where the mouse-over focus resides, such as the
message control in the Text node's Properties panel and the Filter field in the Project panel.
Click focus is shown in the interface with a bright orange highlight in the panel name and mouse-over
focus is shown as a muted orange highlight.
USER GUIDE
142
Nuke Studio Environments | Default Workspaces
Default Workspaces
There are six default workspaces in Nuke/NukeX and Nuke Studio. By default, Nuke/NukeX opens in
the Compositing workspace and Nuke Studio opens in the Finishing workspace. To change the
workspace, you can do either of the following:
• Select Workspace from the top menu bar and then select the required workspace.
OR
• Use the keyboard shortcuts to open the required workspace. Press Shift and the required
workspace keyboard shortcut, depending on mode:
USER GUIDE
143
Nuke Studio Environments | Customizing Workspaces
Customizing Workspaces
Customizing Panes
You can resize and split panes to make more room for different elements on the screen. To resize a
pane, drag the divider line of the pane into a new location.
You can split a pane by clicking on the content menu button in the top-left corner of the pane,
and then selecting Split Vertical or Split Horizontal from the menu that opens.
Note: Pressing and holding the spacebar brings up the right-click menu for that pane,
where available.
USER GUIDE
144
Nuke Studio Environments | Customizing Workspaces
Adding Tabs
When you can’t fit more elements into your display, you can use tabs to save space. You can also use
tabs to move the Toolbar into a new location.
You can add a tab by clicking on the content menu button in the top-left corner of the pane, and
then selecting the type of tab you want to add. For example, you can add Node Toolbar, Node
Graph, New Viewer, or Script Editor. The new tab is added on top of the existing tabs.
To move tabs, click on the name of the tab and drag it to a new position inside the same pane or in
another pane.
You can close tabs again by clicking the X in the top-right corner of the tab you want to close.
Note: Closing a linked tab closes all associated tabs. If you hold Alt while closing a linked
tab, it only closes that tab.
Soloing Tabs
You can choose to solo a tab by either right-clicking on the tab name or clicking the content menu,
and then selecting Solo Tab. This automatically closes any other open tabs in the same pane, except
for the one you have chosen to solo.
Floating Windows
You can turn tabs and panes into floating windows and vice versa. To turn a tab or pane into a
floating window, click the content menu button in the top-left corner in the tab or pane you want
to float, and then select Float Tab or Float Pane. You can also float tabs by either clicking
Ctrl/Cmd+click on the tab name, or right-clicking on the tab name and select Float Tab.
USER GUIDE
145
Nuke Studio Environments | Saving and Loading Workspaces
To change a floating window into a tab or pane, click on the tab or pane name in the floating window
and drag it to where you want it to dock. You can close floating windows by clicking the X button in
the top-right corner of the tab or pane.
Maximizing Windows
To make a window fullscreen, first ensure the window you want to make fullscreen is active, and then
press Alt+S. This could be the main application window or a floating Viewer. Making it fullscreen
removes the window borders. You can also maximize tabs and panels by pressing spacebar.
as the Toolbar panel. To hide the names and controls on tabs, click the content menu button in
the top-left corner of the tab, and disable Show Tabs.
You can show the names and controls on tabs again by moving the cursor over the top of the pane
area until the top edge of the pane highlights, right-click to open the content menu, and select Show
Tabs.
Workspaces are saved in your .nuke file under Workspaces > Nuke or NukeStudio, depending on
which Nuke mode you're currently using.
Note: The location of the .nuke file varies by platform. See Loading Gizmos, NDK Plug-ins,
and Python and Tcl Scripts for more detailed information.
USER GUIDE
146
Nuke Studio Environments | Setting Preferences
Setting Preferences
Open the Preferences dialog by pressing Shift+S. The preferences available depend on which mode
Nuke is launched in.
Changing Preferences
The function of each preference is described under Appendix A: Preferences.
When you make a change to a preference, in most cases, the interface registers the change
immediately (for example, an interface element displays in the new color). Some preference changes,
such as Performance > Hardware > default blink device, require you to restart Nuke Studio, for
the changes to take effect.
USER GUIDE
147
Nuke Studio Environments | Setting Preferences
Saving Preferences
Nuke stores your preference settings in a file called preferences11.3.nk, which resides in your .nuke
directory. The location of this is dependent on your operating system.
• Linux: /home/login name/.nuke
• Mac: /Users/login name/.nuke
• Windows: drive letter:\Users\login name\.nuke
Note: On Windows, .nuke resides in the directory pointed to by the HOME environment
variable. If this variable is not set (which is common), the .nuke directory is under the folder
specified by the USERPROFILE environment variable.
Each Nuke user can maintain his or her own unique settings. After making a change in the
Preferences dialog, you can simply click OK to save and close your preferences. If you click Cancel,
any changes that you made are not saved.
To find out if the HOME and USERPROFILE environment variables are set and where they are
pointing at, enter %HOME% or %USERPROFILE% into the address bar in Windows Explorer. If the
environment variable is set, the folder it’s pointing at is opened. If it’s not set, you get an error.
• On Mac: /Users/login name/.nuke
• On Linux: /users/login name/.nuke
Your new preferences remain in effect for the current and all subsequent sessions.
Resetting Preferences
To reset any changes you made simply click Restore Defaults in the bottom-left of the Preferences
dialog. You can reset the preferences to default by deleting the preferences11.3.nk file. After doing
USER GUIDE
148
Nuke Studio Environments | Setting Preferences
this, the next time you launch Nuke, it rebuilds the file with the default preferences.
USER GUIDE
149
Using the Compositing
Environment
These pages are designed to help you learn how to use the Compositing environment including
working with nodes, using the Toolbar, and using the Properties panel.
The menu bar is located on top of the Nuke window (in all workspaces). Its menus, such as the File or
Edit menu, let you perform more general actions related to the project or script, the Viewers, or
editing, rather than certain individual nodes.
In addition to the Toolbar and the menu bar, you should also familiarize yourself with the content
menus. They are the gray checkered boxes in the top-left corner of each pane. If you click on the box,
a menu opens as shown in the image below. You can use the options in the menu to customize the
workspace.
Finally, to work faster, you can right-click on the different panels to display a menu with options
related to that particular panel.
USER GUIDE
150
Using the Compositing Environment |
USER GUIDE
151
Using the Toolbar |
Icon Functions
Image Image Read and Write nodes, built-in Nuke elements, and Viewer
nodes.
Draw Roto shapes, paint tools, film grain, fills, lens flares, sparkles, and
other vector-based image tools.
Filter Applying convolve filters, such as blur, sharpen, edge detect, and
erode.
USER GUIDE
152
Using the Toolbar |
Icon Functions
Views Nodes for working with views and stereoscopic or multi-view material.
Any installed plug-ins and custom menus that do not have their own
icon.
Note: Nuke Assist does not support all the toolbars available in Nuke. See Nuke Products
for more information.
To display a tool tip that explains the icon’s function, move the cursor over the icon.
To make selections from the Toolbar, click on an icon and select an option from the menu.
USER GUIDE
153
Working with Nodes | Adding Nodes
Note: Not all nodes are supported in all versions of products. For a run down of supported
nodes, see Nuke Products.
Adding Nodes
You can add nodes using the Toolbar, the Tab menu, or the right-click menu. When you add a node,
Nuke automatically connects it to the currently selected node.
1. Select the existing node that you want the new node to follow by clicking on it.
2. Click an icon on the Toolbar and select a node from the menu that appears. For example, if you
want to add a Blur node, click the Filter icon and select Blur.
Note: You can press the middle-mouse button on a menu icon to repeat the last item used
from that menu. For example, if you first select a Blur node from the Filter menu, you can
then add another Blur node by simply pressing the middle-mouse button on the Filter icon.
Tip: See Using the Tab Menu for more detailed information.
1. Select the existing node that you want the new node to follow by clicking on it.
2. Press the Tab key and start typing the name of the node you want to create.
This opens a prompt displaying a list of matches.
USER GUIDE
154
Working with Nodes | Selecting Nodes
3. To select the node you want to add from the list, you can either click on it, or scroll to it with the
Up and Down arrow keys and press Return.
Note: To add the last node created using this method, simply press Tab and then Return.
Note: You can also add nodes using keyboard shortcuts. Most menus in the Toolbar include
a note of the relevant keyboard shortcut next to the item in question.
2. Hold down Shift and create the node using the Toolbar, Tab menu, or right-click menu. To add a
node in a new branch with the Tab menu, press the Tab key first, then hold down Shift when
selecting the new node.
The node is added after the selected node in a new branch of the node tree.
Selecting Nodes
Nuke offers a number of options for selecting nodes. Selected nodes are highlighted in a color that is
defined in the Preferences dialog. See Appendix A: Preferences for more information.
USER GUIDE
155
Working with Nodes | Replacing Nodes
Select multiple To select multiple nodes, you can either press Shift while clicking on each
nodes node you want to select, or click and drag in the workspace to draw a marquee
around the nodes you want to select.
Select all Press Ctrl/Cmd while dragging a node. Nuke selects all nodes that feed data to
upstream nodes the selected node. You can also Ctrl/Cmd+Shift+click to select more nodes
without clearing the current selection.
Select all nodes in Click on a node in the Node Graph and select Edit > Select Connected Nodes
a node tree (or press Ctrl/Cmd+Alt+A). This selects all nodes in the node tree, whether they
are upstream or downstream from the current node. Nodes in any other node
trees are not selected.
Select all nodes in Select Edit > Select all (or press Ctrl/Cmd+A).
a script
Select nodes by 1. Choose Edit > Search, or press the forward slash (/).
name A dialog is displayed.
2. Type an alphanumeric string that is included in the names of the nodes you
wish to select. Click OK.
Tip: When typing the above alphanumeric search string, you can use
asterisks (*) and question marks (?) as wild cards. An asterisk stands
for multiple alphanumeric characters. A question mark represents
just one character.
Replacing Nodes
To replace a node in Nuke, simply hold down Ctrl/Cmd and create a new node. See below for more
details.
USER GUIDE
156
Working with Nodes | Renaming Nodes
1. In the Node Graph, select the node you want to replace by clicking on it.
2. Hold down Ctrl/Cmd and create a new node using the Toolbar, a right-click menu, or the Tab
menu. To replace a node with the Tab menu, press the Tab key first, then hold down Ctrl/Cmd
when selecting the new node.
The new node replaces the selected node in the Node Graph.
Note: Note that you cannot replace nodes in this manner if you are using a keyboard
shortcut (such as B for the Blur node) to create the new node.
Renaming Nodes
There are a couple of ways to rename a node in Nuke.
OR
1. Click on the node in the Node Graph to select it.
2. Press N.
3. Enter a new name for the node in the rename field that appears on top of the node.
USER GUIDE
157
Working with Nodes | Editing Nodes
Editing Nodes
To copy, paste, and perform other editing functions in the Node Graph, you can use the standard
editing keys (for example, Ctrl/Cmd+C to copy, and Ctrl/Cmd+V to paste). You can copy nodes to files
or memory. Copied nodes inherit the values of their parent, but these values, unlike those in cloned
nodes, are not actively linked. Copied nodes allow you to assign different values to the original and
the copy.
When you paste nodes, Nuke automatically connects them to the node that is selected before the
paste operation. If you don’t want to connect anything, click on a blank area of the workspace to
deselect any selected nodes before pasting.
USER GUIDE
158
Working with Nodes | Cloning Nodes
Cloning Nodes
You can clone nodes directly into the Node Graph or copy clone nodes in preparation for pasting
pasting them elsewhere in a script. Cloned nodes inherit the values of their parent, but unlike copied
nodes, they also maintain an active link with their parents’ values. If you alter the values of a node
that has been cloned, the clone automatically inherits these changes.
Clones are helpful for maintaining consistent setups across multiple elements. For example, you
might use clones to apply an identical film grain setup to a series of elements shot on the same stock.
If you need to make changes to the setup, these changes would automatically ripple throughout the
script.
Note: You cannot clone gizmos. This applies to both gizmos created in your facility and the
nodes in the Nuke default Toolbar that are, in fact, gizmos, such as the LightWrap node, the
Grain node, and the IBK nodes. For more information on gizmos, see the Configuring Nuke
chapter.
Cloning a Node
You can copy a node as a clone and paste it in a different location, by doing the following:
1. Select the node or nodes you want to clone.
USER GUIDE
159
Working with Nodes | Disabling and Deleting Nodes
Decloning a Node
Action Instructions
Connecting Nodes
When you add or paste nodes into a script, Nuke automatically generates pipes between the currently
selected node and the new nodes. As you build up a script, you’ll need to move these pipes, or run
new pipes between nodes. In Nuke, you make such modifications by dragging on the back end of the
pipe (the end without the arrowhead).
USER GUIDE
160
Working with Nodes | Connecting Nodes
Disconnecting Nodes
You can disconnect nodes by either dragging the head or tail of the connecting arrow to an empty
area of the workspace, or selecting the lower node in the tree and pressing Ctrl/Cmd+D.
Reconnecting Nodes
You can reconnect a node by dragging the head or tail of the connecting arrow and drop it over the
center of the node that want to connect.
Note: Nuke distinguishes the dual inputs that may run into a Merge node with the labels A
and B. A refers to the foreground element, and B to the background element. Nuke always
copies from the A input to the B. This means that if you later decide to disable the node
associated with an A input, the data stream keeps flowing because, by default, it uses the B
input.
USER GUIDE
161
Working with Nodes | Connecting Nodes
To duplicate a connecting arrow, hold Shift and drag the connecting arrow on top of the node you
want to create a connection to. Nuke duplicates the connecting arrow, leaving the original connection
untouched.
To add a node between two connected nodes, drag the node into the space between the already
connected nodes. As you do so, you see the link between these two nodes become active. When that
happens, simply release the node you are dragging and it is automatically placed and connected
between the two nodes.
Note: Dragging multiple nodes into a node tree only connects the first node in the selection
to the existing node tree.
Tip: You can also add a dot to an existing connection by pressing Ctrl/Cmd and clicking on
the yellow dot that appears on the connecting arrow.
USER GUIDE
162
Working with Nodes | Node Indicators
Node Indicators
There are several indicators that can appear on the nodes in the Node Graph, depending on what you
are doing. The following table describes what each indicator means.
USER GUIDE
163
Working with Nodes | Displaying Node Information
You are working with a multi-view project and have split off
one or more views in the node’s controls.
You are working with a multi-view project and have split off
one or more views in the node’s controls, dots also appear
on the node to indicate which views have been split off. For
example, if you are using red for the left view and split off
that view, a red dot appears on the node.
The full effect of the node is not in use, because you have
adjusted the mix slider in the node’s controls.
USER GUIDE
164
Working with Nodes | Customizing the Node Display
USER GUIDE
165
Working with Nodes | Customizing the Node Display
If you want the postage stamp to display a fixed frame (rather than update to match the current
frame), enter the frame to display in the static frame field. For this to work, you also need to
press Shift+S to open the Preferences dialog, go to Panels > Node Graph, and ensure the
postage stamp mode dropdown is set to Static frame. Note that if the frame number you use
is outside the frame range for the node, it is clamped to the first or last frame in the range.
Tip: You can also have Nuke automatically color code nodes for you based on their function.
See Appendix A: Preferences.
USER GUIDE
166
Working with Nodes | Creating Node Tool Sets
Tool sets can be shared between artists if they are using a centralized .nuke folder. This needs to be
accessed through a NUKE_PATH environment variable that you can set up (see Configuring Nuke for
more information).
2. Click (ToolSets) on the toolbar and select Create. You can also right-click on the Node
Graph and select ToolSets > Create. The CreateToolSet dialog appears. You can also access your
tool sets by pressing Tab and searching for them in the search field.
3. In the ToolSets menu dropdown, select the menu where you’d like to place your new tool set.
Then give it a name in the Menu item field and click Create.
By default, your new tool set goes under the ToolSets menu, but if you’d like to create a subfolder
for the tool set, you can do that by specifying the folder name before the tool set name, separated
by a forward slash, in the Menu item field. For example, entering Roto/BasicRoto would create a
subfolder called Roto in the ToolSets menu, and place a new tool set by the name of BasicRoto in
it.
There are some tool sets for creating particles, for instance, that are built in to Nuke. These can
also be found in the ToolSets menu. To prevent confusion between built-in tool sets and tool sets
that you’ve created, if you happen to create a tool set folder with the same name as a built-in one,
Nuke adds [user] in front of the folder name for clarity.
4. To delete a tool set you’ve created, you can click ToolSets > Delete in the toolbar and select the
tool set you want to remove.
USER GUIDE
167
Using the Tab Menu | Adding Nodes by Sub-string
Tip: See Panel Focus and Keyboard Shortcuts for more information about focus.
Typing in the Tab menu narrows the selection. For example, entering the string dea displays all
entries beginning with dea. In this case, you can see that there are no nodes beginning dea, so Nuke
looks instead for node beginning de with an a in the name.
USER GUIDE
168
Using the Tab Menu | Adding Nodes by Sub-string
The Tab menu parses capitalization as well. For example, if you want a DeepMerge node, start your
string DM rather than dm to refine the results.
You can also search by toolbar menu name. For example, if you know that you're searching for a
color correction node you could enter [Color].
USER GUIDE
169
Using the Tab Menu | Adding and Removing Favorites
Nuke's Bookmark feature also allows you to use sub-strings to locate the bookmark you need. See
Bookmarking Nodes for more information.
You can enable, disable, and clear all favorites in the Preferences under Behaviors > Nodes.
USER GUIDE
170
Using the Tab Menu | Managing Weighting
Managing Weighting
Weighting describes how often you use a node from the Tab menu. Commonly added nodes carry
more weight and are listed higher up in the node list.
Note: Adding nodes using a keyboard shortcut, such as pressing B to add a Blur node, does
not affect node weighting.
The more often you add a node form the Tab menu, the larger the green dot next to the node name.
Weighting can produce unexpected results when you enter strings in the Tab menu. For example, if
you use Backdrop nodes often, you may find that weighting causes Backdrop to appear above nodes
that start with the first letter of the search string.
USER GUIDE
171
Using the Tab Menu | Managing Weighting
You can enable, disable, and clear weighting information in the Preferences under Behaviors >
Nodes.
USER GUIDE
172
Navigating Inside the Node Graph | Panning
Panning
You can pan using the mouse or the navigator map that appears in the lower right corner of the Node
Graph.
To pan with the mouse, press the middle mouse button and drag the mouse pointer over the
workspace (you can also use Alt+drag). The script moves with your pointer.
Note: In many Linux windows managers, the Alt key is used by default as a mouse modifier
key. This can cause problems in 3D applications where Alt is used for camera navigation in
3D environments.
You can use key mapping to assign the mouse modifier to another key, such as the
(Super or Windows logo) key, but the method changes depending on which flavor of Linux
you're using. Please refer to the documentation on key mapping for your particular Linux
distribution for more information.
If your script is larger than the visible workspace, a navigator map automatically appears in the
bottom-right corner.
USER GUIDE
173
Navigating Inside the Node Graph | Zooming, Fitting in the Node Graph
The map shows you a miniature view of the entire script and the pink rectangle shows the portion of
the script that you see within the workspace borders.
To pan with the map, drag the pink rectangle to pan to a different view of the script.
When the whole script is contained within the window border, then the map automatically
disappears.
Tip: The navigation map is resizeable. Drag on its upper-left corner to make it as large or
small as you like.
OR
• Press Alt and drag right while holding down the middle-mouse button.
Zooming out You can zoom out by doing one of the following:
• Move your mouse pointer over the area you want to zoom out from, and
press the subtraction key (-) repeatedly until the workspace displays the script
at the desired scale.
OR
• Press Alt and drag left while holding down the middle-mouse button.
Note: In many Linux windows managers, the Alt key is used by default as a mouse
modifier key. This can cause problems in 3D applications where Alt is used for camera
navigation in 3D environments.
You can use key mapping to assign the mouse modifier to another key, such as the
(Super or Windows logo) key, but the method changes depending on which flavor of Linux
you're using. Please refer to the documentation on key mapping for your particular Linux
USER GUIDE
174
Navigating Inside the Node Graph | Bookmarking the Pan and Zoom Level
Fitting the selected To fit selected nodes in the Node Graph, click the middle-mouse button or
nodes within the press F.
visible workspace
Fitting the node To fit the entire node tree in the Node Graph, click on the Node Graph to make
tree within the sure no nodes are selected and click the middle-mouse button or press F.
visible workspace
Note: Restoring a saved location doesn’t work across different Node Graphs - you can’t save
a location in one Node Graph and then restore it in another.
Bookmarking Nodes
One extremely useful function of Nuke nodes, is their ability to act as jump-to points throughout a
project.
1. Double-click on the node you want to bookmark to open its properties.
2. Go to the Node tab and select the bookmark checkbox (or press Ctrl/Cmd+Shift+B).
This adds the node to the bookmark list.
USER GUIDE
175
Navigating Inside the Node Graph | Searching for Nodes
By default, Backdrop nodes have their bookmark checkbox enabled. All other nodes have it
disabled.
3. Select Edit > Bookmark > Jump to Bookmarked Node (or press J on the Node Graph) to bring up
the bookmarks jump to menu.
4. Start typing the name of the node you wish to navigate to.
Nuke shows all matchingnodes that have the bookmark flag enabled. They are listed according to
the node name or, if a label is present, the label followed by the node name in square brackets.
5. To select the node to navigate to, you can either click on it, or scroll to it with the Up and Down
arrow keys, and press Return.
You can also do more complex searches using regular expressions, such as searching for all the Read
and Write nodes in a script.
1. Select Edit > Search (or press /) to bring up the search dialog.
2. In the search field, enter the string you want to search for.
If you want to search for all nodes in the script, enter * (an asterisk).
If you want to search for all Read nodes in the script, enter Read.
If you want to search for all the Read and Write nodes, enter the following expression:
(*Read*|*Write*)
3. Click OK.
Nuke searches for the nodes in the script and selects all matches it finds and focuses the Node Graph
the first of them. If you perform the same search again, the Node Graph view focuses on the next
node in order. For instance, if you have a ColorBars node, a ColorWheel node, and a ColorCorrect
node in your Node Graph, searching for “Color” three times in a row selects all of these nodes and
focuses on each of them in alphabetical order.
Note: When you enter expressions in the search dialog, remember that the search field
only takes regular expressions. Any characters that have specific meanings in regular
USER GUIDE
176
Navigating Inside the Node Graph | Cleaning up the Node Graph
expressions, such as square brackets ([ and ]), need to be preceded by the backslash
character (\).
USER GUIDE
177
Properties Panels | Managing the Properties Panel
Properties Panels
When you insert a node, its properties automatically appear in the Properties panel with options to
define the node’s output. You can also open the properties panel later by doing any of the following:
• Double-click on the node in the Node Graph.
• Ctrl/Cmd+click on the node in the Node Graph.
• Select the node in the Node Graph and press Return.
To lock the Properties panel and have all new panels appear in floating windows, click the lock
button on the Properties panel.
To empty the Properties panel and close all the node panels in it, click the remove all panels button.
Tip: You can also close all the nodes in the Properties panel by Alt+clicking on the close (X)
button of one of the nodes.
USER GUIDE
178
Properties Panels | Properties Panel Controls
Control Function
Centers one of the node’s inputs in the Node Graph. Select the input from the
dropdown menu that appears.
name field (for You can enter a new name for the node here.
example,
Blur1)
Changes the color of the node. You can drag and drop this button on top of
(left)
another color button to copy the color. To revert to the default color defined in
your Preferences, right-click on the button and select Set color to default.
An X on the button indicates the color is unset, and the color defined in the
Preferences is used.
Changes the color used for the node’s controls in the Viewer. You can drag and
(right)
drop this button on top of another color button to copy the color. To revert to the
default color defined in your Preferences, right-click on the button and select Set
color to default.
An X on the button indicates the color is unset, and the color defined in the
Preferences is used.
USER GUIDE
179
Properties Panels | Properties Panel Controls
Control Function
Reverts any changes made after the current node panel was opened.
Floats the panel. Clicking this button again docks the panel back into the pane if
the originating pane is open.
Closes the node panel. Alt+click this to close all the panels in the pane.
Ctrl/Cmd+click to close all panels except the one clicked on.
Control Function
Reverts any changes made after the panel was opened and closes the panel.
Hitting this button right after a node was created also deletes the node from the
Node Graph.
USER GUIDE
180
Properties Panels | Properties Panel Controls
On the Node tab, you can usually adjust the following controls:
Control Function
label Lets you add comments to the node. The comments are displayed on the
node’s surface.
If you like, you can use HTML in the label field. For example, to have your
comments appear in bold, you can enter <b>My Comment</b>. To add an
icon called
MyIcon.png to the node, you can use <img src="MyIcon.png"/>. Save the
icon in your plug-in path directory. (For more information on plug-in path
directories, see Loading Gizmos, NDK Plug-ins, and Python and Tcl Scripts.)
Most common image formats work, but we recommend using .png.
Note that the HTML has been changed to a slightly non-standard form
where newlines are significant. If there is a newline character in your data, a
new line is displayed in the label.
font Lets you change the font for any text displayed on the node.
Lets you change the font size of any text displayed on the node.
Lets you change the color of any text displayed on the node.
hide input Check this to hide the node’s incoming pipe. This control does not appear
on all nodes.
cached Check this to keep the data upstream from the node in memory, so that it
can be read quickly. When this is checked, a yellow line displays under the
node in the Node Graph.
disable Check this to disable the node. Uncheck to re-enable. (You can also disable
or re-enable a node by selecting it in the Node Graph and pressing D.)
dope sheet Check this to force the node to always display in the Dope Sheet. You can
also press Alt+D to toggle this on and off.
USER GUIDE
181
Properties Panels | Displaying Controls
Control Function
By default, the Dope Sheet displays all your Read nodes that have their
control panels open, and any nodes you’ve used to create keyframes.
bookmark Check this to show the node in the bookmark list. This allows you to quickly
navigate to the node. For more information, see Navigating Inside the Node
Graph.
postage stamp Check this to display a thumbnail render of the node’s output on its
surface. You can also press Alt+P on the Properties Bin to toggle postage
stamps.
static frame If you want the postage stamp to display a fixed frame (rather than update
to match the current frame), enter the frame to display here. For this to
work, you also need to press Shift+S to open the Preferences dialog, go to
the Node Graph tab, and make sure postage stamp mode is set to Static
frame.
Note that if the frame number you use is outside the frame range for the
node, it is clamped to the first or last frame in the range.
lifeteme range Enter a start and end frame to control the frame range when this node is
active. You can quickly toggle the lifetime on and off with use lifetime.
Displaying Controls
To display a node’s controls, double-click the node. It’s properties panel appears.
The image below shows the controls available for editing parameters. Note that the presence of each
control varies according to the parameter’s function.
USER GUIDE
182
Properties Panels | Using Input Fields
Tip: You can also enter expressions (programmatic instructions for generating values) into
fields. You always start an expression by typing =. See Expressions for information about
how to format expressions.
Tip: Nuke also allows you to enter formulas into fields, making it easy to do quick
calculations. For example, if you wanted to halve a value of 378, you could simply type 378/2
into a field and press Enter to get 189.
You can increment or decrement field values by hundreds, tens, tenths, hundredths, and so on. The
magnitude of change depends on the initial position of your cursor. For example if you wanted to
increment the initial value of 20.51 by ones, you would insert your cursor before the 0.
Tip: You can also increment and decrement values using the mouse wheel (if available) or by
pressing Alt while dragging on the value. The latter method is particularly useful for tablet
users.
To use a virtual slider, you can hover the cursor over a numeric control, click the middle-mouse
button, and drag the field to adjust the associated control.
USER GUIDE
183
Properties Panels | Using Input Fields
USER GUIDE
184
Using the Color Controls | Using the Color Swatch
You can use the color swatch button to activate the eye dropper tool. You can copy a color from one
swatch to another by dragging and dropping the color swatch with the color you want to use over the
color swatch you want to replace.
The color picker button can be used to display and make color selections. Depending on the settings
in the Preferences dialog, you may use an in-panel color picker, or a floating color-picker window.
(See Appendix A: Preferences for more information.)
You can use the channel selector to toggle between the slider and manually enter values for each of
the channels.
USER GUIDE
185
Using the Color Controls | Using the In-Panel Color Picker
4. When you are happy with the color sample, click the color swatch again. This closes the eye
dropper tool and now displays your selected sample.
Tip: Holding Ctrl/Cmd and clicking the color picker button opens the alternate color picker
to the one specified in the Preferences dialog.
You can adjust the hue by dragging the marker on the edge of the color wheel (or the marker inside
the wheel) around to the required hue. You can adjust the saturation by dragging the marker inside
the wheel in or out to the required saturation.
USER GUIDE
186
Using the Color Controls | Using the Floating Color Picker Window
Tip: You can also Ctrl/Cmd+click on the color wheel to only affect the hue, and Shift+click to
only affect the saturation.
To adjust the value (brightness) of the color, hold down Ctrl/Cmd+Shift and drag right or left.
By default, the color wheel uses relative cursor positioning. This means the cursor position can be
offset from the marker position, which allows for very fine adjustments. You can disable this behavior
and use absolute cursor positioning by holding Alt while moving the markers.
Note: If any red, green, or blue values are higher than 1, the marker inside the wheel turns
red. If the red, green, and blue channels all have a value of less than 0.1, the marker turns
blue. If at least one channel is negative and at least one is positive, the hue indicator turns
red.
To increment the value by 0.01, left-click on the arrow button . To decrement the value by 0.01,
right-click on the arrow button. Use Shift+click for 0.1, and Alt+click for 0.001.
You can also click and drag right or left on the button to scrub the value up or down. Use Shift+drag
to scrub quickly, or Alt+drag to scrub slowly.
Tip: Holding Ctrl/Cmd and clicking the color picker button opens the alternate color picker
to the one specified in the Preferences dialog.
You can change the floating window to be horizontal by dragging on one of the corners of the window
to resize it. When it is wide enough, the sliders automatically become horizontal.
USER GUIDE
187
Using the Color Controls | Using the Floating Color Picker Window
• From the TMI, HSV, and RGB buttons, you can select which slider you want to display.
• There are three states of the color wheel: hide color wheel, show color wheel, and show color wheel
with square. You can cycle through these states by simply clicking on the color wheel button
multiple times.
• You can choose to show the color swatches by clicking the color swatch button.
• If you want the background of the sliders to show what the value of the color would be if the sliders
were set to the current position, click the Dyn button.
Using the color wheel in the floating window is exactly the same as using the in-panel color wheel;
drag the marker on the edge of the wheel to adjust the hue, and drag the marker inside the wheel to
adjust the saturation.
However, you can also pan and zoom on the color wheel in the floating window:
• To pan, press Alt and drag the cursor over the color wheel.
• To zoom, press Alt and drag left or right with the middle-mouse button.
• You can reset the zoom and/or pan by simply middle-clicking on the color wheel.
Using the sliders in the floating color window is exactly the same as using the in-panel sliders.
When you're happy with a color, you can save it by right-clicking on the swatch where you want to
save it. This replaces the original swatch that was there. You can also drag and drop a color you want
to save on any of the swatches to replace it.
USER GUIDE
188
Using the Color Controls | Using the Channel Selector
The rectangle above the sliders shows the original color on the right, the currently selected color on
the left. When you hover the cursor over this, an arrow appears allowing you to copy one to the other
by clicking once on the rectangle.
You can open multiple color picker floating windows, by pressing Ctrl/Cmd+Alt+click on another
parameter's color picker button.
(assuming you're processing the RGB layer.) You can use the channel selector button to display
and edit the individual channel values. The number displayed on the channel selector button
represents the number of available channels for editing.
USER GUIDE
189
Using the Color Controls | Color Slider Functions
RGBA Sliders
Slider Function
The red slider (R) This allows you to control the red channel's value (or the first channel in a layer
if you are processing another layer besides RGBA).
The green slider This allows you to control the green channel's value (or the second channel in a
(G) layer if you are processing another layer besides RGBA).
The blue slider (B) This allows you to control the blue channel's value (or the third channel in a
layer if you are processing another layer besides RGBA).
The alpha slider This allows you to control the alpha channel's value (or the fourth channel in a
(A) layer if you are processing another layer besides RGBA).
TMI Sliders
Slider Function
The temperature This allows you to control apparent color temperature by inversely affecting
slider (T) red and blue values (assuming you are processing the RGBA layer).
The magenta/green This allows you to control the mix of green and magenta hues. To add more
slider (M) magenta (increase the red and blue channels' values, while decreasing the
green channel's), drag up. To add more green (increase the green channel's
value, while decreasing the red and blue channels'), drag down.
The intensity slider This allows you to simultaneously control the red, green, and blue channel
(I) values. To increase the value of all channels by the same amount, drag up.
To decrease the value of all channels by the same amount, drag down.
USER GUIDE
190
Using the Color Controls | Color Slider Functions
HSV Sliders
Slider Function
The hue slider (H) This allows you to control the color's location on the traditional color wheel
(for example, whether the color is red, yellow, or violet).
The saturation This allows you to control the intensity or purity of the color.
slider (S)
The value slider (V) This allows you to control the brightness of the color (the maximum of red,
green, and blue values).
Note: The HSV sliders are only available in the floating color picker window. In the in-panel
color picker, you can use the color wheel to adjust hue, saturation, and value.
USER GUIDE
191
Customizing a Node’s Defaults with Node Presets | To Create a Node Preset:
Apply Preset. User presets are your own personal presets, and shared presets can also be used
by other users.
2. To delete a preset, click the load node presets button and select Delete Preset. In the dialog
that displays, select the preset you want to delete from the dropdown menu, and click Delete.
USER GUIDE
192
Animating Parameters
Animating a parameter refers to changing its value over time. You do so by setting keyframes (frames
at which you explicitly define a value) and allowing Nuke to interpolate the values in between. You can
animate most of Nuke’s parameters in this manner.
Setting Keyframes
2. Click the animation button next to the parameter you want to animate.
3. Select Set key from the dropdown menu. The parameter’s input field turns blue, indicating that a
keyframe has been inserted. Nuke switches to autokey mode: when you change the parameters
value at another frame, it automatically inserts another keyframe for you.
You can also set a key for all the controls in a node. To do so, right-click on a node's properties
panel and select Set key on all knobs.
4. Navigate to the next frame where you want to place a key.
USER GUIDE
193
Animating Parameters |
5. Edit the parameter’s value using the input field, regular slider, or color slider. The moment you
change the value, Nuke creates a keyframe.
6. Continue adding key frames as necessary.
7. Use the Viewer’s scrubber to preview the result.
Deleting Keyframes
You can link any controls with others by using expressions (see Expressions), but you can also quickly
and easily link with the Tracker node using the Link to option in the Animation menu. For example,
to link the translate control of the RotoPaint node with a Tracker node, do the following:
1. Create the Tracker node you want to link to.
2. On the Transform tab of the RotoPaint node’s control panel, click on the translate animation
menu.
3. Select Link to > Tracker linking dialog...
4. Select the Tracker node you want to use in the tracker node dropdown and in the link to
dropdown, select whether you want to link to the position of the track or the translate values of it.
5. Select which tracks you want to use by checking the track boxes.
The expression fields update with the appropriate expression syntax.
6. Then click OK, and your linking is done.
USER GUIDE
194
Animating Parameters | Animated Parameters in the Dope Sheet and the Curve Editor
Your Bezier shape’s translate value now changes when the Tracker value is changed.
The Dope Sheet provides an easy way to edit keyframes as well as reposition, trim, and slip clips.
The Curve Editor allows you to adjust keyframes and the interpolation between them.
You can add key frames, delete key frames, and even adjust the interpolation between key frames
without ever looking at the Dope Sheet or Curve Editor. However, as the animation grows more
complex, you may find it easier to edit the animation by manipulating its keyframes directly. For
more information on how to do so, see Editing Clips in the Dope Sheet and Using the Curve Editor.
USER GUIDE
195
Animating Parameters | Using the Dope Sheet
Hierarchy view Click through the hierarchy view to see your nodes and a hierarchical
list of animated controls. If you can’t see a node in the list, try opening
its properties panel.
To make a node appear in the Dope Sheet without having its properties
panel open, select the dope sheet checkbox in the bottom of the Node
tab of the node's properties panel.
You can display the Read and TimeClip nodes in the Dope Sheet when
their properties are closed, by clicking the middle button in the
bottom-left of the Dope Sheet.
Read nodes Any Read nodes that have their properties panels open display as gray
bars in the Dope Sheet.
USER GUIDE
196
Animating Parameters | Using the Dope Sheet
Keyframes Your keyframes display as gray markers in the keyframe grid. If you go
down to the lowest level of hierarchy, you can also view the keyframes
set for different views in stereoscopic or multi-view projects.
Current frame indicator The current frame indicator displays as an orange line.
First and last frame in The first and last frame in the project's frame range (as defined in the
the project Project Settings) display as white/gray lines.
You can also use the following controls at the bottom of the Dope Sheet:
Control Description
Synchronize the frame range of your project between the Dope Sheet
and the Curve Editor.
Display all Read and TimeClip nodes in the Dope Sheet. By default,
only the nodes that have their properties panels open show up on the
Dope Sheet. If you click this button, all Read and TimeClip nodes in
your script are displayed in the Dope Sheet. If you click the button
again, the default view is restored.
If you don't enter a number in the Move field, it shows the amount of
your previous move.
USER GUIDE
197
Animating Parameters | Using the Dope Sheet
• All the Read nodes that have their properties panels open.
• Any AppendClip, FrameRange, Retime, TimeOffset, TimeWarp, and TimeClip nodes that have their
properties panels open.
• Any nodes that have keyframes set on them and have their properties panels open.
Tip: To force the above nodes to display in the Dope Sheet even when their properties aren't
open, check the dope sheet box on the Node tab of the node’s properties panel or select
the node in the Node Graph and press Alt+D.
Tip: If you want to view an AudioRead node under your keyframes, you can display it by
right-clicking and selecting View > Audio > Draw Style > Below. For more information on
the audio options, see Audio in Nuke.
For example, in the below script, the Transform node has been animated on frames 0, 10, 20, and 30.
When the Viewer is connected to the Transform node, the Dope Sheet shows keys on those frames.
There is also a TimeOffset node in the script, set to move the input clip 5 frames forward in time.
When the Viewer is connected to the TimeOffset node, the Dope Sheet shows the keys shifted by 5
frames - on frames 5, 15, 25, and 35.
USER GUIDE
198
Animating Parameters | Using the Dope Sheet
As a result, the keyframes for the Blur node appear in the Dope Sheet twice. Adjusting the keys in one
location also updates them in the other.
Selecting Keyframes
There are several ways to select and edit different keyframes:
Select multiple frames Drag a marquee over your keyframes in the keyframe view.
Add or remove Hold Shift and drag another marquee around some of the selected
keyframes from a keyframes.
marquee selection
Select a single keyframe Click it in the keyframe view. Its parent keyframe and all other keyframes
depending on it are selected too. The frame number of the keyframe is
displayed next to it.
Select all keyframes in Click the node name in the hierarchy view. All the child keyframes under
one node that node are selected.
If there are multiple paths from an animated node to the currently active Viewer, the keyframes for
the animated node appear in the Dope Sheet multiple times. When you select them in one location,
they turn orange, while the corresponding keys in other locations turn white.
USER GUIDE
199
Animating Parameters | Editing Clips in the Dope Sheet
Note: When selecting keys that appear in the Dope Sheet multiple times (using multiple
paths), marquee selection is constrained to one path only.
When using the Ctrl/Cmd+V keyboard shortcut, pasting keyframes is relative to the location of the
current frame indicator. In other words, if you have keyframes at 1, 10, and 20 and you copy this
selection before pasting the selection at frame 21, new keyframes are set at frames 21, 30, and 40.
To paste keyframes on the same frame as the source keys, select the control you want to receive the
keys, right-click on the Dope Sheet, and select Edit > Paste > Paste Absolute.
You can also add keyframes in the Dope Sheet to add animation where there isn’t any at the moment.
Add keyframes by Ctrl/Cmd+Alt+clicking on an empty spot in the Dope sheet. A new keyframe is
created and you can adjust it as necessary.
USER GUIDE
200
Animating Parameters | Editing Clips in the Dope Sheet
• Trimming clips refers to removing unwanted frames from the head or tail of the clip. In the Dope
Sheet, you can trim clips using the Read and TimeClip nodes.
• Slipping clips refers to changing the content of the clip that is seen, but not the position or duration.
In the Dope Sheet, you can slip clips using the Read and TimeClip nodes.
• Setting a frame range for a clip controls which frames a downstream AppendClip node uses from
the input, which frames are displayed in the Viewer when the timeline range dropdown menu is set
to Input, and which frames are sent to the flipbook. In the Dope Sheet, you can set the frame range
for a clip using the FrameRange node.
Repositioning, Trimming, and Slipping Clips Using Read and TimeClip Nodes
• To reposition a clip, place the cursor over the Read or TimeClip bar in the Dope Sheet and drag left
or right.
The new start and end frame numbers are displayed on either side of the bar, and the frameoffset
control in the Read or TimeClip properties panel is adjusted automatically.
Tip: You can also reposition a clip by selecting the bar, double-clicking on the first and last
frame numbers next to it, and adjusting them in the x fields that pop up.
• To trim a clip, place the cursor in the beginning or end of the bar and drag left or right.
The new start or end frame is displayed next to the bar, and an orange line appears to represent the
original frame range. The framerange control in the Read or TimeClip properties panel is adjusted
automatically.
USER GUIDE
201
Animating Parameters | Editing Clips in the Dope Sheet
Tip: You can also trim a clip by selecting the bar, double-clicking on the first or last frame
number next to it, and adjusting the number in the x field that pops up.
Tip: The number of frames you can trim from either end of a clip is constrained by the clip's
original frame range. However, if necessary, you can trim beyond the original range by
holding Ctrl/Cmd while trimming.
If necessary, you can change how the clip displays inside the clip handles (the unused frames
beyond the start or end of the clip). Adjust the before and after dropdown menus next to the
frame range control in the Read or TimeClip properties to change what happens before and after
the frame range limits:
• hold - select to show a still picture of the first/last frame of the frame range.
• loop - select to start over and keep looping the span of the frame range outside the first/last
frame of the frame range.
• bounce - select to play the span of the frame range backwards and forwards between the frame
range limits.
• black - select to display a black frame outside of the first/last frame.
• To slip a clip, first trim the clip to create clip handles. Then, place the cursor over the bottom half of
the bar and drag left or right.
The clip handles move to indicate what portion of the clip is visible. The frame range and frame
offset controls in the Read or TimeClip properties panel are adjusted automatically.
Tip: The number of frames you can slip a clip by is constrained by the clip's original frame
range. However, if necessary, you can slip beyond the original range by holding Ctrl/Cmd
while slipping.
To reposition a clip, place the cursor over the TimeOffset bar in the Dope Sheet and drag left or right.
USER GUIDE
202
Animating Parameters | Editing Clips in the Dope Sheet
The new start and end frame numbers are displayed on either side of the bar, and the time offset
(frames) control in the TimeOffset properties panel is adjusted automatically.
Tip: You can also reposition a clip by selecting the bar, double-clicking on the first and last
frame numbers next to it, and adjusting them in the x fields that pop up.
• To set both the first and the last frame for a clip, place the cursor over the FrameRange bar in the
Dope Sheet and drag left or right.
The new start and end frame numbers are displayed on either side of the bar, and the frame range
control in the FrameRange properties panel is adjusted automatically.
• To set only the first or the last frame for a clip, place the cursor in the beginning or end of the bar
and drag left or right.
The new start or end frame is displayed next to the bar, and the frame range control in the
FrameRange properties panel is adjusted automatically.
USER GUIDE
203
Animating Parameters | Synchronizing the Frame Range
Tip: You can also set the frame range for a clip by selecting the bar, double-clicking on the
first and last frame numbers next to it, and adjusting them in the x fields that pop up.
Tip: You can also do this by clicking the synchronize button at the bottom of the Dope
Sheet.
1. Click the animation button next to the parameter whose curve you wish to view.
2. Select Curve Editor. The Curve Editor panel appears with a focus on the selected parameter’s
curve.
The vertical, or y axis, denotes the value of the parameter.
The horizontal, or x axis, denotes time (in frame units).
USER GUIDE
204
Animating Parameters | Using the Curve Editor
The parameter tree on the left allows you to focus on any curve in the script.
Tip: If you want to view an AudioRead node under your animation curves, you can display it
by right-clicking anywhere in the curve editor and selecting View > Audio > Draw Style >
Below. For more information on the audio options, see Audio in Nuke.
To enable or disable a curve in the Editor, in the parameter tree on the left, click the + and - signs to
expand and collapse the hierarchy as necessary.
USER GUIDE
205
Animating Parameters | Using the Curve Editor
Tip: Depending on your mouse preferences, you can zoom to a custom area in the Curve
Editor, middle-click on the Editor and drag to select an area with a marquee. When you
release the mouse button, the Editor zooms to fit the selected area in the Editor.
To pan in the Editor, hold the middle-mouse button and drag over the Editor. You can also use
Alt+drag.
USER GUIDE
206
Animating Parameters | Editing Curves
Editing Curves
You edit curves by moving the points on the curve to new locations. If necessary, you can add more
points to the curve. You can also sketch curves freely, use the usual editing functions such as copy
and paste, smooth curves with filtering, interpolate curves, loop, reverse or negate curves, and use
expressions to modify curves.
A box is drawn around the points to indicate they have been selected.
• To select all points, press Ctrl+A (Mac users press Cmd+A).
A box is drawn around the points to indicate they have been selected.
• To move a point along either the x or y axis only, drag the point to a new location.
USER GUIDE
207
Animating Parameters | Editing Curves
• To move a point in any direction, Ctrl+drag (Mac users Cmd+drag) the point to a new location. You
can also nudge points using the numeric keypad arrows.
• To adjust the values of a point numerically, select the point and double-click on the x or y value that
appears next to it.
• By default, when you move a point, its position on the x axis is rounded to the nearest integer. To
disable this, you can right-click on the Curve Editor and select Edit > Frame Snap. You can also
momentarily disable the snapping by pressing Shift while moving a point.
• To move several points at the same time, select them and drag the selection box to a new location.
To add or remove points to or from the selection box, Shift+click on the points.
To resize and scale the selection box, drag its edges. If the selection box is very narrow, you can
press Ctrl/Cmd when resizing it. This allows you to resize the box in one dimension only. For
example, if you have a box that’s wide on the x axis but flat on the y axis, you can resize it in this
way along the x axis.
To avoid accidentally moving a point inside the selection box, press Ctrl/Cmd+Shift when dragging
the box to hide the points inside the box.
USER GUIDE
208
Animating Parameters | Editing Curves
2. Drag the tangent handles to a new location. The curve follows the handles.
Sketching a Curve
Press Alt+Ctrl+Shift (Mac users press Alt+Cmd+Shift) while drawing a curve on the editor. Nuke
sketches a curve that follows your mouse movements.
You can cut, copy, or paste any selected points, expressions, or curves, by doing the following:
1. Right-click on the Curve Editor.
2. From the menu that opens, select Edit and the editing function you want to use on the entire
curve, for example:
• Edit > Copy > Copy Selected Keys to only copy the points you have currently selected.
• Edit > Copy > Copy Curves to copy an entire curve.
• Edit > Copy > Copy Expressions to copy the expression that creates the curve.
USER GUIDE
209
Animating Parameters | Editing Curves
• Edit > Copy > Copy Links to copy a curve and keep its values linked to the original curve, so that
if you change the original, your changes also affect the copied curve.
4. In the slope and left slope fields, define how you want to move the points’ tangent handles.
USER GUIDE
210
Animating Parameters | Editing Curves
2. Right-click on the Editor. Select Interpolation and the type of interpolation you want to use.
Select:
• Constant to force a constant value after each selected point.
• Linear to use linear interpolation. This produces sharp changes at key frames and straight lines
between them.
• Smooth to set the tangents’ slopes equal to the slope between the keyframe to the left and the
keyframe to the right if the selected point is between these two key frames along the y axis. If
the selected point is not between these key frames and has a larger or smaller value than both
key frames, the tangents’ slopes are made horizontal. This ensures the resulting curve never
exceeds the keyframe value.
• Catmull-Rom to set the tangents’ slope equal to the slope between the keyframe to the left and
the keyframe to the right regardless of where the selected point is located. The resulting curve
can exceed the keyframe values.
USER GUIDE
211
Animating Parameters | Editing Curves
• Cubic to set the slope so that the second derivative is continuous. This smooths the curve.
• Horizontal to make the tangents horizontal, setting the slope around the selected points to
zero.
• Break to adjust the two tangents of a selected point independent of each other.
• Before > Constant or Linear to interpolate the parts of the curve that are on the left side of the
first point. This option only works if you have selected the first point on the curve.
• After > Constant or Linear to only interpolate the parts of the curve that are on the right side
of the last point. This option only works if you have selected the last point on the curve.
USER GUIDE
212
Animating Parameters | Editing Curves
Reversing a Curve
You can reverse a curve by right-clicking on the editor and select Predefined > Reverse.
This makes the curve go backward in time. Both the new curve and the original curve are displayed.
The solid line represents the actual curve, and the dotted line contains the key frames that you can
modify.
USER GUIDE
213
Animating Parameters | Editing Curves
Negating a Curve
You can negate a curve by right-clicking on the editor and select Predefined > Negate.
The curve becomes the negative of the key frames. For example, a value of 5 turns into -5. Both the
new curve and the original curve are displayed. The solid line represents the actual curve, and the
dotted line contains the key frames that you can modify.
2. Click the Revert button to set the field back to previous valid expression.
OR
1. Right-click on the Editor, and select Edit > Edit expression.
2. In the dialog that opens, type the expression you want to use for the curve, for example, sin(x)/x.
3. Click OK.
USER GUIDE
214
Compositing Viewers
A Viewer node displays the render output of any connected process nodes in the Viewer panel and
does not edit any data. Viewer nodes allow you to quickly assign the right values to parameters as
they allow you to edit in context - that is, edit a given node’s parameters upstream in a script while
viewing the effect of those changes downstream.
Nuke's Viewer output is labeled with the bounding box size and the format. The bounding box is the
area the Nuke treats as containing image data and the format is the resolution of the input image.
These two are the same by default so that the output is the same as the resolution.
See Reformatting Elements and Adjusting the Bounding Box for more information on format and
bounding boxes.
You can place as many Viewer nodes in a script as you wish, which allows you to simultaneously view
multiple outputs. You can also pipe the output from up to ten process nodes into a single Viewer
node, and then cycle through the various displays. This allows you to easily compare an image before
and after processing by a given effect.
Note: The maximum image size the Viewer can display is 64k x 4k (or the equivalent
number of total pixels at other resolutions). Make sure though, that you have sufficient RAM
memory available if you want to use the maximum image size.
USER GUIDE
215
Compositing Viewers | Adding Viewer Nodes
USER GUIDE
216
Compositing Viewers | Toggling Views
Toggling Views
If a Viewer node has multiple inputs, like the one depicted above, you can press the up or down
arrow keys to quickly cycle through the views (your cursor needs to be in the Viewer window). To view
a particular node press the number key (1, 2, 3... 0) corresponding to the pipe number whose
contents you wish to view.
Note: In many Linux windows managers, the Alt key is used by default as a mouse modifier
key. This can cause problems in 3D applications where Alt is used for camera navigation in
3D environments.
You can use key mapping to assign the mouse modifier to another key, such as the
(Super or Windows logo) key, but the method changes depending on which flavor of Linux
you're using. Please refer to the documentation on key mapping for your particular Linux
distribution for more information.
USER GUIDE
217
Compositing Viewers | Showing / Hiding Floating Viewers
OR
Select zoom in from the zoom dropdown menu in the top right corner.
USER GUIDE
218
Compositing Viewers | Viewing Overscan in the Viewer
USER GUIDE
219
Using the Viewer Controls | Compositing Viewer Controls
The tools at the bottom of the Viewer allow you to adjust the playback settings, including setting the
frame range, selecting the playback mode, and locking the Viewer playback range.
Drag the orange marker along the timeline to quickly cue to a specific frame. The number of the
current frame appears below the center of the timeline. You can also cue to a frame by typing its
number directly into this field.
Tip: The current frame and in an out point fields also accept simple mathematical functions,
such as +/-20 to jump forward or backward 20 frames.
USER GUIDE
220
Using the Viewer Controls | Compositing Viewer Controls
By default, Nuke automatically adjusts the timeline of every Viewer window to show the frame range
defined in your Project Settings. If no frame range is defined, the frame range of the first image you
read in is used as the global frame range.
Viewer timeline controls also have a frame range source dropdown menu that you can use to define
where the timeline gets its frame range from. You can set this menu to Global, Input, or Custom.
Global is the default setting described above.
The playback rate field (frames-per-second) displays the project’s playback speed. Nuke attempts to
maintain this speed throughout playback, although this adjusts depending on the resolution of the
imagery and your hardware configuration.
Note: The asterisk (*) denotes the playback speed selected using the Project Settings >
Root > fps control.
To have the Viewer adjust the timeline to show the “in” and “out” frames of the current input clip,
select Input from the frame range source dropdown menu. The number of the first frame in the clip
is shown in the left end of the timeline and the number of the last frame in the right end. If you
change the input of the Viewer, the frame range on the timeline is adjusted accordingly.
To manually adjust the frame range for the current Viewer window, pan and zoom on the timeline
until you see the desired frame range and Custom becomes selected in the frame range source
dropdown menu. Alt+drag to pan, and MMB+drag to zoom in. You can also zoom in on or out of the
timeline using the mouse wheel. To reset the zoom, press the middle mouse button over the
timeline.
To adjust the playback range for the current Viewer window, click+drag the red playback range
markers on the timeline to a new “in” and “out” frames as shown below, or enter a new playback
range in the playback range field and press the frame range lock button.
To toggle between the new playback range and the visible timeline range, click the lock frame button
again.
The fps field (frames-per-second) initially displays the project’s playback speed. Nuke attempts to
maintain this speed throughout playback, although this adjusts depending on the resolution of the
imagery and your hardware configuration.
USER GUIDE
221
Using the Viewer Controls | Jumping to a Specific Frame
Buttons Functions
The Play backward and Play forward buttons play the sequence backward or
forward at the script’s frame rate. When you press a play buttons, it toggles to a
stop a button.
The Back 1 Frame and Forward 1 Frame buttons cue the sequence to the
previous or next frame.
The Previous keyframe and Next keyframe buttons cue the sequence to the
script’s previous or next keyframe.
The First frame and Last frame buttons cue the sequence to the first and last
frame.
The Frame Increment field allow you to specify the number of frames by
which the Previous increment/Next increment buttons cue the sequence. This
is set to 10 frames by default.
The Playback Mode button lets you control how many times and in what direction the Viewer plays
back the sequence. Click the button to toggle between the following modes:
Button Function
Repeatedly plays the image back and forth from head to tail.
Plays once through the section between in and out point and stops at the out
point. If these are not marked, then it plays from the beginning to the end of
the sequence.
Plays once from the beginning to the end of the sequence, ignoring any in and
out points.
USER GUIDE
222
Using the Viewer Controls | Synchronizing Viewer Playback
When the lock icon changes from a closed lock to an open lock, that Viewer’s playback becomes
independent of other Viewers, and not cued to the other Viewers.
You can click the 'Refresh Viewer' button (or press U) to manually update the display while keeping
Viewer paused.
USER GUIDE
223
Using the Viewer Controls | Layer and Channel Dropdown Menus
Press one of the channel keys again to toggle back and display all channels.
Tip: If you press Shift while selecting the channel, your selection only affects the currently
active input of the Viewer node. This way, you can display different channels from the
Viewer’s different inputs. For example, when keying it can be useful to view the RBG
channels from one input and the alpha channel from another, and toggle between the two.
To achieve this, do the following:
1. Create a Viewer with several inputs.
2. Activate one of the inputs by pressing its number (for example 1) on the Viewer.
3. Press Shift and select RGB from the channel dropdown menu.
4. Activate another input (for example, input 2) by pressing its number on the Viewer.
5. Press Shift and select A from the channel dropdown menu.
6. Toggle between the inputs by pressing their numbers or the up and down arrow keys.
USER GUIDE
224
Using the Viewer Controls | Displaying Alpha Mattes
The channel dropdown controls which channel appears when you view the “alpha” channel. The
default setting displays the alpha channel when you press the A key, but you can change this by
selecting any channel in the data stream, as shown below.
USER GUIDE
225
Using the Viewer Controls | Viewer Info Bar
3. Click on the Viewer to make sure it’s the currently active panel.
4. Press M.
Nuke displays the image’s alpha channel as a red overlay on top of the RGB channels.
USER GUIDE
226
Using the Viewer Controls | Adjust Display Gain and Gamma
HSVL The default setting, shows colorspace values as Hue, 0, 0.00, 0.10, 0.10000
Saturation, Value, and Level.
You can sample a single pixel from the Viewer by pressing Ctrl/Cmd while clicking, a region from the
Viewer by pressing Ctrl/Cmd+Shift while dragging, a single pixel from the node’s input by pressing
Ctrl/Cmd+Alt while clicking, and a region from the node’s input by pressing Ctrl/Cmd+Alt+Shift while
dragging.
The gain and gamma toggle buttons let you switch between the default values of 1 (no change) and
the last gain and gamma adjustments you made in the Viewer.
Press the 'Clipping Warning' button to apply stripes to all pixels outside the range 0.0 to 1.0.
USER GUIDE
227
Using the Viewer Controls | 2D / 3D Toggle and Camera Controls
The camera dropdown menu on the right lets you choose which camera to look through when
multiple cameras exist in your 3D scene. For more information on these controls, see 3D
Compositing.
Selection Modes
Nuke features three selection modes, Rectangle, Ellipse, and Lasso. Selection modes work the same
in all Viewer contexts, whether you're in 2D selecting Roto splines or 3D selecting vertices, faces, or
objects. The selection mode dropdown is located above the Viewer at the top-right.
USER GUIDE
228
Using the Viewer Controls | 2D / 3D Toggle and Camera Controls
• Alt + Shift - subtractive selection. Holding Alt + Shift and selecting vertices, faces, or objects
removes the selection from any existing selection.
USER GUIDE
229
Using the Viewer Controls | Monitor Output Toggle
Note: For more information, see Previewing on an External Broadcast Video Monitor.
USER GUIDE
230
Controlling Zoom and Resolution | Using the Zoom Menu
Proxy Mode
Nuke can generate low-res proxies for displayed frames as needed. Press Ctrl/Cmd+P or click the
proxy mode toggle button on the Viewer to activate the proxy display mode.
By default, the proxy scale is set to 0.5. You can change the proxy scale in the Projects Settings,
which you can open by selecting Edit > Project Settings (or pressing S).
USER GUIDE
231
Controlling Zoom and Resolution | Lowering the Display Resolution of Individual Viewers
You can also read in rendered proxies using the Read nodes’ controls. The proxy file does not need to
match the proxy resolution in use. Depending on your settings, either the full-res or proxy file is
scaled to the required proxy size. For more information, see Read Nodes and Proxy Files.
From the Viewer’s down-rez dropdown menu, choose the factor by which you want to lower the
display resolution.
For example, if you have a 4K plate and are using a proxy scale of 1:2, your plate is still 2K even in the
proxy mode. Setting the down-rez factor to 1:2 in the Viewer scales the plate down further to 50% of
the proxy resolution, that is to 1K. This gives you much faster (but less accurate) feedback.
USER GUIDE
232
Controlling Zoom and Resolution | Full-frame processing
For example, a pixel aspect ratio of 2 accurately displays anamorphic footage the way it is projected,
as shown in the image:
If you want to ignore the pixel aspect ratio, you can toggle it by pressing Ctrl/Cmd+Shift+P over the
Viewer window.
Full-frame processing
By default, when you display or play through a sequence in the Viewer, Nuke only calculates and
caches the scanlines for the visible area. It's not caching the full frame, but a subset of the scanlines
you're viewing. For example, if you have set the zoom level to be ÷4, Nuke is only caching 1/4 of the
scanlines that make up the frame. In a lot of cases, this allows for faster playback and may be what
you want.
However, if you play through a sequence and then pan around or change the zoom level, Nuke has to
calculate the scanlines it didn’t calculate before. This may not be what you want if you are performing
tasks that require you to constantly pan around or zoom in and out of the plate (such as paint and
roto). If this is the case, you can click on the full frame processing button in the controls at the top
of the Viewer to force Nuke to process every scanline in the image. Compared to the default mode,
USER GUIDE
233
Controlling Zoom and Resolution | Region of Interest (ROI)
this may take slightly longer initially and requires more space in the Viewer cache, but once Nuke has
cached the frames you require, you can pan around and change the zoom level without breaking the
cache or affecting playback.
1. Click on the ROI button in the Viewer controls. The ROI overlay appears.
1. Over the Viewer, press Alt+W once (do not hold the keys down). The ROI button turns red, but the
ROI overlay does not appear. This allows you to freely draw your own ROI rather than adjust the
default overlay.
2. Drag a marquee to draw the region of interest where you need it.
USER GUIDE
234
Controlling Zoom and Resolution | Region of Interest (ROI)
1. After you’ve set a region of interest, you can clear it by pressing Alt+W over the Viewer. You can
then drag a new marquee to define a new region of interest.
2. To turn off the feature and update the whole Viewer with the recent changes, click the ROI button
again (or press Shift+W).
USER GUIDE
235
Viewer Overlays and Input Processes | Guides and Masks
Note: Guides and masks are not applied at render, they are simply Viewer overlays.
Guidelines are intended to highlight areas of the current format that won’t appear in the final render.
By default, no guidelines are selected. You can select any of the following guideline options:
• title safe - any text intended for the audience should reside within this zone.
USER GUIDE
236
Viewer Overlays and Input Processes | Guides and Masks
• action safe - any visual elements intended for the audience should reside within this zone.
USER GUIDE
237
Viewer Overlays and Input Processes | Guides and Masks
• format - any formatting changes must be applied to the area outlined in red.
Tip: The above guideline options also exist in the Viewer Settings. Press S on the Viewer to
display its settings and adjust the safe zone and format center controls.
Masks can be used to simulate a particular format, for example, 4:3 or 16:9. You can also choose the
mask overlay type.
• none - no masking is applied to the Viewer. This is the default state.
USER GUIDE
238
Viewer Overlays and Input Processes | Guides and Masks
• lines - any mask applied is highlighted using a pair of lines in the Viewer.
• blanking ratio - select the masking ratio applied to the Viewer, for example, 4:3 or16:9.
Tip: The above mask options also exist in the Viewer Settings. Press S on the Viewer to
display its settings and adjust the mask region outside ratio and mask mode controls.
USER GUIDE
239
Viewer Overlays and Input Processes | Adding Custom Guides and Masks
Tip: For information on locating your .nuke folder by platform, see Loading Gizmos, NDK
Plug-ins, and Python and Tcl Scripts.
The guides and masks that ship with the application are kept in the Nuke bundle, here:
<installation_directory>/pythonextensions/site-packages/custom_guides.py
Copy the custom_guides.py file to your .nuke folder and then add the guides and masks you require
to the existing Python code inside the .py to append them to the Viewer dropdowns. For example:
guides.Guide("myGuide", 0.75, 1, 0.8, 0.3, guides.kGuideMasked)
OR
guides.MaskGuide("5:3",5.0/3.0)
1. Select a node in your script and press 1 to display its output in the Viewer.
2. Select the node you want to compare and press 2.
The 2 keystroke connects the image to the Viewer (assigning the next available connection,
number 2).
3. From the A and B dropdown menus on top of the Viewer, select the images you want to compare.
The menus display a list of nodes most recently connected to the Viewer.
4. From the Viewer composite dropdown menu in the middle, select wipe.
USER GUIDE
240
Viewer Overlays and Input Processes | Using the Viewer Composite Display Modes
The two images are displayed split-screen in the Viewer. You can view their details in the A and B
information bars at the bottom of the Viewer.
Tip: If you press Shift while selecting a channel, your selection only affects the currently
active input of the Viewer node. This way, you can display different channels from the
USER GUIDE
241
Viewer Overlays and Input Processes | Input Process and Viewer Process Controls
Viewer’s different inputs. For example, when keying it can be useful to view the RBG
channels from one input and the alpha channel from another, and toggle between the two.
The display composite options - over, under, and minus - can also be selected to overlay two
images. When the two images are 2D, this allows you to create a quick comp.
When one image is 2D and the other is a 3D node, you can use under to line up the wireframe
preview with the 2D reference, and see how the 3D matches prior to a full render.
One example of this is when you want to preview a wireframe 3D scene with a background plate that
you are trying to match, as shown below. For more information, see the 3D Compositing chapter.
USER GUIDE
242
Viewer Overlays and Input Processes | Input Process and Viewer Process Controls
dropdown menu in the Viewer and the node is instantiated internally within the Viewer when the item
is selected so there is no danger of accidental deletion or modification. This also enables multiple
Viewer Processes to be registered at different points of start-up (as Nuke works through the NUKE_
PATH menu.py files).
The Viewer settings contain an option for the Input Process to be applied before or after the Viewer
Process, so the two may be used in conjunction, for instance, with the Input Process applying a
projection mask after the Viewer Process applies a film look profile. While you could combine the two
into a single Viewer Process node, it can be advantageous to keep operations separated. Having both
the Viewer Process and Input Process available provides a great deal of flexibility.
You can create an Input Process by creating a node in the Node Graph and naming it as an Input
Process using Nuke’s Edit menu. Once an Input Process has been named, the IP button appears in the
Viewer controls. When the IP button is activated, any image you view is passed through the Input
Process.
Unlike Input Processes, Viewer Processes are registered using Python. They can be session
independent and always appear in the Viewer’s Viewer Process dropdown menu. There are two
predefined Viewer Processes, sRGB and rec709, but you can also build and add your own. When a
Viewer Process is selected from the Viewer Process dropdown menu, any image you view is passed
through that Viewer Process.
Whenever possible, the Input Process and Viewer Process are executed on the GPU. 1D LUT and 3D
LUT (Vectorfield) have GPU implementations, so the built-in Viewer Processes run on the GPU (unless
gl buffer depth has been set to byte in the Viewer settings, in which case all processing is done on
the CPU). To get the GPU'd versions of the nodes for use in a custom Viewer Process gizmo, press x
over the Node Graph, enter ViewerGain, ViewerGamma, or ViewerClipTest in the command entry
window, and press Return.
The following table lists the differences between an Input Process and a Viewer Process.
Set by selecting the node in the Node Graph and Registered using Python.
choosing Edit > Node > Use as Input Process.
Activated using the IP button in the Viewer Activated using the Viewer Process dropdown
controls. menu in the Viewer controls.
Requires that the node exists in the Node Graph. Is defined in a text file called menu.py that is
Can quickly and easily be modified by artists. Can run at start-up. Accessible for artists, but not
also be accidentally deleted, disabling the effect. likely to be accidentally modified or deleted.
USER GUIDE
243
Viewer Overlays and Input Processes | Input Process and Viewer Process Controls
Script dependent. Unless your Input Process node Session independent. The Viewer Processes
is saved in the template.nk file that is loaded at registered in menu.py are always available in
start-up, the Input Process is lost when you each new session of Nuke.
restart Nuke.
There can only be one Input Process at a time. There can be an unlimited number of Viewer
Setting a new Input Process overrides any Processes available in the Viewer Process
previously used Input Process. dropdown menu. For example, it is possible to
register Viewer Processes in any menu.py file
at start-up, so Viewer Processes can be added
at any directory in your NUKE_PATH.
Useful for temporary or non-critical viewing Useful for viewing options that you often need
options that you want in the current shot for or that should not be modified by artists on a
convenience, or for testing Viewer Processes shot-by-shot basis.
before registering them. Can also be used for
other things, such as field charts or masks that
may be switched on or off and changed around in
the shot.
Note: Note that Input Processes and Viewer Processes are part of a built-in, fixed pipeline
of nodes that are applied to images before they are displayed in the Viewer. This pipeline is
either:
gain > Input Process > Viewer Process > gamma > dither > channels > cliptest (if input
process order has been set to before viewer process in the Viewer settings)
OR
gain > Viewer Process > Input Process > gamma > dither > channels > cliptest (if input
process order has been set to after viewer process in the Viewer settings).
However, depending on what the Input Process and Viewer Process are doing, the order in
the built-in pipeline may not be the correct order. Therefore, if your Input Process or Viewer
Process have controls that also exist for the Viewer, such as float controls named gain,
gamma, or cliptest, then the Viewer drives them from the corresponding Viewer controls
and does not do that image processing itself. This allows you to implement these controls in
your Input Process or Viewer Process node/gizmo using whatever nodes and order you
want. If your Input Process and Viewer Process do not have these controls, then the Viewer
applies the effects in its normal way according to the built-in pipeline.
In the built-in pipeline, dither is applied to diffuse round-off errors in conversion of floating
USER GUIDE
244
Viewer Overlays and Input Processes | Input Process and Viewer Process Controls
point data to the actual display bit depth. Although the cliptest is drawn at the end, it is
computed on the image as input to the Viewer.
Note: By default, the predefined Viewer Processes, sRGB and rec709, affect all channels.
However, if you want them to only affect the red, green, and blue channels, you can activate
apply LUT to color channels only in the individual Viewer Settings or on the Viewers tab of
the Preferences.
To activate or deactivate the effect of an Input Process, click the IP button in the Viewer controls. Note
that the IP button only appears if the input process field in the Viewer settings is not empty. The
button is also only enabled when a node in the Node Graph is set as an Input Process.
To open the Viewer settings, press S on the Viewer, or select Viewer Settings from the Viewer’s right-
click menu. By default, input process is set to VIEWER_INPUT. If a node called VIEWER_INPUT exists
in the Node Graph, it is automatically used as the input process for the Viewer. This ensures
backwards compatibility with pre-5.2 scripts.
However, the Input Process node does not have to be named VIEWER_INPUT. You can use any node
as an Input Process. Do the following:
1. Select the node in the Node Graph and choose Edit > Node > Use as Input Process.
Alternatively, you can press S on the Viewer to open the Viewer settings and enter the name of the
node in the input process field.
2. In the Viewer settings, you can also define whether the Input Process is applied before or after the
Viewer Process currently in use. To do so, set input process order either to before viewer
process or after viewer process.
The Input Process node should not be connected to other nodes in the Node Graph. If you attempt to
connect it, an error is displayed in the Viewer. If you delete the Input Process node from the Node
Graph, the effect of the Input Process is disabled.
To activate a Viewer Process, select it from the Viewer Process dropdown menu in the top right
corner of the Viewer. Any images you now view using this Viewer are passed through the selected
USER GUIDE
245
Viewer Overlays and Input Processes | Input Process and Viewer Process Controls
Viewer Process.
Nuke includes the following predefined Viewer Process gizmos: sRGB, rec709, and rec1886. By
default, sRGB is used because it is a best-guess default for a typical computer monitor.
In addition to using the predefined Viewer Processes, you can also add your own by registering a
node or gizmo as a Viewer Process. You can register as many Viewer Processes with custom Viewer
LUTs as you like. For more information on creating and registering custom Viewer Processes, see
Creating Custom Viewer Processes.
All available Viewer Processes (both predefined and custom ones) appear in the Viewer Process
dropdown menu in the Viewer controls. To disable the use of a Viewer Process, select None from the
Viewer Process dropdown menu.
To open the properties panel of the currently active Viewer Process, select show panel from the
Viewer Process dropdown menu.
Note that if the control you want to adjust has the same name as any of the Viewer controls (for
example, gain or gamma), you should adjust the control on the Viewer. This drives the control in the
following:
• the Input Process’ controls if an Input Process is in use
• in the Viewer Process’ controls if no Input Process is in use.
Tip: If you want to render out a file with the Viewer Process effect baked in, you can select
Edit > Node > Copy Viewer Process to Node Graph to create an instance of the Viewer
Process node in the Node Graph.
USER GUIDE
246
Using the File Browser | Input Process and Viewer Process Controls
The navigation controls let you move through the directory structure, bookmark favorite directories,
and create new directory folders.
Windows only: You can show/hide the drives that Windows auto creates by right-clicking the required
drive, selecting Show Defaults, and checking or unchecking the drive.
USER GUIDE
247
Using the File Browser | To Use the Navigation Controls
To limit the file list to specific file types, use the filter dropdown menu and Sequences checkbox.
USER GUIDE
248
Using the File Browser | To Preview Files in the File Browser
• Select * to display all files (except hidden files), regardless of whether they’re associated with Nuke.
• Select .* * to display all files, including hidden files.
• Select */ to display directory names, but not their contents.
• Check Sequences to display image sequences as single titles, as in fgelement.####.cin 1-50 rather
than fgelement.0001.cin, fgelement.0002.cin, fgelement. 0003.cin, and so on.
Note: File sequences with no file extension (for example, fgelement.0001, fgelement.0002,
fgelement.0003, and so on) are not displayed as single titles the first time you view the
directory in the File Browser. However, they are displayed as single titles once you have
navigated to another directory and back again.
Note: By default, Nuke may not be able to display custom file extensions (for example,
.cext) as single titles. To fix this, you can register your custom file extension as a sequence
type using Python:
1. Create a file called init.py in your plug-in path directory if one doesn’t already exist. For
more information on plug-in path directories, see Loading Gizmos, NDK Plug-ins, and
Python and Tcl Scripts.
2. Open the init.py file in a text editor and add an entry in the following format (replacing
cext with your custom file extension):
nuke.addSequenceFileExtension("cext")
• You can also split incomplete sequences into separate Read nodes using the split seq checkbox.
USER GUIDE
249
Using the File Browser | To Select Multiple Files with the File Browser
USER GUIDE
250
Undoing and Redoing | To Open Incomplete Sequences in Separate Read Nodes
OR
USER GUIDE
251
Progress Bars | To Open Incomplete Sequences in Separate Read Nodes
Progress Bars
Nuke displays a progress bar for each active task it performs. By default, progress bars appear in a
pop-up dialog, but you can also display them in the Progress panel. To do so, click on a content menu
button and select Windows > Progress. This opens a Progress panel. The next time you get a
progress bar, it appears in the panel. If you delete the panel, progress bars appear in a pop-up dialog
again.
If you want to have the Progress panel appear in the same position in the future, you can save it as
part of a workspace. For more information, see Customizing Workspaces.
USER GUIDE
252
Handling Errors | To Open Incomplete Sequences in Separate Read Nodes
Handling Errors
Sometimes things may not go as you planned and you might face an error message in Nuke. When
this happens, an error alert displays in the Viewer and on the node that has a problem in the Node
Graph.
You can choose to view the error message itself in the Error Console tab next to the Properties pane.
If you can’t see the Error Console, click the content menu button and select Windows > Error
Console to display it. If you have an error in a Read or a Write node, or you are missing a plug-in, the
error message also displays in a pop-up window.
If you see an error alert on your node or in the Viewer, you can click the Error Console tab to open it
and view the error message.
In the Error Console error list, you can double-click on a message and, if possible, Nuke takes you to
the control panel of the node that’s in error. This isn’t always possible because of the nature of the
error. You can also click the clear output button on the Error Console to clear all error
messages on the tab.
Note: If you have a node in your Node Graph that is producing an error, but it’s not
connected to the node tree, Nuke won’t show a pop-up error message for the node and you
can still view the resulting image in the Viewer, if you have one connected. This enables
working without having to stop to close error messages in the event that you have erroring
nodes in the script that aren’t connected to your node tree.
USER GUIDE
253
Using Nuke Studio's Timeline
Environment
This chapter is designed to help you learn how to use Nuke Studio's Timeline environment, including
ingesting media and using the Timeline Viewer.
Note: For realtime playback, clips and sequences should be 16-bit RGBA DPX files, localized
to fast storage. See Localizing Media for more information.
In the case of complex or multi-format timelines, files must be cached to the fast storage
using the Timeline Disk Caching. See Caching Frames in the Disk Cache for more
information.
Real-time playback is currently tested with the following internal storage accessories:
USER GUIDE
254
Using Nuke Studio's Timeline Environment |
Raid cable 2 x Avago 05-26113-00 0.6 Meter internal cable SFF8643 To X4 SATA
HDD (MINI SAS HD)
The table below shows guidelines for the data rates required for real-time playback of single track,
16-bit RGBA DPX sequences, with no soft effects in Nuke Studio's timeline Viewer. The Data rate is
the required disk speed needed to achieve real-time streaming playback, for a given format, at a
given playback rate.
Note: The sample rates are taken from the AJA System Test application, with the Settings >
Disk Test set to File per frame, and should be used as guidelines only.
The AJA System Test application is available for download for Mac and Windows from
https://www.aja.com/products/aja-system-test
USER GUIDE
255
Using Nuke Studio's Timeline Environment |
USER GUIDE
256
About Clips and Shots | Source Clips
Note: The timeline Viewer currently treats all alpha channels as premultiplied, which can
result in the Viewer background being "added" to the image. If you’re working with un-
premultiplied images, set the Viewer background to Black.
Note: There is currently no QuickTime audio support on Linux. Support for audio is
scheduled for a later release.
Source Clips
Source clips are representations of files on disk. Shots on the timeline refer to source clips, so
making changes to a clip in a bin affects all shots that refer to that source clip.
Note: The colored bars under the thumbnail represent the layers available in the clip, in this
case color. Other layers include alpha, depth, and motion, similar to Nuke.
USER GUIDE
257
About Clips and Shots | Shots
Shots
Shots are representations of source clips, they are not saved on disk. Making changes to a shot only
affects that instance. See Managing Timelines for more information.
USER GUIDE
258
Clip and Shot Properties | A Source Clip Opened in the Timeline View
If the clip Properties are not displayed in your workspace, double-click a source clip or shot or
navigate to Window > Properties to open them in a floating window.
Note: The Properties panel allows you to override the Preferences and Project Settings
on a per file basis. See Appendix A: Preferences and Timeline Environment Project Settings
for more information.
As an example, .mov files allow you to control the decoder and ycbcr Matrix for clips, as well as the
standard controls available for all clips. R3D and ARRIRAW media use their own software
development kits (SDKs) to control the extensive settings usually seen on RED and ARRIRAW Cameras.
Note: The RED Decode Resolution and ARRIRAW Resolution and Proxy dropdowns
control the maximum allowed Viewer resolution, overriding the Viewer Image Quality
setting.
USER GUIDE
259
Clip and Shot Properties | Setting Source Clip Ranges
In addition, source clip properties are accessible through the same Python API as Nuke, improving
scripting capabilities and integration into existing pipelines.
You can also add OCIO context Viewer processes to the Viewer color transform dropdown in the
same way as regular Nuke Read and OCIODisplay nodes. See Changing the Viewer Color Space for
more information.
Note: You can reset source clip to its original frame range at any time by clicking rescan.
Rescanning also appends new frames as they become available.
Changing the original range affects source clips and shots differently. Opening a source clip in the
Viewer, or in the right-click Timeline View, and adjusting the original range limits or extends the clip
to that range of frames.
Extending the range past the original range adds handles, shown in red.
USER GUIDE
260
Clip and Shot Properties | Using Relative Paths to Media
Adjusting the original range changes the output of any existing shots, but still allows you to trim and
slip the shot range using the available handles. New shots pick up the new original range specified in
the Properties.
USER GUIDE
261
Clip and Shot Properties | Using Relative Paths to Media
Tip: If you want to set the project path for all new projects, navigate to the Preferences
under Project Defaults > General and set the project directory there.
Tip: Click Hrox Directory to automatically enter an expression that evaluates to the .hrox
location.
USER GUIDE
262
Ingesting Media | Using Relative Paths to Media
Ingesting Media
Adding media is as simple as drag-and-drop from a file browser or selecting File > Import File(s) or
Import Folder(s). The application imports your media into the bin view providing you with a
thumbnail of all of your clips and preserving the original folder and file hierarchy.
The media is soft imported, creating symbolic links to locations on disk. See Using the Copy Exporter
for information on how to quickly consolidate your media and projects, or Localizing Media to help
stabilize playback.
Note: Projects containing large amounts of movie files (for example .r3d and .mov) may
exceed the number of available file handles per process, causing problems opening new
files or projects and exporting.
You can increase the default limit of 1024 by entering the following command from the
terminal, then running the application from the same session:
ulimit -Sn 2048
Clips with no inherent frame rate information are assigned a frame rate at ingest as specified in the
Preferences.
1. Open the Preferences dialog by pressing Shift+S.
2. Select Behaviors > Timecode from the sub-menu on the left.
3. Use the RED file timecode dropdown to determine R3D clip behavior:
• Default from File - use the default set by the R3D file in question.
• Absolute Timecode - force the use of the Absolute Timecode as specified in the clip metadata.
USER GUIDE
263
Ingesting Media | Using Relative Paths to Media
• Edge Timecode - force the use of the Edge Timecode as specified in the clip metadata.
4. Use the other media timecode dropdown to determine clip behavior for all other clips:
• File Header - the file metadata header is used to derive the timecode, if it exists. This option
defaults to Frame Number if the header is missing.
• Frame Number - ignores the metadata header, even when present, and derives the timecode
from the frames in the clip.
5. Set the max valid timebase allowed from the image header, above which the value is clamped.
Image files are often created with application specific timebase values in the header description.
This can lead to reading in spuriously high frame rates, and the clamp aims to prevent this from
happening.
If your clips do have extremely high frame rates, increase this value as necessary to avoid
clamping.
6. Enable or disable EDL style spreadsheet timecodes:
• When disabled, the srcOut and dstOut values use the film convention, representing the last
frame of the cut.
• When enabled, the srcOut and dstOut values use the video convention, representing the frame
directly after the cut.
7. Click OK to save your settings.
USER GUIDE
264
Using Drag-and-Drop | Using Relative Paths to Media
Using Drag-and-Drop
Locate your media in a file browser and drag the frame range, clip, folder, or folders into the Project
tab.
USER GUIDE
265
Using the File Browser | Using Relative Paths to Media
Whenever you load or save files, a browser similar to the one shown below is displayed. The directory
navigation buttons let you create or access the directory from which you wish to read or write data.
The navigation controls let you move through the directory structure, bookmark favorite directories,
and create new directory folders.
Note: If you import folders, use the Import Options dialog to filter your ingest using
inclusion and exclusion parameters, separated by spaces. The dialog's Include patterns
field defaults to {supportedfiles}, which resolves to a list of all known supported file
extensions. To add your own custom extensions to this, you can use {supportedfiles} *.ext
(replacing .ext with your custom file extension).
Windows only: You can show/hide the drives that Windows auto creates by right-clicking the required
drive, selecting ShowDefaults, and checking or unchecking the drive.
USER GUIDE
266
Using the File Browser | To Use the Navigation Controls
USER GUIDE
267
Using the File Browser | To Use the Filter Dropdown Menu and Sequences Checkbox
Note: File sequences with no file extension (for example, fgelement.0001, fgelement.0002,
fgelement.0003, and so on) are not displayed as single titles the first time you view the
directory in the File Browser. However, they are displayed as single titles once you have
navigated to another directory and back again.
Note: By default, the application may not be able to display custom file extensions (for
example, .cext) as single titles. To fix this, you can register your custom file extension as a
sequence type using Python:
1. Create a file called init.py in your plug-in path directory if one doesn’t already exist. For
more information on plug-in path directories, see Loading Gizmos, NDK Plug-ins, and
Python and Tcl Scripts.
2. Open the init.py file in a text editor and add an entry in the following format (replacing
cext with your custom file extension):
nuke.addSequenceFileExtension("cext")
• You can also split incomplete sequences into separate Read nodes using the split seq checkbox.
USER GUIDE
268
Using the File Browser | To Preview Files in the File Browser
USER GUIDE
269
Using the File Browser | To Select Multiple Files with the File Browser
USER GUIDE
270
Using the File Browser | To Select Multiple Files with the File Browser
USER GUIDE
271
Sorting and Searching Media | Sorting the Project Panel
You can also color-code items in the Project panel and timeline to quickly sort and locate media. See
Color-coding Source Clips and Shots for more information.
In the left-hand directory pane, items are sorted alphabetically in ascending order by default. To sort
project items manually:
1. Click and hold, or right-click, the sorting dropdown and select Manual.
2. Drag-and-drop items into your preferred order.
USER GUIDE
272
Sorting and Searching Media | Sorting the Project Panel
The right-hand bin pane is also sorted alphabetically in ascending order by default, and there are
more options available in the sorting dropdown. Click and hold the dropdown to display the various
options, including Duration, Resolution, and Type.
You can also change the layout and size of items in the right-hand bin pane. Choose a layout from
thumbnails, list, and details and use the slider to determine the size of the items. The slider is
disabled in details mode.
USER GUIDE
273
Sorting and Searching Media | Searching for Media
Tip: Nuke Studio also examines file metadata for the search string by default, but you can
disable this behavior by disabling Include Metadata in the search dropdown.
• Match All Criteria - media that matches all the entries in the search string are matched. For
example, entering A01 DPX only matches media containing both A01 and DPX.
USER GUIDE
274
Sorting and Searching Media | Setting Poster Frames
• Match Any Criteria - media that matches any of the entries in the search string are matched. Using
the same example, A01 DPX matches any media containing A01 or DPX.
Tip: This functionality extends to the media spreadsheet if you prefer to search for items
there. See About the Media Spreadsheet for more information.
Filtering and flagging produce the same search results, but they are presented differently. Filtering
only displays files that match some or all of the search string, whereas flagging displays all content
and flags files that don't match some or all of the search string.
You can also filter and flag media by tag or metadata. See Filtering and Flagging Media Using Tags
and Filtering and Flagging Media Using Metadata for more information.
USER GUIDE
275
Sorting and Searching Media | Setting Poster Frames
3. Select a preset frame or click Custom to select an absolute or relative frame as the poster frame
for the source clip:
• Absolute - the poster frame number is derived from the file(s) on disk. For example, a .dpx
sequence myClip.####.dpx 1001-1500 can have an absolute poster frame between 1001 and
1500.
• Relative - the poster frame number is derived from the number of frames in the clip starting at
0. For example, a .dpx sequence myClip.####.dpx 1001-1500 can have a relative poster frame
between 0 and 499.
Note: If you select more than one source clip, you can't set an Absolute frame as the poster
frame.
USER GUIDE
276
Color-coding Source Clips and Shots | Setting Default Colors
You can set general defaults for items such as bins, sequences, and source clips as well as for specific
file types such as .exr or .mov files. You can also set custom colors for individual selections or groups
using the right-click menu or color picker button at the top left of the Project panel.
Note: You can disable the color scheme in the Project panel, timeline, and spreadsheet at
any time using the display in controls in the Preferences.
USER GUIDE
277
Color-coding Source Clips and Shots | Setting Colors by Selection
To change a default color, click a button in the Project Items preferences and use the color wheel to
change the color.
You can also set the label color for the Project panel and timeline or change the color used to
indicate the state of a shot on the timeline, such as offline.
USER GUIDE
278
Color-coding Source Clips and Shots | Setting Colors by File Type
1. In the Project panel or timeline, select the items you want to color.
Tip: The selection tools can help you make multiple selections quickly in the timeline. See
Using the Selection Tools for more information.
2. Right-click the selection and choose Color > Color Picker or click a color under Recent.
Tip: You can also color selections by clicking the button and picking the color.
3. Click Clear Color to remove any custom colors applied to the selection. The selection reverts to
the default item color set in the Preferences.
USER GUIDE
279
Color-coding Source Clips and Shots | Setting Colors by File Type
USER GUIDE
280
Reconnecting and Refreshing Clips | Setting Colors by File Type
Though all three options deal with reloading source clips, each has a particular use dependent on
context:
• Reconnect Media - allows you to redirect the filepath when the source file location changes.
• Refresh Clips (F8) - allows you to reload the clip when the source file location has not changed,
such as when work has been done on the clip offline. Selecting refresh only refreshes the clip’s
current frame range.
• Rescan Clip Range (Alt+F5) - similar to Refresh Clips, above, but rescan also checks for additional
frames that may have been added to the source file and adds them to the source clip’s frame range.
USER GUIDE
281
Localizing Media | Setting Localization Preferences
Localizing Media
Nuke Studio has the facility to cache source clips locally, either individually or by setting an
automatically localized folder (NUKE_TEMP_DIR/localize, by default), to help guarantee playback
stability. Local caching is controlled initially in the Preferences dialog, then on a clip-by-clip basis.
USER GUIDE
282
Localizing Media | Setting Localization Preferences
• off - no source clips are localized, regardless of the their localization policy.
Note: The current localization mode is displayed in the status bar at the bottom-right of the
interface.
3. Set the default localization policy for new source clips using the dropdown:
Note: The localization policy for existing source clips in the project must be set
individually. See Managing Localization for more information.
Note: Localization in both the timeline and Node Graph is paused during compositing
Viewer playback so that performance is not affected.
5. Enter a file path for localize to. Leaving this field as the default creates a sub-directory in the
Temp Directory as the local cache.
Note: On Windows, files saved to the localize to directory replace \\ (double back slashes)
and : (colon drive signifiers) with underscores so that the file path works as expected
between operating systems. For example:
\\windowspath\to\my\network\file.dpx is saved as __
windowspath\to\my\network\file.dpx
t:\my\network\path\file.dpx is saved as t_\my\network\path\file.dpx
6. Enter a value for limit to (GB) to control how much disk space is available in the cache directory.
USER GUIDE
283
Localizing Media | Setting Localization Preferences
Note: Negative values in this field reserve the specified amount of space at all times. For
example, -2 stops 2 GB of memory being used for caching.
7. You can specify the time interval (in minutes) before localized files are checked for updates using
the check for updated files every ## mins control.
The default setting checks for new versions of files every 30 minutes, but you can set this control
to any value. Any files that have changed since the last update check are flagged red in the Project
bin.
Tip: You can change the default localization indicators using the Appearance controls.
If read source files when localized files are out of date is enabled, source clips referencing cached
files that have changed since they were localized revert to reading the source files. Source clips that
are reading from the source files are marked with a striped red bar on the clip.
USER GUIDE
284
Localizing Media | Managing Localization
Enabling hide out of date progress bar hides the localization state of out of date files so that the
source clip appears the same as regular clips.
Note: The out of date localized files are not discarded, disabling read source files when
localized files are out of date picks up the out of date files instead of reading the source
files.
Managing Localization
As well as the overall Preferences for when new source clips should be localized, you can set
localization on a file-by-file basis. The localization policy for any existing source clips in your project
must be managed individually.
Tip: If you find that localization is slow to copy files, you can increase the number of threads
that Nuke uses to process jobs. Set the NUKE_LOCALIZATION_NUMWATCHERS environment
variable to the number of threads you want to use. See Environment Variables for more
information.
USER GUIDE
285
Localizing Media | Managing Localization
• From auto-localize path - the files are localized if they reside in the auto-localize from
directory, as long as the limit to (GB) limit is not breached.
• On Demand - the files are only localized when you update them manually. See Updating On
Demand Clips for more information.
• Off - the files are never localized, regardless of location.
As clips are localized, an amber progress bar displays in the thumbnail. Fully cached clips are
marked with a green bar at the top of the thumbnail and out-of-date clips are marked in red.
Note: Container formats, such as .mov and .r3d, do not display progress bars during
localization. The source clip only shows the green indicator once the entire file is localized
successfully.
Note: Nuke Studio also features a playback cache and timeline disk cache, allowing frames
to be cached in RAM or disk. See Caching Frames in the Playback Cache and Caching Frames
in the Disk Cache for more information.
3. If you need to pause localization temporarily, navigate to Cache > Localization and select Pause.
USER GUIDE
286
Localizing Media | Managing Localization
Note: Each file has its own update time, which is reset whenever the source files are
checked.
The following table is a quick reference guide to when and how source clips are localized, where:
• green - clips are localized automatically.
• amber - clips are localized when updated manually.
• red - clips are not localized.
System
on auto-path on demand off
Preference
on
USER GUIDE
287
Localizing Media | Updating On Demand Clips
System
on auto-path on demand off
Preference
manual
off
Note: If a Read node's localization policy is set to on demand and it hasn't been localized
previously, clicking the Update button localizes the file.
The local copy of the source clip is updated from the remote source clip.
USER GUIDE
288
Localizing Media | Clearing Localized Files
The local copy of all on demand source clips is updated from the remote source clip.
You can delete localized files by clicking Delete Unused Local Files (or by navigating to Cache >
Localization > Clear Unused Local Files). Nuke Studio displays a dialog containing all the files that
are marked for delete.
Tip: You can also open the Preferences from this dialog to adjust the localization behavior,
such as increasing the limit to (GB) preference.
USER GUIDE
289
Localizing Media | Clearing Localized Files
Click Continue to delete the localized files or Cancel to keep the cached files.
USER GUIDE
290
Using the Timeline Viewer | Clearing Localized Files
Clip Viewers, sometimes referred to as source Viewers, are marked with the icon and deal
exclusively with source clips. You can set In and Out points and apply tags to the Viewer, but the
source clips are unaffected.
Sequence Viewers, also known as record Viewers, are marked with the icon and deal with
sequences and shots on the timeline. You can set In and Out points and apply tags here too, but you
can also edit the shots on the timeline by trimming, retiming, and so on. See Timeline Editing Tools
for more information.
The Editing workspace combines both clip and sequence Viewers by default, enabling you to add
source clips to the timeline using insert and overwrite functions. See Insert, Overwrite, and 3-Point
Editing for more information.
To view your media in a Viewer, simply drag-and-drop a clip or sequence from the Project tab on to a
Viewer input, or double-click the item to send it to the appropriate Viewer.
Note: The Viewer currently treats all alpha channels as premultiplied, which can result in
the Viewer background being “added” to the image. If you’re working with un-premultiplied
images, set the Viewer background to Black.
USER GUIDE
291
Using the Timeline Viewer | Deleting Media
Deleting Media
To remove media from the bin view, select the clip(s) or bin and press Backspace or Delete.
Click Yes to delete the media from the bin view, but bear in mind that all instances of the deleted
media are removed from your current sequences.
USER GUIDE
292
Timeline Playback Tools | Deleting Media
For more information about the tools above the Viewer, see Timeline Viewer Tools.
The tools at the bottom of the Viewer allow you to adjust the playback settings, including setting the
frame range, selecting the playback mode, and locking the Viewer playback range.
Drag the orange marker along the timeline to quickly cue to a specific frame or timecode. The
number of the current frame or timecode appears below the center of the timeline. You can also cue
to a frame or timecode by typing its number directly into this field.
Tip: The current frame and in an out point fields accept simple mathematical functions,
such as +/-20 to jump forward or backward 20 frames or +/-00002000 to jump forward or
backward 20 seconds.
By default, Nuke Studio automatically adjusts the timeline of every Viewer window to show the frame
range defined in your Project Settings. If no frame range is defined, the frame range of the first image
you read in is used as the global frame range.
USER GUIDE
293
Timeline Playback Tools | In and Out Points
Viewer timeline controls also have a frame range source dropdown menu that you can use to define
where the timeline gets its frame range from. You can set this menu to Global, Input, or Custom.
Global is the default setting described above.
The playback rate field (frames-per-second) initially displays the project’s playback speed. Nuke
Studio attempts to maintain this speed throughout playback, although this adjusts depending on the
resolution of the imagery and your hardware configuration.
Note: The asterisk (*) denotes the Sequence playback speed selected using the Frame
Rate dropdown or, for new projects, the Project Settings > Sequence > Frame Rate
dropdown.
When a clip containing In and Out points is added to a timeline, you can slip the clip around the
markers to adjust the clip’s output. See Timeline Editing Tools for more information.
You can also use In and Out points to export certain portions of a clip or sequence. See Transcoding
for more information.
Note: You can also set markers by navigating to View > Mark In or Mark Out, by using the
Timeline menu to Mark Selection or Mark Clip dependent on clip selections on the
timeline, or by right-clicking a shots and selecting Open In > Viewer.
USER GUIDE
294
Timeline Playback Tools | In and Out Points
Click and drag the markers to adjust their position, or hold Ctrl/Cmd to move both markers at once,
retaining their relative positions. A Viewer preview shows the current frame for the selected marker(s)
and a timecode/frame popup helps to set the new position.
Clear the markers from your clip by navigating to Viewer > ClearIn Point (Alt+I) and Clear OutPoint
(Alt+O). The markers are removed completely, but you can reapply them by repositioning the
playhead and pressing I or O.
Tip: You can also press Alt+U to remove both markers at once.
When the playhead is positioned near In and Out markers, the top half of the timecode scale controls
the playhead and bottom half controls the markers.
USER GUIDE
295
Timeline Playback Tools | Playback Controls
Playback Controls
The playback rate field (frames-per-second) initially displays the project’s playback speed. The Viewer
attempts to maintain this speed throughout playback, although this adjusts depending on the
resolution of the imagery and your hardware configuration.
Buttons Functions
The Play backward and Play forward buttons play the sequence
backward or forward at the script’s frame rate. When you press a play
buttons, it toggles to a stop a button.
The Back 1 Frame and Forward 1 Frame buttons cue the sequence to
the previous or next frame.
The Previous keyframe and Next keyframe buttons cue the sequence
to the script’s previous or next keyframe.
The First frame and Last frame buttons cue the sequence to the first
and last frame.
The Frame Increment field allow you to specify the number of frames
by which the Previous increment/Next increment buttons cue the
sequence. This is set to 10 frames by default.
The J, K, and L keyboard shortcuts also control playback. The K keyboard shortcut is mapped to
Pause/Play. J and L are mapped to backward and forward. Combinations are also supported:
• K+J - frame backward.
• K+L - frame forward.
• K+drag in the top third of the Viewer - standard jog controls. Dragging the cursor left and right
moves the playhead backward and forward, frame-by-frame.
• The jog controls also detect rotary motion to jog through frames. Clockwise motion in the top third
of the Viewer, while holding K, advances the playhead and anti-clockwise reverses the playhead.
• K+drag in the middle third of the Viewer - standard shuttle controls. Dragging the cursor left and
right plays backward and forward, with increased frame rate toward the edges of the Viewer.
• K+drag in the bottom third of the Viewer - skips the playhead to absolute timeline position.
USER GUIDE
296
Timeline Playback Tools | Playback Controls
The Playback Mode button lets you control how many times and in what direction the Viewer plays
back the sequence. Click the button to toggle between the following modes:
Button Function
Repeatedly plays the image back and forth from head to tail.
Plays once through the section between in and out point and stops at the out
point. If these are not marked, then it plays from the beginning to the end of
the sequence.
Plays once from the beginning to the end of the sequence, ignoring any in and
out points.
USER GUIDE
297
Timeline Playback Tools | Timeline Viewer Tools
Layers Select the layer to output to the Viewer, for example forward
motion vectors or disparityL. Only layers available in the clip
are displayed - check the clip’s thumbnail to see at a glance
which layers are present:
- alpha layer.
- depth layer.
USER GUIDE
298
Timeline Playback Tools | Timeline Viewer Tools
Viewer color Set the colorspace used to display images in the Viewer, for
transform example sRGB and rec709.
A/B Viewer Click the A or B dropdown and select what you want to view.
Output This can be selected tracks or tracks with selected tags.
USER GUIDE
299
Timeline Playback Tools | Timeline Viewer Tools
Scale Set the scale applied to the clip in the Viewer, for example
25%, 75%, or Fit.
Image Quality Set the Viewer image quality, for example 1:1, 1:4, or 1:16. The
default setting, Auto, resizes the image dependent on the
Viewer zoom level, which may re-cache the image at a higher
resolution.
USER GUIDE
300
Timeline Playback Tools | Timeline Viewer Tools
See through missing When disabled, any offline media on a timeline is treated as a
media blank clip so the Viewer cannot display the track underneath.
This setting also applies to missing frames within a clip.
View Select the Viewer display mode, for example Audio and Video
or Video Only.
Obey Alpha Allows you to control the alpha channel independent of the
Viewer Blend Mode.
• Enabled - any alpha channel present in the image is treated
as premultiplied transparency.
• Disabled - the alpha channel is ignored.
Audio latency Sets the audio latency, in milliseconds, for the current Viewer
only. Audio latency allows you to correct audio and video
synchronization by changing the point at which audio
playback starts.
Gain Adjusts the gain applied to the linear input image before
viewing, but doesn’t affect your exported image.
Gamma Adjusts the gamma applied to the image after the viewing
transform, but doesn’t affect your exported image.
Mute / Audio Click to mute audio output for the current Viewer or use the
slider to control the audio output level.
USER GUIDE
301
Timeline Playback Tools | Using In and Out Markers
Tip: You can use the source clip/shot properties original range controls in similar way to In
and Out points. See Setting Source Clip Ranges for more information.
When a clip containing In and Out points is added to a timeline, you can slip the clip around the
markers to adjust the clip’s output. See Timeline Editing Tools for more information. You can also use
In and Out points to export certain portions of a clip or sequence. SeeTranscoding for more
information.
Tip: Source clips opened in the timeline view have a purple background in the timeline.
2. Move the playhead to the location of the In point and press I on your keyboard.
The In point is marked by the In tab and the time is recorded in the playback controls.
3. Move the playhead to the location of the Out point and press O on your keyboard.
The Out point is marked by the Out tab and the time is recorded in the playback controls.
USER GUIDE
302
Timeline Playback Tools | Using In and Out Markers
Note: You can also set markers by navigating to View > Mark In or Mark Out, by using the
Timeline menu to Mark Selection or Mark Clip dependent on clip selections on the
timeline, or by right-clicking a shots and selecting Open In > Viewer.
Click and drag the markers to adjust their position, or hold Ctrl/Cmd to move both markers at once,
retaining their relative positions. A Viewer preview shows the current frame for the selected marker(s)
and a timecode/frame popup helps to set the new position.
Clear the markers from your clip by navigating to View > ClearIn Point (Alt+I) and Clear OutPoint
(Alt+O). The markers are removed completely, but you can reapply them by repositioning the
playhead and pressing I or O.
Tip: You can also press Alt+U to remove both markers at once.
When the playhead is positioned near In and Out markers, the top half of the timecode scale controls
the playhead and bottom half controls the markers.
USER GUIDE
303
Timeline Playback Tools | Using In and Out Markers
Tip: You can use the source clip/shot properties original range controls in similar way to In
and Out points. See Setting Source Clip Ranges for more information.
When a clip containing In and Out points is added to a timeline, you can slip the clip around the
markers to adjust the clip’s output. See Timeline Editing Tools for more information. You can also use
In and Out points to export certain portions of a clip or sequence. See Transcoding for more
information.
Tip: Source clips opened in the timeline view have a purple background in the timeline.
2. Move the playhead to the location of the In point and press I on your keyboard.
The In point is marked by the In tab and the time is recorded in the playback controls.
3. Move the playhead to the location of the Out point and press O on your keyboard.
USER GUIDE
304
Timeline Playback Tools | Using In and Out Markers
The Out point is marked by the Out tab and the time is recorded in the playback controls.
Note: You can also set markers by navigating to View > Mark In or Mark Out, by using the
Timeline menu to Mark Selection or Mark Clip dependent on clip selections on the
timeline, or by right-clicking a shots and selecting Open In > Viewer.
Click and drag the markers to adjust their position, or hold Ctrl/Cmd to move both markers at once,
retaining their relative positions. A Viewer preview shows the current frame for the selected marker(s)
and a timecode/frame popup helps to set the new position.
Clear the markers from your clip by navigating to View > Clear In Point (Alt+I) and Clear Out Point
(Alt+O). The markers are removed completely, but you can reapply them by repositioning the
playhead and pressing I or O.
Tip: You can also press Alt+U to remove both markers at once.
When the playhead is positioned near In and Out markers, the top half of the timecode scale controls
the playhead and bottom half controls the markers.
USER GUIDE
305
Timeline Playback Tools | Using In and Out Markers
USER GUIDE
306
Working with Colorspaces | Using In and Out Markers
Note: Only colorspaces applicable to the selection are displayed. For example, REDspace
and LogC - CameraNative are only available for R3D and ARRIRAW clips, respectively.
4. Selecting multiple formats supporting different colorspaces, for example R3Ds and ARRIRAW,
breaks the available LUTs into sub-menus:
USER GUIDE
307
Working with Colorspaces | To apply colorspace changes to shots:
USER GUIDE
308
Previewing on a Broadcast Monitor | To apply colorspace changes to shots:
Previewing on a Broadcast
Monitor
The Monitor Out feature allows you to preview Viewer images and audio on an external broadcast
video monitor to check the final result, including the correct colorspace and aspect ratio. This option
requires additional hardware, such as a monitor output card or a FireWire port.
Note: Audio scrubbing is not currently available through monitor output cards. Audio
scrubbing is only supported through internal audio output devices.
Our monitor out architecture interfaces directly with the AJA and BlackMagic device drivers, which are
unified across their respective hardware lines, meaning all current supported cards for the versions
detailed in Third-Party Libraries and Fonts should work. We've tested the following AJA and
Blackmagic hardware:
Formats
SD
HD
2K
UHD
4K
BNC
HDMI
Stereoscopic Support
No Yes Yes No
Platforms
USER GUIDE
309
Previewing on a Broadcast Monitor | To apply colorspace changes to shots:
Win, Mac, Linux Win, Mac, Linux Win, Linux Mac 10.9 and
10.10
Drivers
Note: The following should be taken into account when using the Monitor Out functionality
with AJA cards:
If you're running AJA cards on Linux, you can contact www.aja.com/support to obtain the
correct drivers.
12-bit monitor output is only supported with dual connection cards, that is cards with two
physical connections, not dual links combining two separate streams of data.
Hiero is unable to send out the right eye separately using the 2nd output cable of KONA 3G
cards. Instead, both views are sent through the 1st output and can be viewed using the side-
by-side, anaglyph, and interlacing options.
Formats
SD
HD
2K
UHD
4K
BNC
HDMI
USER GUIDE
310
Previewing on a Broadcast Monitor | To apply colorspace changes to shots:
Stereoscopic Support
No No Yes No
Platforms
Win, Mac, Linux Win, Mac, Linux Win, Mac, Linux Win, Mac, Linux
Drivers
Formats
SD
HD
2K
UHD
4K
BNC
HDMI
Stereoscopic Support
USER GUIDE
311
Previewing on a Broadcast Monitor | To preview output on an external broadcast video monitor:
Platforms
Drivers
Some monitor out cards allow you to extend or mirror your desktop so that Hiero’s user interface is
visible on the monitor. Please refer to your card’s documentation for more information.
Note: If you're working with multi-view footage, additional controls display to determine the
stereo mode and view to output.
2. Select the external device you want to use from the output device dropdown. All available devices
are automatically detected and listed in this menu, along with the following default options:
• None - disables the monitor out feed.
• Floating Window - opens a pseudo output monitor window, without the need for a monitor
device and card. This is intended for full-screen use without displaying any of the interface.
3. Select the Viewer to feed to the output monitor using the source viewer dropdown. Selecting
Active Viewer always displays the current Viewer.
4. Select the view mode using the A/B selection dropdown.
USER GUIDE
312
Previewing on a Broadcast Monitor | To preview output on an external broadcast video monitor:
Note: For multi-view/stereo footage, selecting A/B mode in this dropdown forces the
monitor to output the timeline Viewer settings and the view to output controls are disabled.
5. Click to apply the active Viewer’s filtering, gamma, and gain to the monitor output.
7. Click to switch between full-range 0-255 (default) and 16-236 (ITU-R BT.610-4). This button can
correct the image output for certain monitor out cards.
8. Select the colorspace to apply to the image. If you’ve specified an OCIO configuration file in the
preferences, these custom LUTs are also applicable.
Note: If you plan to use the OCIO config file specified during exports, ensure that the
Preferences > Project Defaults > Color Management > Export > use OCIO nodes when
exporting to a Comp checkbox is enabled.
USER GUIDE
313
Using Scopes | Histogram
Using Scopes
Nuke provides scopes to help you evaluate your media. There are a number of global controls
(Preferences > Panels > Scopes) that affect how the Scopes display information:
• black point - sets the black out of range warning level.
• white point - sets the white out of range warning level.
• luma/chroma encoding - sets the video standard to use when converting RGB to luma or chroma
values in the scope displays, either REC601 or REC709.
• Include viewer color transforms - when enabled, scope data includes the applied Viewer color
transforms (gain, gamma, and LUT). When disabled, scope data does not include the applied Viewer
color transforms. This may slow down rendering, as it may require image calculation.
• Force full frame - When enabled, scopes display data for the full frame, regardless of what portion
of that frame is displayed in the Viewer. When disabled, scopes only display data for the current
area requested by the Viewer rather than the full frame.
To open a scope, navigate to Window > New Scope and select the required scope from the list.
Histogram
The Histogram provides three color channel and luma channel information that describes the
distribution of red, green, blue, and luma pixels throughout the current frame.
The Histogram graphs the number of pixels at each brightness level, and from left to right, the areas
of the Histogram represent shadow, mid tones, and highlights.
USER GUIDE
314
Using Scopes | Histogram
Tip: You can pan the view area by holding Alt, or the middle mouse button, and dragging in
the panel.
There are also Viewer and Channel selection controls on the Histogram tab:
• Viewer selection - if you have multiple Viewers open, use the dropdown menu to associate
Histogram output to the required clip.
The default value, Active Viewer, automatically displays details on the last Viewer you selected.
• Channel selection - select the channels to output. The default setting displays RGB, but you can
also view channels separately.
• Mode selection - select the mode to output. The default setting displays ganged RGB, but you can
also view the channels separately.
• Current View - describes the view currently displayed in the scope, whether it's the A or B buffer
and the view. The view defaults to main, unless main has been replaced in multi-view scripts or
projects.
Depending on which Viewer tools and views you have active, you can have up to four scopes
displayed at once.
For example, with two stereo Read nodes, one in each input buffer, and wipe and Side by Side
active, the scopes display something like this:
The scopes feature global customizable guides to help you view your clips. Navigate to Preferences >
Panels > Scopes and enter values between 0 and 1 for the Black and White points. Note that this
also sets the values for the Waveform display.
The guides at the edges of the Histogram turn red to warn you when the distribution is out of range:
USER GUIDE
315
Using Scopes | Waveform
Waveform
The Waveform scope provides information on clip luminance, or brightness, which you can use to
decide whether the clip is over or under exposed. The white traces represent luminance values from 0
- 100% (black through the spectrum to white). The higher the waveform, the brighter the image in the
Viewer.
Tip: You can pan the view area by holding Alt, or the middle mouse button, and dragging in
the panel.
The upper white marker is used to measure when over exposure could be a problem. If your
waveform has a lot of traces over the white marker, you should consider reducing the brightness of
the clip. The opposite is true of the lower black marker.
There are also Viewer and Mode selection controls on the Waveform tab:
• Viewer selection - if you have multiple Viewers open, use the dropdown menu to associate
Waveform output to the required clip.
USER GUIDE
316
Using Scopes | Waveform
The default value, Active Viewer, automatically displays details on the last Viewer you selected.
• Channel selection - select the channels to output. The default setting displays RGB, but you can
also view channels separately.
• Mode selection - select the mode to output. The default setting displays ganged RGB, but you can
also view the channels separately.
• Current View - describes the view currently displayed in the scope, whether it's the A or B buffer
and the view. The view defaults to main, unless main has been replaced in multi-view scripts or
projects.
Depending on which Viewer tools and views you have active, you can have up to four scopes
displayed at once.
For example, with two stereo Read nodes, one in each input buffer, and wipe and Side by Side
active, the scopes display something like this:
The scopes feature global customizable guides to help you view your clips. Navigate to Preferences >
Panels > Scopes and enter values between 0 and 1 for the Black and White points. Note that this
also sets the values for the Histogram display.
The guides at the top and bottom of the Waveform turn red to warn you when the distribution is out
of range:
USER GUIDE
317
Using Scopes | Vector
Vector
The Vector scope displays color, saturation, and hue information for the current frame. Similar to
color wheels, Vector scopes display information radially, from the center outward. The farther from
the center the data spans, the more saturation is represented.
In the image on the left, you can see that the frame represented contains mostly yellows and reds,
but the values are not oversaturated. The image on the right represents a badly saturated frame.
Notice the spill of red traces distributed toward the edge of the scope pass the target (the highlighted
square).
Tip: You can pan the view area by holding Alt, or the middle mouse button, and dragging in
the panel.
There is also a Viewer selection control and Current View label on the Vectorscope tab:
• Viewer selection - if you have multiple Viewers open, use the dropdown menu to associate Vector
scope output to the required clip.
The default value, Active Viewer, automatically displays details on the last Viewer you selected.
• Current View - describes the view currently displayed in the scope, whether it's the A or B buffer
and the view. The view defaults to main, unless main has been replaced in multi-view scripts or
projects.
Depending on which Viewer tools and views you have active, you can have up to four scopes
displayed at once.
USER GUIDE
318
Using Scopes | Vector
For example, with two stereo Read nodes, one in each input buffer, and wipe and Side by Side
active, the scopes display something like this:
USER GUIDE
319
About Anamorphic Media | Vector
If for any reason you want to display an anamorphic clip with a 1:1 aspect ratio, right-click in the
Viewer displaying the clip and enable the Ignore Pixel Aspect checkbox, or use the Ctrl/Cmd+Shift+P
keyboard shortcut.
USER GUIDE
320
About QuickTime Media | Vector
Nuke attempts to select the ’best fit’ combination by reading an extended list of metadata key/value
pairs from the QuickTime header, including nclc atom, gama atom, and ProRes codec headers.
If you place a clip in the Viewer, or open a shot in the Viewer, and open the Media tab, you'll see that
Nuke has a number of media-specific controls that you can manually override if the 'best fit' is not
what you're looking for:
• YCbCr Matrix - sets the way Y’CbCr is converted to RGB. You can choose to use the new Rec 601 and
Rec 709 or the Legacy encoding methods, which are the methods used previously in Nuke.
• Codec - sets the codec used to read (write already had a similar control) the QuickTime file.
The codec dropdown defaults to a codec appropriate for the QuickTime in question, where
available, and only lists those that declare themselves able to read the file.
• Pixel Format - sets the read and write pixel format, which includes bit depth, colorspace, pixel
packing, and ranges.
This setting defaults to the best format accepted by the codec, allowing Nuke to perform the
conversion to RGB without the use of an unknown QuickTime transform, where possible. RGB pixel
types rely on QuickTime to do the conversion from Y’CbCr when dealing with a non-RGB codec.
In addition to the nclc, gama, and ProRes data Nuke, and by extension Nuke, also write additional
metadata into the file headers during export, retaining your QuickTime preferences. This combined
metadata represents myriad potential QuickTimes preferences, so Nuke reads the available metadata
in the following order, reverting down each level as the level above is unavailable or set to a reserved
or unknown value:
USER GUIDE
321
About QuickTime Media | Vector
• Foundry-specific metadata
• ProRes header data
• nclc atom data
• gama atom data
• The defaults associated with the chosen codec
In this way, the worst case scenario is that you end up with the chosen codec class' default values.
USER GUIDE
322
About RED Media | To modify the RED Rocket options:
Note: The RED Rocket icon is only visible if you have a RED Rocket installed.
Firmware error - there is a problem with the card firmware. Hover the mouse over the icon
for more information.
Note: You must have use RED Rocket enabled in the Preferences > Performance >
Hardware dialog to access these options. See Appendix A: Preferences for more
information.
2. Temporarily disable the RED Rocket card by deselecting Use RED Rocket card. Unlike the option
in the Preferences dialog, changing this setting does not affect the application at startup.
3. Click OK to save your settings.
USER GUIDE
323
About RED Media | To modify the RED Rocket options:
Note: Projects containing large amounts of movie files (for example .r3d and .mov) may
exceed the number of available file handles per process, causing problems opening new
files or projects and exporting.
You can increase the default limit of 1024 by entering the following command from the
terminal, then running the application from the same session:
ulimit -Sn 2048
USER GUIDE
324
Compositing with Nuke
Each chapter in this section explains in detail a key feature of Nuke. You can use the section to
familiarize yourself with the features you are particularly interested in, or to get answers to specific
problems that arise during compositing. For information on the features in NukeX and Nuke Studio,
see Advanced Compositing with NukeX and Nuke Studio or Timeline Editing in Nuke Studio.
USER GUIDE
325
Compositing with Nuke |
• Analyzing and Matching Clips explains how to use the CurveTool node to analyze and match image
sequences.
• 3D Compositing teaches you how to create and manipulate 3D scenes composed of objects,
materials, lights, and cameras.
• Stereoscopic Scripts describes how to composite stereoscopic material in Nuke.
• Deep Compositing goes through using the deep compositing node set in Nuke.
• Working with File Metadata describes how to use Nuke's MetaData nodes to work with information
embedded in images.
• Audio in Nuke covers using audio clips in Nuke.
• Previews and Renderingteaches you how to write out image sequences from scripts in order to
preview results or create final elements.
• Organizing Scripts is designed to help you organize your Nuke scripts in a clear and meaningful way.
• Configuring Nuke explains how to set up Nuke for multiple artists working on the same project.
• Expressions explains how to apply expressions or scripting commands to Nuke parameters.
• The Script Editor and Python takes you through using Nuke’s Script Editor for executing Python
commands.
USER GUIDE
326
Managing Scripts
In this chapter, you learn about Nuke’s project files called scripts or comps. The topics covered
include setting up, saving, and loading scripts. You’ll also learn about managing your node tree in the
Node Graph, using Precomp nodes, and working with file metadata.
USER GUIDE
327
Managing Scripts |
2. On the Root tab, type a name for the script (say, firstcomp.nk) in the name field. Nuke’s scripts
always have the extension .nk.
3. Type the numbers of the first and last frames in the frame range fields to define length of time
for your “shot”.
4. In the fps field, enter the rate in frames per second (fps) at which you want your script’s Viewers to
play back footage. For film-based elements, 24 fps is appropriate.
USER GUIDE
328
Managing Scripts | Full-Size Formats
You can also click the Script Directory button to create an expression that sets your project
directory to be the directory where your current script is saved.
Full-Size Formats
When you start a new script in Nuke, you need to set up a full-size format. The full-size format
determines the size of the image that you get from any disconnected node inputs. It also sets the
default size of any script-generated elements, such as Constants and ColorBars.
Note: The full-size format does not affect the format of the elements you read into your
script. Nuke is resolution-independent, which means it respects and keeps the resolution of
your images. It won’t automatically crop or pad elements to match the project settings.
If you want elements you read in to conform to the project settings, you can do this
manually using the Reformat node. For more information, see Reformatting Image
Sequences.
The full-size format is also used to calculate proxy scaling if a proxy format is used. For
more information on the proxy mode and proxy formats, see Proxy Mode.
USER GUIDE
329
Managing Scripts | Proxy Mode
Proxy Mode
When compositing with Nuke, you can work in two different modes: the full-size mode or proxy
mode. In the full-size mode, images are read in exactly as they are on the disk, and all positions are
in actual pixels in these images. This is the mode you want to use for accurate feedback and when
rendering the final output.
In proxy mode, instead, a proxy scale factor is used. All images and all x/y positions are scaled by this
factor. This produces the same (or at least very similar) composite at a different scale. For example,
you can use a fraction of the full output resolution to speed up rendering and display calculation.
In addition to the above, a separate proxy file can also be read in place of a full-size image, provided
you have specified one in the relevant Read node. This can further speed up the preview, by using a
smaller image that reads faster and also saves time by not needing to be scaled. For more
information, see Read Nodes and Proxy Files.
The proxy settings you define in the project settings affect both the proxies Nuke generates using the
proxy scale factor and proxies read from files. Below, we discuss setting a proxy format and/or a
proxy scale and defining how Read nodes use proxy files.
Note: Note that proxy versions of images are only used if you have activated the proxy
mode. When the proxy mode is off, Nuke always uses the full-res files.
For the proxy format, you can define the image resolution as well as additional information about
offsets and pixel aspect ratio. When using the proxy format, the scaling is proportionate to the full-
size/proxy format relationship (not scaled to the proxy format).
USER GUIDE
330
Managing Scripts | Proxy Mode
For the proxy scale, you only define a simple scale factor by which your images are scaled down
whenever the proxy mode is activated. For example, you can use the scale factor of 0.5 to scale your
images down to half the size.
If you like, you can define both a proxy format and a proxy scale, and then choose which one to use
in proxy mode. A proxy scale is easier to set up, but a proxy format gives you more control over the
low-res versions of your images. Below, we first describe how to set up proxy formats and then how
to define a proxy scale.
Tip: You can type formulas in numeric fields to do quick calculations. For example, if your
full-size format width is 4096 and you want your proxy format width to be 1/2 of that, you
USER GUIDE
331
Managing Scripts | Read Nodes and Proxy Files
can enter 4096/2 in the New format dialog’s file size w field and press Enter. Nuke then
calculates the new width for you.
Click OK to save the format. It now appears in the dropdown menu where you can select it.
4. To activate the proxy mode and use the low-res format for calculations and display, check proxy
mode.
Alternatively, you can use the proxy toggle in the Viewer controls, or press Ctrl+P (Cmd+P on a
Mac). For more information, see Using the Viewer Controls.
Alternatively, you can use the proxy toggle in the Viewer controls, or press Ctrl+P (Cmd+P on a
Mac).
USER GUIDE
332
Managing Scripts | Write Nodes and Proxy Files
have a proxy file, you can create one by activating the proxy mode and rendering your full-size
images using a Write node (see Rendering Output in the Previews and Rendering chapter).
The proxy file does not need to match the proxy resolution in use. Depending on your project
settings, either the full-res or proxy file is scaled to the required proxy size (that is, the size calculated
by taking the full-size format and scaling it by the current proxy settings). However, if your proxy
images match your typical proxy settings, you can save this time.
For more information, see Rendering Output in the Previews and Rendering chapter.
The reason you'd probably want to do this is because the comp you did needs to be re-run at higher
resolution for a different output target and possibly with some new higher resolution elements. For
USER GUIDE
333
Managing Scripts | To Toggle Between Full Resolution and Proxy Mode
example, you may need to re-render with new CG elements at print resolution rather than for film
out, but you don’t want to go through your script and modify everything that has an x/y position.
When scaling up the output of a script in the proxy mode, image generator nodes render at the larger
size, larger images can be specified in the proxy field, and as with scaling down, all x/y positions are
scaled to the proxy output resolution.
Nuke automatically scales script elements - Bezier shapes, B-spline shapes, paint curves, garbage
masks, tracking curves, and so on - to keep the original placement on the image.
USER GUIDE
334
Loading Image Sequences | Importing Image Sequences
Tip: Pressing R with an existing Read node selected, opens the file browser at the location
specified by that node.
2. Browse to the image sequence you want to import. For instructions on using the file browser, see
Using the File Browser. Select the file you want to open. If you want to open several files at the
same time, Ctrl/Cmd+click on the files, and then click Open.
A Read node is inserted in the Node Graph.
Nuke imports the image sequence and displays it as a thumbnail on the Read node. Generally, the
Read node does not reformat or resize the sequence in any way, and the node’s properties panel
is updated to display the native resolution and the frame range for the sequence. Note that the
format and proxy format fields in the controls indicate the format of the images, they do not
cause the images read from files to be resized to this format.
3. You can cycle through the available versions of a file using the Alt+Up/Down arrow keys. If you
want to skip ahead to the highest version available, press Alt+Shift+Up arrow key.
USER GUIDE
335
Loading Image Sequences | Importing Image Sequences
Versions must written in the following format in order for Nuke recognize them:
../myFiles/grades/A003_C007_071105_v01_001.r3d
../myFiles/grades/A003_C007_071105_v02_001.r3d
../myFiles/grades/A003_C007_071105_v03_001.r3d
4. If your sequence has a red, green and blue channel but no alpha channel, check the auto alpha
box in the Read node control panel to set the alpha channel to 1. This prevents possible problems
from occurring if Nuke tries to read the alpha channel and one doesn’t exist. The auto alpha box
is unchecked by default.
Note: Nuke reads images from their native format, but the Read node outputs the result
using a linear colorspace. If necessary, you can change the Colorspace option in the Read
node’s properties panel, or insert a Color > Colorspace node to select the color scheme you
want to output or calculate.
Note: The maximum image size the Nuke Viewer can display is 2^28 = 268,435,456 pixels.
This is the same as 16k x 16k, 32k x 8k, 64k x 4k, or 128k x 2k. If your image is larger than
this, it is resized and you get the following warning:
“Viewer image is clipped to <size> x <size>!”
For example, if your image resolution is 60,000 x 4473, Nuke is able to display the image
because the number of pixels is less than 2^28. However, if the resolution is 60,000 x 4474
(more than 2^28 pixels), the image is resized to 59998 x 4474.
In addition to the Viewer, this limit is also applied to the bounding box of the images being
passed between each node.
5. If you have a proxy version of the image sequence, click the proxy field’s folder icon and
navigate to the proxy version. Select Open. If you don’t have a proxy version, don’t worry: Nuke
creates one on the fly according to the proxy scale or proxy format settings you specified in the
project settings.
The proxy file does not need to match the proxy resolution in use. Depending on your settings,
either the full-res or proxy file is scaled to the required proxy size. For more information, see
Proxy Mode.
6. You can access the metadata contained within the read file by clicking the Metadata tab. Once
you know which keys exist in the file, you can reference them in expressions. See Expressions for
more information.
The metadata displayed depends on the file type. For example, a .jpg might only contain input/
keys, whereas QuickTimes contain input/ and quicktime/ keys. See Working with File Metadata
for more information.
USER GUIDE
336
Loading Image Sequences | To Import an Image Sequence from an External File Browser
Note: Nuke defaults to the fastest decoder for the codec used in the file - if you're reading
in a type supported by the mov64 sub-set, Nuke defaults to that reader. Otherwise, the
fallback mov32 reader is used.
• ycbcr matrix - This is only enabled when working with a Y’CbCr-based pixel type. Rec 601 and Rec
709 follow the ITU.BC specifications, whilst Nuke Legacy, Nuke Legacy Mpeg, and Nuke Legacy
YUVS are retained for backwards compatibility.
Note: The default option, Format-based, selects Rec 601 or Rec 709 automatically based
on the format size.
When you set the decoder to mov32, two additional controls are displayed:
• codec - sets the codec used to read the QuickTime file. The codec dropdown defaults to a codec
appropriate for the QuickTime in question, where available, and only lists those that declare
themselves able to read the file.
USER GUIDE
337
Loading Image Sequences | Notes on Importing AVI Files
Note: If you're using the Avid DNxHD codec, Avid AVDn, avoid setting the pixel format
control to r408 as there is a known issue within the codec causing frames to darken with
each frame progression in the sequence.
• pixel format - sets the read pixel format, which includes colorspace, bit depth, layout, and range.
This setting defaults to the best format accepted by the codec, allowing Nuke to perform the
conversion to RGB without the use of an unknown QuickTime transform where possible. RGB pixel
types rely on QuickTime to do the conversion from Y’CbCr when dealing with a non-RGB codec.
Note: When reading QuickTime files, Nuke looks for metadata in the following order and
uses it to govern the settings on the Read node, falling down to each level when the level
above is unavailable or set to a reserved or unknown value:
1. Foundry -specific user data
2. prores header
3. nclc atom
4. gama atom
5. defaults based on codec type
QuickTime .mov files may appear different in Nuke relative to Apple’s Final Cut Pro, because Final Cut
Pro introduces a gamma compensation based on assumptions about the content of the files and the
viewing environment.
To limit the number of background processes that Nuke can run when reading QuickTime files, go to
Preferences and set the number for QuickTime decoders to use in the Performance >
Threads/Processes tab.
USER GUIDE
338
Loading Image Sequences | Notes on Importing PSD Files
The OpenEXR file format allows the display window to have the lower left corner in any position.
Unfortunately, Nuke needs all formats to have a lower left corner coordinate of 0,0. In the Read node
control panel, under exrOptions, you can check the offset negative display window box to tell
Nuke to offset the image so that the display window left side x coordinate is 0. If you uncheck the
box, Nuke shrinks the format from both sides the amount that it’s negative in the x coordinate, in
other words treat the area as overscan.
By default, the exr prefix is attached to metadata keys to make them distinct from other metadata in
the tree. If you’d rather read metadata in “as is” without attaching a prefix, enable do not attach
prefix.
When reading in .exr files, you can determine how pixels at the edge of the data window, or
bounding box in Nuke terms, are treated using the edge pixels dropdown:
• plate detect - if the bounding box and format match exactly, then repeat all edges. Otherwise, add
black at the edges.
• edge detect - for each matching edge, repeat the edge pixels. Add black at mismatched edges.
• repeat - always repeat the edge pixels outside the bounding box.
• black - always add black pixels outside the bounding box.
On Linux, the Nuke OpenEXR reader uses a memory-mapping function to improve performance
reading PIZ-compressed .exr files. However, some customers have experienced hanging when
reading large (frame size and number of channels) PIZ-compressed .exr files across an NFS network.
If you experience this problem, you can tell Nuke not to use the mmap function by enabling this
option. You can set it on a case-by-case basis or use a knobDefault in your init.py to always have it
disabled. For more information on knobDefault, see the Nuke Python documentation (Help >
Documentation).
The PSDMerge node is a type of merge node exclusive to this feature. In the control panel, there is an
operation dropdown menu, a mask field (with an invert checkbox) and a mix slider. If the blend
mode for a layer was set in Photoshop®, Nuke automatically sets this in the operation dropdown.
USER GUIDE
339
Loading Image Sequences | Naming Conventions
Note: The blend modes in PSDmerge are approximated and do not match Photoshop®
exactly.
Naming Conventions
The file names of image sequences generally end in a number before the extension, for example
image0001.rgb, image0002.rgb, image0003.rgb, and so on. When browsing for files like this, you may
notice that the sequence appears as image####.rgb. Here, #### is Nuke’s way of indicating that the
number is in a 4-digit incremental format. For a 3-digit format, such as image001.rgb, the frame
number variable would be ###.
Nuke’s file browser also understands unpadded file names, such as image1.rgb, image2.rgb,
image3.rgb, and so on. They appear as image#.rgb.
Using Expressions
1. Select Image > Read to import an image sequence.
2. In the Read node controls, set the frame dropdown menu to expression. Enter an expression in
the field on the right. The expression changes the relation between the current frame and the
frame read in.
USER GUIDE
340
Loading Image Sequences | Changing the Relation Between the Current Frame and the Frame Read
For example, if your clip begins from image.0500.rgb and you want to place this first frame at
frame 1 rather than frame 500, you can use the expression frame+499. This way, 499 frames are
added to the current frame to get the number of the frame that’s read in. At frame 1,
image.0500.rgb is read in; at frame 2, image.0501.rgb is read in; and so on.
Another example of an expression is frame*2. This expression multiplies the current frame by
two to get the number of the frame that’s read in. This way, only every other frame in the clip is
used. At frame 1, image.0002.rgb is read in; at frame 2, image.0004.rgb is read in; at frame 3,
image.0006.rgb is read in; and so on.
USER GUIDE
341
Loading Image Sequences | Changing the Relation Between the Current Frame and the Frame Read
the current frame to get the frame that’s read in. At frame 1, image.0500.rgb is read in; at frame 2,
image.0501 is read in, and so on.
You can also use negative values as the constant offset. For example, if you use the value -10,
Nuke subtracts ten from the current frame to get the frame that’s read in. At frame 20,
image.0010.rgb is read in; at frame 21, image.0011.rgb is read in; and so on.
USER GUIDE
342
Reformatting Image Sequences | To Insert a Reformat Node:
3. From the output format dropdown menu, select the format to which you want to output the
sequence. If the format does not yet exist, you can select new to create a new format from
scratch. The default setting, [root.format], resizes the image to the format indicated on the
Project Settings dialog box.
4. You can now use the same Reformat node for any other Read nodes in the script. Simply select
the Reformat node and Edit > Copy. Select another Read node in the script and Edit > Paste.
USER GUIDE
343
Image Caching | To Insert a Reformat Node:
Image Caching
To ensure fast playback, Nuke uses several ways of caching data. Some of these include the following:
• The Viewer cache (also referred to as disk cache, which shares the DiskCache node's location) saves
the scanlines of the displayed image to the disk cache directory. This location can be set in the
Preferences panel (see The Cache Directory and Defining the Settings for Caching). When the
Viewer displays an image, it reads from this cache of pre-rendered scanlines. This way, Nuke can
quickly display image data when returning to a previously cached set of scanlines. You can specify
the total amount of space for disk cache in Preferences > Performance > Caching > comp disk
cache size . If the disk cache needs more space, the cache that was least recently used is disposed
of to free more space. You can clear all of the disk cache by selecting Cache > Clear Disk Cache
from the top menu bar.
Note: Clearing the Viewer cache (disk cache) also clears the DiskCache node data.
• The Buffer cache stores scanline data as calculated at selected intermediate stages in the Node
Graph. This speeds up the end result of the Node Graph by caching parts of the Node Graph that
haven't changed. Nuke automatically determines these intermediate cache points based on several
things, including the Node Graph structure, which properties panels are open, and so on.
Tip: You can also force this behavior manually by selecting the cached checkbox in the
node properties panel.
The Buffer cache uses RAM and you can specify the total amount of space in Preferences >
Performance > Caching > comp cache size (%). When the buffer cache needs more space, it
disposes of the first cached data that was stored (first in, first out). To clear all of the buffer cache
you can either select Cache > Clear Buffers from the top menu bar, or press F12 on the keyboard.
• The Playback cache also helps improve smooth playback. Playback cache uses RAM to temporarily
store the frames in the Viewer. When you first play back a clip in the Viewer, an orange bar appears
automatically displaying the progress of the playback cache. After the playback cache is complete
(and the orange line is complete) the frames play back smoothly. You can temporarily disable
playback caching by either selecting the pause button above the Viewer or by pressing P. To clear
playback cache select Cache > Clear Playback Cache.
• You can use the DiskCache node to cache parts of the Node Graph. This caches scanlines to disk
from its input as they are requested by its output. DiskCache data is stored in the same place as the
Viewer cache data and can share the data provided the Viewer is operating in full float (32-bit). See
Using the DiskCache Node for more information.
USER GUIDE
344
Image Caching | To Insert a Reformat Node:
Note: You can clear all caches by selecting Cache > Clear All from the menu bar.
• If you find that loading files from a remote server slows down your processing, you can localize the
files that you’re working with for speedier processing. See Localizing Files for Better Performance.
USER GUIDE
345
The Cache Directory | Defining the Settings for Caching
Note that the cached images have unique names reflecting their point of output location in the script.
This means that you can cache images from multiple nodes in the script without overwriting
previously cached images.
Once these settings are defined, the automatic caching of images is enabled. The Viewer caches each
frame it displays in the directory specified. If you add a DiskCache node into your script, it also uses
the same directory.
The disk cache is preserved when you quit Nuke so it can be used again later. However, when the
cache becomes full, old items are automatically deleted to make room for newer items.
USER GUIDE
346
The Cache Directory | Clearing the Disk Cache
USER GUIDE
347
Using the DiskCache Node | To Cache Images Upstream
The cached images are saved in the same directory as the images the Nuke Viewer caches
automatically. You can set the location and size of this directory in the Preferences. For more
information, see Defining the Settings for Caching.
Note: Even though the DiskCache node and the automatic Viewer caching use the same
cache directory, they do not share the same cache files. Therefore, using a DiskCache node
does not create cache files for the Viewer and does not necessarily speed up playback.
Instead, if placed at strategic, expensive parts of a node tree, it can speed up calculations, as
Nuke can reference the cached data rather than recalculate it.
Unlike the images in the Viewer cache, the images created by the DiskCache node affect your
rendered output and are always saved as full floating point images.
If you make a change in the nodes upstream, the affected cached images are discarded and
automatically recalculated.
Note: When executing a script on the command line, the DiskCache nodes are NOT
automatically executed.
USER GUIDE
348
Using the DiskCache Node | To Cache Images Upstream
Nuke caches the selected channels of the current frame at the current zoom level. From this point
on, Nuke references the cached data instead of constantly recalculating the output of the
preceding nodes.
As you pan and zoom around, new parts of the image are cached.
4. If you want to cache more than the current frame and zoom level, click the Precache button in
the DiskCache properties and enter a frame range in the dialog that opens.
This forces Nuke to cache all frames specified. All lines are cached regardless of what is shown in
the Viewer. Where the required images are partly cached already, Nuke only calculates what is
missing.
USER GUIDE
349
Localizing Files for Better Performance | Setting Localization Preferences
USER GUIDE
350
Localizing Files for Better Performance | Setting Localization Preferences
• off - no source clips are localized, regardless of the their localization policy.
Note: The current localization mode is displayed in the status bar at the bottom-right of the
interface.
3. Set the default localization policy for new Read nodes using the dropdown:
Note: The localization policy for existing Read nodes in the script must be set individually.
See Managing Localization for more information.
Note: Localization in both the timeline and Node Graph is paused during compositing
Viewer playback so that performance is not affected.
5. Enter a file path for localize to. Leaving this field as the default creates a sub-directory in the
Temp Directory as the local cache.
Note: On Windows, files saved to the localize to directory replace \\ (double back slashes)
and : (colon drive signifiers) with underscores so that the file path works as expected
between operating systems. For example:
\\windowspath\to\my\network\file.dpx is saved as __
windowspath\to\my\network\file.dpx
t:\my\network\path\file.dpx is saved as t_\my\network\path\file.dpx
6. Enter a value for limit to (GB) to control how much disk space is available in the cache directory.
USER GUIDE
351
Localizing Files for Better Performance | Setting Localization Preferences
Note: Negative values in this field reserve the specified amount of space at all times. For
example, -2 stops 2 GB of memory being used for caching.
7. You can specify the time interval (in minutes) before localized files are checked for updates using
the check for updated files every ## mins control.
The default setting checks for new versions of files every 30 minutes, but you can set this control
to any value. Any Read nodes that have changed since the last update check are flagged red in the
Node Graph.
Tip: You can change the default localization indicators using the Appearance controls.
If read source files when localized files are out of date is enabled, Read nodes referencing cached
files that have changed since they were localized revert to reading the source files. Read nodes that
are reading from the source files are marked with a striped red bar on the Read node.
USER GUIDE
352
Localizing Files for Better Performance | Managing Localization
Enabling hide out of date progress bar hides the localization state of out of date files so that the
Read node appears the same as regular Read nodes.
Note: The out of date localized files are not discarded, disabling read source files when
localized files are out of date picks up the out of date files instead of reading the source
files.
Managing Localization
As well as the overall Preferences for when new Read nodes should be localized, you can set
localization on a file-by-file basis. The localization policy for any existing Read nodes in your project
must be managed individually.
Tip: If you find that localization is slow to copy files, you can increase the number of threads
that Nuke uses to process jobs. Set the NUKE_LOCALIZATION_NUMWATCHERS environment
variable to the number of threads you want to use. See Environment Variables for more
information.
USER GUIDE
353
Localizing Files for Better Performance | Managing Localization
• On - the files are localized, regardless of location, as long as the limit to (GB) limit is not
breached.
• From auto-localize path - the files are localized if they reside in the auto-localize from
directory, as long as the limit to (GB) limit is not breached.
• On Demand - the files are only localized when you update them manually. See <XREF> for more
information.
• Off - the files are never localized, regardless of location.
As Read nodes are localized, an amber progress bar displays in the thumbnail. Fully cached clips
are marked with a green bar at the top of the thumbnail and out-of-date clips are marked in red.
Note: Container formats, such as .mov and .r3d, do not display progress bars during
localization. The Read node only shows the green indicator once the entire file is localized
successfully.
3. If you need to pause localization temporarily, navigate to Cache > Localization and select Pause.
USER GUIDE
354
Localizing Files for Better Performance | Updating On Demand Clips
Note: Each file has its own update time, which is reset whenever the source files are
checked.
The following table is a quick reference guide to when and how Read nodes are localized, where:
• green - Read nodes are localized automatically.
• amber - Read nodes are localized when updated manually.
• red - Read nodes are not localized.
System
on auto-path on demand off
Preference
on
manual
off
USER GUIDE
355
Localizing Files for Better Performance | Clearing Localized Files
Note: If a Read node's localization policy is set to on demand and it hasn't been localized
previously, clicking the Update button localizes the file.
The local copy of the files is updated from the remote source files.
The local copy of all on demand Read nodes is updated from the remote source files.
USER GUIDE
356
Localizing Files for Better Performance | Clearing Localized Files
You can delete localized files by clicking Delete Unused Local Files (or by navigating to Cache >
Localization > Clear Unused Local Files). Nuke displays a dialog containing all the files that are
marked for delete.
Tip: You can also open the Preferences from this dialog to adjust the localization behavior,
such as increasing the limit to (GB) preference.
Click Continue to delete the localized files or Cancel to keep the cached files.
USER GUIDE
357
Saving Scripts and Recovering Back-Ups | Saving Scripts
Nuke provides three ways to save your scripts, or comps, making it easy to version them. There's also
an automatic timed backup, which you can turn off if you're feeling brave - but we sure don't
recommend it.
Saving Scripts
There are three ways of saving scripts:
• To save a new script, select File > Save Comp as (or press Shift+Ctrl/Cmd+S).
• To update changes to a script already saved, File > Save Comp (or press Ctrl/Cmd+S).
• To save and upgrade to the next version, File > Save New Comp Version (or press Alt+Shift+S).
To Save a Script
1. Select File > Save Comp as.
The Save script as dialog opens.
2. Browse to the directory where you want to store the script. For instructions on using the file
browser, see Using the File Browser.
3. In the field in the bottom of the dialog, enter a name for the script after the folder path, for
example firstscript_v01.nk.
4. Click Save.
Tip: The _v01 string in the end of a script name allows you to use the Save New Comp
Version feature. Selecting File > Save New Comp Version saves the current version of your
script and increments its name (that is, saves the different versions under different names
using _v01, _v02, _v03, and so on, in the end of file names). This only works when the file
name includes a number that can be incremented.
USER GUIDE
358
Saving Scripts and Recovering Back-Ups | Automatic Back-Up of Scripts
Note: For the automatic back-up to work, you must save your script first so that the
autosave can reference the file. We’d hate for you to lose your work, so please do this early
on in the process!
Recovering Back-Ups
After experiencing a system or power failure, you are likely to want to recover the back-up files
created by Nuke’s autosave function.
USER GUIDE
359
Saving Scripts and Recovering Back-Ups | Recovering Back-Ups
1. Relaunch Nuke.
A dialog opens that asks you if you want to recover the autosave file.
2. Click OK.
Nuke opens the back-up file for your use.
There may be times when you don’t want to load the autosave file and rather need to load the last
saved version. For example, consider a situation where you modified a script, but decided not to
commit the changes and so exited Nuke without saving. In all likelihood Nuke autosaved some or all
of your changes, in which case if you open the autosaved file you are not working on the original
script, as intended. If you accidentally open an autosaved script, then simply close it and reload the
last saved version.
Note: Breakpad crash reporting allows you to submit crash dumps to Foundry in the
unlikely event of a crash.
By default, crash reporting is enabled in GUI mode and disabled in terminal mode. You can
toggle reporting on and off using the --crashhandling 1 or 0 option on the command line or
by setting the environment variable NUKE_CRASH_HANDLING to 1 or 0.
When crash handling is enabled in GUI mode, you can control whether reports are
automatically submitted or not using the --nocrashprompt command line option or by
setting the environment variable NO_CRASH_PROMPT to 0.
Crashes in terminal mode are automatically submitted when crash handling is enabled.
USER GUIDE
360
Closing Scripts | Recovering Back-Ups
Closing Scripts
To close a script:
1. Select File > Close Comp (or press Ctrl/Cmd+W).
2. If you have made any unsaved changes to the script, Nuke prompts you to select whether to save
them. Click Yes to save your changes or No to ignore them.
Nuke quits and relaunches, as though you ran it again. It does everything it does at start-up, apart
from displaying the splash screen. Therefore, you can use Ctrl/Cmd+W as a quick way to clear
memory, reread plug-in paths, and reload the init.py and menu.py files. (The init.py and
menu.py files are files that Nuke runs at start-up and can be used for configuring Nuke. You may
want to reload these files if you have made any changes to them.)
USER GUIDE
361
Loading Scripts | Recovering Back-Ups
Loading Scripts
When you have built a script, or comp, and saved it and want to come back to it later, you need to
load in an entire script file. You recognize Nuke’s script files from the extension .nk (for example
firstscript.nk).
1. Select File > Open Comp (or press Ctrl/Cmd+O).
The Script to open dialog appears.
2. Browse to the script you want to open. For instructions on using the file browser, see Using the
File Browser.
3. Click Open.
Note: Some NukeX plug-ins are not supported by Nuke, and likewise, some Nuke nodes are
not supported in Nuke Assist. Unsupported plug-ins are displayed in the Node Graph with
errors, and unsupported nodes are outlined in red.
The Viewer renders the output of the node tree whether the components are supported or
not, but you cannot modify the output of unsupported plug-ins and nodes.
USER GUIDE
362
Defining Frame Ranges | Recovering Back-Ups
The following table gives you more examples of frame ranges you can define.
3 3
-3 -3
1348 1, 3, 4, 8
1-10 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
1-10×2 1, 3, 5, 7, 9
1-10×3 1, 4, 7, 10
You can use the above ways of defining a frame range everywhere in Nuke. In addition to dialogs,
they can be used on the command line (where any frame ranges should be preceded by the -F switch)
and in Python statements. For more information, see Command Line Operations and the Nuke
Python documentation (Help > Documentation).
USER GUIDE
363
Reformatting Elements
These pages teach you how to reformat images through scaling, cropping, and pixel aspect
adjustments. You will also learn to adjust bounding boxes to minimize processing and rendering
times.
When creating a new format from scratch, you define the overall resolution, the cropped resolution
(optional) and the pixel aspect ratio. As you define these parameters, the Reformat operator
graphically displays them for you in the manner shown below.
USER GUIDE
364
Reformatting Elements |
Note: You can also add formats to Nuke via entries to the menu.py file:
1. Open the menu.py file (located in same directory as your Nuke executable).
2. Add an entry similar to the following example:
nuke.addFormat ("720 486 0 0 720 486 0.9 NTSC_video")
where the numbers specify, respectively, the format’s full horizontal resolution, full vertical
resolution, left crop position, bottom crop position, right crop position, top crop position,
and pixel aspect ratio; and where the final text string designates the format’s name.
3. Save and close the menu.py file. The next time you launch Nuke the format is available
for selection from the Project Settings dialog, Reformat node properties panel, and
elsewhere.
To Edit a Format:
1. Select the format you wish to edit from the output format dropdown menu.
2. From the same dropdown menu, select edit. The Edit format dialog appears.
3. Edit the name, file size, image area, and pixel aspect fields as necessary.
4. Click OK to save the changes to the format.
USER GUIDE
365
Reformatting Elements | Creating Thumbnails
To Delete a Format:
1. Select the format you wish to delete from the output format dropdown menu.
2. From the same dropdown menu, select delete. The format is removed from the menu.
To Apply a Format:
1. If necessary, click Transform > Reformat to insert a Reformat node at an appropriate place in
your script (generally before a Write node).
2. Connect a Viewer to the output of the Reformat node so you can see the effect of your changes.
3. From the type dropdown menu, select to format.
4. Select the format you wish to apply from the output format dropdown menu.
5. From the resize type field, select the method by which you want to preserve or override the
original aspect ratio. Select:
• width to scale the original until its width matches the format’s width. Height is then scaled in
such a manner as to preserve the original aspect ratio.
• height to scale the original until its height matches the format’s height. Width is then scaled in
such a manner as to preserve the original aspect ratio.
• fit to scale the original until its smallest side matches the format’s smallest side. The original’s
longer side is then scaled in such a manner as to preserve original aspect ratio.
• fill to scale the original until its longest side matches the format’s longest side. The input’s
shorter side is then scaled in such a manner as to preserve original aspect ratio.
• distort to scale the original until all its sides match the lengths specified by the format. This
option does not preserve the original aspect ratio, so distortions may occur.
6. When cropping the output, check center to position the crop area at the center of the frame.
7. Select the appropriate filtering algorithm from the filter dropdown menu (see Choosing a
Filtering Algorithm).
8. When scaling an image with Key, Simon, and Rifmen filters, you may see a haloing effect which is
caused by pixel sharpening these filters employ. If necessary, check clamp to correct this
problem.
Creating Thumbnails
1. Click Transform > Reformat to insert a Reformat node at an appropriate place in your script
(generally before a Write node).
2. Connect a Viewer to the output of the Reformat node so you can see the effect of your changes.
3. From the type dropdown menu, select to box.
4. In the width and height fields, type the output dimensions. The units are pixels.
USER GUIDE
366
Reformatting Elements | Scaling Image Sequences
5. Use the resize type dropdown menu to select the method by which you preserve or override the
original pixel aspect ratio. Select:
• width to scale the original until its width matches the value in the width field. Height is then
scaled in such a manner as to preserve the original aspect ratio (this means that the output you
specified in height may not match the result).
• height to scale the original until its height matches the value in the height field. Width is then
scaled in such a manner as to preserve the original aspect ratio (this means that the output you
specified in width may not match the result).
• fit to scale the original until its smallest side matches the corresponding value in width/height.
The longer side is then scaled in such a manner as to preserve the original aspect ratio.
• fill to scale the original until its longest side matches the corresponding value in width/height.
The smallest side is then scaled in such a manner as to preserve the original aspect ratio.
• distort to scale the original until its sides match the values in the width/height fields. This
option does not preserve the original aspect ratio, so distortions may occur.
6. Select the appropriate filtering algorithm from the filter dropdown menu (see Choosing a
Filtering Algorithm).
7. When scaling an image with Key, Simon, and Rifmen filters, you may see a haloing effect which is
caused by pixel sharpening these filters employ. If necessary, check clamp to correct this
problem.
USER GUIDE
367
Reformatting Elements | Cropping Elements
• distort to scale the original so that both sides fill the output dimensions. This option does not
preserve the original aspect ratio, so distortions may occur.
6. Select the appropriate filtering algorithm from the filter dropdown menu (see Choosing a
Filtering Algorithm).
7. When scaling an image with Key, Simon, and Rifmen filters, you may see a haloing effect which is
caused by pixel sharpening these filters employ. If necessary, check clamp to correct this
problem.
Cropping Elements
To crop a frame is to cut out the unwanted portions of the image area.
• Or, in the Crop properties panel, increment or decrement the box field (x stands for left side, y
for bottom side, r for right side, and t for top side).
4. To fill the cropped portion with black, check black outside. To fill the cropped portion by
expanding the edges of the image, uncheck black outside. To adjust the image output format to
match the cropped image, check reformat.
5. If you wish to vignette the edges of the cropped portion, increment the softness field.
USER GUIDE
368
Reformatting Elements | Cropping Elements
USER GUIDE
369
Adjusting the Bounding Box
The bounding box defines the area of the frame that Nuke sees as having valid image data. The larger
the bounding box is, the longer it takes Nuke to process and render the image. To minimize
processing and rendering times, you can crop the bounding box. Occasionally, the bounding box may
also be too small, in which case you need to expand it.
Note: Other Nuke functions, such as Transforms and Merges, can also affect the size of the
bounding box, see Transforming in 2D and Merging Images for more information.
The AdjBBox node expands or crops the edges of the bounding box by a specified number of pixels.
Tip: You can enable a warning to indicate when the bounding box is greater that the format
in Nuke's Preferences. See Bounding Box Warnings for more information.
For example, if you have an image with lots of black (0,0,0,0), you can adjust the bounding box to
contain just the useful area so that Nuke won’t waste time computing results where there is no
change.
USER GUIDE
370
Adjusting the Bounding Box |
1. Select Transform > AdjustBBox to insert an AdjBBox node after the image whose bounding box
you want to resize.
2. Connect a Viewer to the AdjBBox node, so you can see the effect of your changes.
3. In the AdjBBox controls, adjust the Add Pixels slider to increase or decrease the size of the
bounding box. By default, 25 pixels are added to the edges of the bounding box.
Nuke expands or crops the edges of the bounding box. If the bounding box is cropped, whatever
is outside the bounding box area is replicated towards the edges of the image.
USER GUIDE
371
Adjusting the Bounding Box | Bounding Box Warnings
A cropped bbox with replicated edges. The effect of the BlackOutside node.
1. Select the image whose edges outside the bounding box you want to fill with black.
2. Select Transform > BlackOutside to add a BlackOutside node in an appropriate place in your
script.
Nuke fills everything outside the bounding box area with black.
To make it easier to see the state of your bounding box, Nuke can display visual warnings on the
nodes that affect the bounding box.
Warning: If you enable the Bounding Box Warning, Nuke performs extra processing steps
to identify problematic nodes, which may result in performance degradation.
To enable the warnings, in Nuke's Preferences under Panels > Node Graph, enable Bounding Box
Warning:
• red rectangle with dotted stroke - the indicated node creates a bounding box greater than the
format.
USER GUIDE
372
Adjusting the Bounding Box | Bounding Box Warnings
• dotted stroke without the red rectangle - the bounding box size is greater than the format at the
indicated node, but the bounding box size has been set by an upstream node.
The bbox warning threshold controls how far past the edge of the format the bounding box can
expand before the warning is displayed in the Node Graph. For example, if you're working with UHD_
4K footage and the default 10% threshold, you can expand the bounding box horizontally by 384
pixels before the warning is displayed.
USER GUIDE
373
Adjusting the Bounding Box | Bounding Box Warnings
Tip: You can set the color of the warning rectangle in the Preferences under Panels >
Node Graph > Bounding Box Warning.
USER GUIDE
374
Channels
Digital images generally consist of the four standard channels: red, green, blue, and alpha. Nuke
allows you to create or import additional channels as masks, lighting passes, and other types of
image data.
Introduction
A Nuke script can include up to 1023 uniquely named channels per compositing script. For example,
you can combine multiple render passes from a 3D scene - an image from the red, green, and blue
channels, a depth mask (z-depth channel), a shadow pass, a specular pass, lighting passes, and
multiple mattes all stored within one image sequence in your composite.
Note: When a script is saved, any channels that are not referenced in the script are
discarded automatically.
When creating channels and layers, bear in mind these good practice guidelines:
• Ensure that all layers use the same channel names in the same order. This avoids complications
with multilayer .exr files imported into Nuke.
• Always use proper names for channels, never just a single letter.
• Always create a custom layer for custom channels, don't add to the existing default layers.
• Never use more than four channels per layer. Nuke only has a four channel interface.
A current Channel Count is displayed in the bottom-right of the interface, which changes color as the
number of channels increases. The default threshold is 1023, but you can set the limit in the
Preferences under Project Defaults > Channel Management > Channel Warning Threshold.
The Channel Count turns yellow if you exceed the Channel Warning Threshold and red if the
Channel Count is equal to or greater than the maximum channel value 1023.
Note: Nuke does not remove unused channels until you close and reopen a script, so the
Channel Count does not decrease when you remove Read nodes from the Node Graph.
USER GUIDE
375
Channels | Quick Start
Quick Start
Here's a quick overview of the workflow:
1. Channels in Nuke are always a part of a layer. You can create new channels and layers using the
new option in the channel selection dropdown menus (such as output and mask) in a node’s
properties panel. For more information, see Object Material Properties.
2. Using the channel selection controls you can select which channels the node is processing and
outputting, or using as a mask when color correcting for instance. For more information, see
Calling Channels and .
3. The channels can also be linked to other channel controls through the Link menu. For more
information, see Linking Channels Using the Link Menu.
4. Using the Shuffle and ShuffleCopy nodes, you can rearrange your input channels and apply the
result in the output. For more information, see Swapping Channels.
USER GUIDE
376
Understanding Channels and Layers | Channels
Channels
Think of a channel as a container that contains image data. Once created or read into your
composite, the image data stored in a channel is available downstream in the network until the value
is replaced with something else or the channel is removed. The channel may even be “empty” -
depending on where you reference it in the compositing network.
Layers
All channels in a script must exist as part of a layer (also called a channel set). You’re probably familiar
with the default layer - rgba - which includes the channels with pixel values of red, green, and blue,
and also the alpha channel for transparency.
All channels in a composite must belong to at least one layer. Some channels, like alpha, may be
available in other layers, too. Channel names always include the layer name as a prefix, like this:
USER GUIDE
377
Understanding Channels and Layers | Layers
layer_name.channel_name.
By default, every script has a layer called rgba. When you first import an image element, Nuke
automatically assigns its channels to the rgba layer - that is, the image channels are named rgba.red,
rgba.blue, rgba.green, and rgba.alpha.
The rgba layer allows for the standard four-channel workflow of most node-based compositing
systems. However, you’re not limited to these four channels. You can create new channels and assign
them to new layers up to the limit of 1023 channels per script.
USER GUIDE
378
Creating Channels and Layers | To Create a New Layer and/or Channel
Many nodes feature an output or channels setting, which lets you direct the output of the current
node to a specific layer and channel. You can also use the output or channels dropdown menu to
create new layers and channels.
Some nodes do not include an output or channels setting in their parameters. For these, you can
connect other nodes, such as Channel Copy or Shuffle, to create and manage channel output in the
node tree.
Note: You can either use a new layer name to create a new layer, or enter a layer you’ve
created previously. You can’t create new channels into layers that are built into Nuke (such as
mask).
4. Click OK.
USER GUIDE
379
Creating Channels and Layers | To Create a New Layer and/or Channel
Note: You can also create new channels with the Shuffle and ShuffleCopy nodes. These are
explained later, under Swapping Channels.
USER GUIDE
380
Calling Channels | To Create a New Layer and/or Channel
Calling Channels
By default, most nodes in Nuke attempt to process the current channels in the rgba set and place the
output in those same channels. However, many nodes also contain an input dropdown menu which
lets you select the channels you want to process, and an output dropdown menu to select the
channel(s) where the results should be stored.
Some nodes also contain mask controls and a mask input connector, which let you select a channel
for use as a matte to limit operations such as color corrections. Using these mechanisms, you can
point the output of almost any node in the script to any available channel.
The script below attempts to clarify these concepts. Note the script generates six channels (though it
could just as well generate 1023). The steps below describe how each channel was created.
USER GUIDE
381
Calling Channels | Viewing Channels in the Viewer
A six-channel script.
1. The script reads in the foreground, creating three channels (red, green, and blue), which are by
default assigned to the rgba set. Channel count: 3
2. A low contrast key (soft) is pulled and assigned to a new layer called mattes. Channel count: 4
3. A high contrast key (hard) is pulled and also assigned to the mattes layer. Channel count: 5
4. The mattes.hard and mattes.soft channels are mixed to form the final matte (alpha), which is
assigned to the rgba layer. Channel count: 6
Suppose now that you wanted to perform a color correction using the output of the Soft Matte node
as a mask for the correction. There’s no need to pipe the output from that Soft Matte node - it already
exists in the data stream along with the other five channels that were created.
You simply attach a color correction node, such as HueCorrect, then select the appropriate channel
from the mask controls, for example mattes.soft.
Note: The mattes portion of the name indicates the parent layer.
USER GUIDE
382
Calling Channels | Selecting Input Channels
3. Deselect those channels which you don’t wish to process. The node processes all those you leave
selected.
Selecting Masks
The mask controls in a node’s properties panel let you select a single channel for use as a matte in a
given process (typically, a color correction). The given process thereafter is limited to the non-black
areas of the selected channel.
You can use one of the script’s existing channels as the matte, or attach a mask to the node with a
mask input connector.
You can find mask input connectors on color correction and filter nodes, such as HueCorrect and
Blur. At first, they appear as triangles on the right side of the nodes, but when you drag them, they
turn into arrows labeled mask. You connect them the same way as any other connectors. If you
USER GUIDE
383
Calling Channels | Selecting Masks
cannot see a mask input connector, open the node’s properties panel and make sure mask is set to
none.
If you cannot see the mask input connector, open the node’s controls and make sure mask is set
to none.
By default, when a mask input is connected, the node uses the alpha channel from it as a matte.
2. If you don’t want to use the alpha channel as the matte, select the channel you want to use from
the mask dropdown menu.
3. If you want the mask from the mask input copied into the predefined mask.a channel, check
inject. This way, you can use the last mask input again downstream. You can also set a stream of
nodes to use mask.a as the mask, and then change the masking of all of them by simply
connecting a new mask into the mask input connector of the first node.
4. If necessary, check the invert box to reverse the mask.
Tip: The invert control also affects any injected masks from upstream nodes.
USER GUIDE
384
Calling Channels | Selecting Masks
5. If the overall effect of the node is too harsh, you can blend back in some of the input image by
adjusting the mix slider.
USER GUIDE
385
Linking Channels Using the Link Menu | Selecting Masks
USER GUIDE
386
Tracing Channels | Selecting Masks
Tracing Channels
You may have noticed that nodes visually indicate the channels which they are processing (that is,
treating in some way) and passing (that is, conveying without any treatment). This is done via a system
of colored rectangles, which allows you to trace the flow of channels throughout a script.
Look closer at this example node. The wide rectangles indicate channels which Nuke processes (in
this case, the red, green, blue, and alpha channels). The narrow rectangles indicate channels that
Nuke passes onto the next node without processing (in this case, the mattes.soft and mattes.hard).
USER GUIDE
387
Renaming Channels | Selecting Masks
Renaming Channels
In the course of building your script, you may find it necessary to replace certain channels in a layer.
1. Open the properties panel for a node which has the channel selected on the channels, input, or
output dropdown menu.
2. Click on the dropdown menu where the channel is displayed and select rename.
The Rename Channel dialog appears.
3. Enter a new name for the channel and click OK.
USER GUIDE
388
Removing Channels and Layers | To Remove a Layer or a Channel Within a Layer
Note: When a script is saved, any channels that are not referenced in the script are
discarded automatically.
Note: Removing layers and or channels does not free up space for the creation of new
channels and layers. Once you create a channel, it permanently consumes one of the script’s
1023 available channel name slots. You are free, however, to rename channels and/or assign
them new outputs.
USER GUIDE
389
Swapping Channels | To Remove a Layer or a Channel Within a Layer
Swapping Channels
Nuke features two main nodes for channel swapping: Shuffle and ShuffleCopy. Shuffle lets you
rearrange the channels from a single image (1 input) and then output the result to the next node in
your compositing tree. ShuffleCopy lets you rearrange channels from two images (2 inputs) and
output the result. Let’s take a look at the ShuffleCopy node first.
USER GUIDE
390
Swapping Channels | Channel Outputs
Tip: If you just need to copy a channel from one data stream into another, use Channel >
Copy, instead of ShuffleCopy. Then, specify the channel to copy and the destination channel
for output.
Channel Outputs
The combination of the boxes checked in the channel matrix create the list of channels that are
output to the layer selected in the top dropdown menu on the right.
This four channel stream acts as the second set of outputs from the node. It allows you to output
another four channels from the node, for a total of eight channels of output to match the possible
eight channels of input.
In this case, this second set of outputs has not been utilized.
Tip: While not required, it’s good practice to use the first set of outputs for swapping
channels in the current data stream and the second set of outputs for creating new
channels. This protects the default rgba set from unintentional overwriting, and makes it
easier for other artists to understand the workings of your script.
The basic process then for swapping channels is to first select your incoming layers from the 1 in and
2 in (or, in the case of the Shuffle node, the in 1 and in 2) dropdown menus. Then, select your
outgoing layers from the dropdown menus on the right. Then make the actual channel swaps by
clicking on the resulting matrix.
For example, to take the simplest case, suppose, you wanted to copy the red channel of an rgba set
into its alpha channel. You would click on the matrix to create the following configuration.
USER GUIDE
391
Swapping Channels | Assigning Constants
You can see that the matrix makes use of the r channel (standing for red) twice. It goes out once as
the red channel, and another time as the alpha channel.
Assigning Constants
The shuffle nodes also include parameters that let you assign white (1) or black (0) constants to any
incoming channel. So, for example, to reset the alpha channel to a full-frame image, you would
configure the matrix as follows:
USER GUIDE
392
Merging Images
With Nuke, you can merge images in a wide variety of ways. In these pages, we teach you how to use
the Merge, ContactSheet, and CopyRectangle nodes.
Note: When using most of the available merge algorithms, Nuke expects premultiplied
input images. However, with the matte operation you should use unpremultiplied images.
USER GUIDE
393
Merging Images |
Tip: You can enable a warning to indicate when the bounding box is greater that the format
in Nuke's Preferences. See Bounding Box Warnings for more information.
7. Select which input's metadata and frame range is passed down the tree using the metadata from
and range from dropdowns.
8. Using the A channels and B channels dropdown menus, select which channels to use from the A
and B inputs and which channels to use as the A and B alpha. If you want to merge more channels
than these and output them into the same channels, select them from the also merge dropdown
menus and checkboxes.
9. From the output dropdown menu, select the channels you want to write the merge of the A and B
channels to. Channels named in the also merge dropdown menu are written to the same output
channels.
10. If necessary, you can also adjust the following controls:
• To select which input’s metadata to pass down the tree, use the metadata from dropdown
menu.
Note: When metadata from is set to All and there are keys with the same name in both
inputs, keys in B override keys in A.
For more information on file metadata, see Working with File Metadata.
• To dissolve between the original input B image (at 0) and the full Merge effect (at 1), adjust the
mix slider. A small light gray square appears on the node in the node graph to indicate that the
full effect is not used.
• If you want to mask the effect of the Merge operation, select the mask channel from the mask
dropdown menus. To invert the mask, check invert. To blur the edges of the mask, check
fringe.
Note that you should not use the alpha of the inputs for the mask. It produces erroneous results
(though the error is often hard to see); you can achieve better results by turning on alpha
masking.
• From the Set BBox to dropdown menu, select how you want to output the bounding box. The
default is union, which combines the two bounding boxes. You can also select intersection to
set the bounding box to the area where the two bounding boxes overlap, A to use the bounding
box from input A, or B to use the bounding box from input B.
• By default, Nuke assumes that images are in linear color space. However, if you want to convert
colors to the default 8-bit color space defined in the LUT tab of your project settings (usually,
sRGB), check Video colorspace. The conversion is done before the images are composited
together, and the results are converted back to linear afterwards. Any other channels than the
red, green, and blue are merged without conversion.
USER GUIDE
394
Merging Images | Bounding Box Warnings
Checking this option can be useful if you want to duplicate the results you obtained from an
application that uses the standard compositing math but applies it to non-linear images (for
example, Adobe® Photoshop®). In this case, you typically also need to make sure premultiplied
is not checked in your Read node controls.
• By default, the same math is applied to the alpha channel as the other channels. However,
according to the PDF/SVG specification, many of the merge operations (for example, overlay and
hard-light) should set the alpha to (a+b - ab). This way, the input images remain unchanged in
the areas where the other image has zero alpha. If you want to enable this, check alpha
masking.
To make it easier to see the state of your bounding box, Nuke can display visual warnings on the
nodes that affect the bounding box. To enable the warnings, in Nuke's Preferences under Panels >
Node Graph, enable Bounding Box Warning:
• red rectangle with dotted stroke - the indicated node creates a bounding box greater than the
format.
• dotted stroke without the red rectangle - the bounding box size is greater than the format at the
indicated node, but the bounding box size has been set by an upstream node.
USER GUIDE
395
Merging Images | Bounding Box Warnings
The bbox warning threshold controls how far past the edge of the format the bounding box can
expand before the warning is displayed in the Node Graph. For example, if you're working with UHD_
4K footage and the default 10% threshold, you can expand the bounding box horizontally by 384
pixels before the warning is displayed.
Tip: You can set the color of the warning rectangle in the Preferences under Panels >
Node Graph > Bounding Box Warning.
USER GUIDE
396
Merge Operations | Bounding Box Warnings
Merge Operations
When layering images with the Merge node, you need to select a compositing algorithm that
determines how the pixel values from one input are calculated with the pixel values from the other to
create the new pixel values that are output as the merged image.
The operation dropdown menu in the Merge node’s properties panel houses a large number of
different compositing algorithms, giving you great flexibility when building your composite. The
available algorithms are listed in alphabetical order.
Tip: With many compositing algorithms available, it may sometimes be difficult to find what
you’re looking for in the operation dropdown menu. Luckily, there’s a quick way of finding a
particular operation. With the menu open, you can type a letter to jump to the first operator
that starts with that letter. To move to the second operation that starts with the same letter,
press the letter again. For example, to select the soft-light operation, open the menu and
press S twice.
The following table describes each operation and its associated compositing algorithm. There are
example images to illustrate the effects, one that combines the letters A and B to a merged image
and another that has an image of fire merged with the familiar checkerboard. You may want to spend
some time familiarizing yourself with each algorithm in order to be able to determine which
operation to use in each situation.
USER GUIDE
397
Merge Operations | Bounding Box Warnings
USER GUIDE
398
Merge Operations | Bounding Box Warnings
USER GUIDE
399
Merge Operations | Bounding Box Warnings
divide A/B, Divides the values but This does not match
stops two negative any photographic
0 if A<0 and values from becoming a operation, but can be
B<0 positive number. used to undo a
multiply.
USER GUIDE
400
Merge Operations | Bounding Box Warnings
USER GUIDE
401
Merge Operations | Bounding Box Warnings
USER GUIDE
402
Merge Operations | Bounding Box Warnings
USER GUIDE
403
Merge Operations | Bounding Box Warnings
USER GUIDE
404
Merge Operations | Bounding Box Warnings
screen if
B>0.5
USER GUIDE
405
Merge Operations | Bounding Box Warnings
USER GUIDE
406
Merge Operations | Bounding Box Warnings
Tip: If you have used older versions of Nuke, you may have seen Merge operations called
diagonal, nl_over, and nl_under. Diagonal has been renamed and is now called hypot. To get
the results of nl_over and nl_under, you can check Video colorspace and use over and
under.
USER GUIDE
407
Generating Contact Sheets | To Generate a Contact Sheet
3. Connect a Viewer to the ContactSheet node so you can see the effect of your changes.
USER GUIDE
408
Generating Contact Sheets | To Generate a Contact Sheet
4. In the ContactSheet properties, define the Resolution (width and height) of the entire contact
sheet in pixels.
5. If you want to create a contact sheet from the frames of one input, check Use frames instead of
inputs. In the Frame Range field, define the frame range you want to include in the contact
sheet.
6. In the rows/columns field, specify into how many rows and columns you want to arrange the
input images or frames.
7. To adjust the size of the gaps between the images in the contact sheet, increment or decrement
the gap value.
USER GUIDE
409
Generating Contact Sheets | To Generate a Contact Sheet
Tip: If you want to add any text, such as the frame number, on top of the images in the
contact sheet, insert a Text node between the input image(s) and the ContactSheet node.
USER GUIDE
410
Copying a Rectangle from one Image to Another | To Generate a Contact Sheet
Input A. Input B.
The CopyRectangle node can also be used to limit effects, such as color corrections, to a small region
of an image. To do so, you need to use the same image in both input A and B and only perform the
color correction on one input.
USER GUIDE
411
Copying a Rectangle from one Image to Another | To Copy a Rectangle from One Image to Another
2. In the CopyRectangle controls, use the channels dropdown menu to select the channels you want
to copy from input A.
USER GUIDE
412
Copying a Rectangle from one Image to Another | To Copy a Rectangle from One Image to Another
3. To define the rectangle you want to copy, resize and reposition the CopyRectangle overlay in the
Viewer. Drag the center of the overlay to reposition, and the edges to resize. If you cannot see the
overlay in the Viewer, open the CopyRectangle properties panel and double-click on the Viewer
node in the Node Graph.
USER GUIDE
413
Removing Noise with Denoise
The Denoise node is an efficient tool for removing noise or grain from your footage. It uses spatial or
temporal filtering to remove noise without losing image quality.
Quick Start
Here's a quick overview of the workflow:
1. Connect Denoise to the footage from which you want to remove noise.
See Connecting Denoise.
2. Position the analysis box over a suitable analysis region. Denoise automatically analyzes the noise
structure inside this region and removes noise from the footage.
See Analyzing and Removing Noise.
3. Review the results.
See Reviewing the Results.
4. If you’re not happy with the results, you can fine tune them by adjusting the noise profile,
frequencies, and channels.
See Fine Tuning.
Tip: You can check Use GPU if available to have the node run on the graphics processing
unit (GPU) rather than the central processing unit (CPU).
For more information on the minimum requirements, please see Windows, Mac OS X and
USER GUIDE
414
Removing Noise with Denoise |
macOS, or Linux or refer to the Nuke Release Notes available in Help > Release Notes.
You can select the GPU to use in the Preferences. Press Shift+S to open the Preferences
dialog, make sure you’re viewing the Preferences > Performance > Hardware tab, and set
default blink device to the device you want to use. You must restart Nuke for the change to
take effect.
If you are using a render license of Nuke, you need to add --gpu on the command line.
USER GUIDE
415
Connecting Denoise |
Connecting Denoise
1. Create a Denoise node by clicking Filter > Denoise.
2. Connect the Denoise node’s Source input to the image you want to denoise.
3. If you’re working with complex footage that doesn’t have a convenient area for analyzing noise (a
flat area free from image detail, edges, and luminance variations), you can attach an optional
noise clip to the Noise input. When a Noise clip is supplied, the noise is analyzed in this clip,
rather than the Source clip. The Noise clip should have similar noise characteristics to the
Source clip.
4. You can attach pre-calculated motion vectors to the Motion input. You can generate motion
vectors using VectorGenerator, NukeX's SmartVector, or an external vector generator. See
VectorGenerator or SmartVector for more information.
Denoise can generate motion vectors internally, but connecting this input may produce
significantly faster results.
5. Attach a Viewer to either the Source or Noise clip, depending on which you want to use for the
analysis.
6. Proceed to Analyzing and Removing Noise.
USER GUIDE
416
Analyzing and Removing Noise |
Note: Temporal Processing requires the motion, forward, and backward channels from
the Motion input. You can't enable Temporal Processing unless the Motion input is
connected.
You can increase the Frame Blending value to force Denoise to blend more regions of the frame,
but higher values can lose image detail.
5. Position and resize the analysis box to cover the analysis region. Note that the minimum size for
the analysis region is 80x80 pixels. If the analysis region is too small, Denoise cannot analyze the
footage or remove any noise.
USER GUIDE
417
Analyzing and Removing Noise |
default, whenever the analysis box is altered, the internal analysis of the noise in that region
reoccurs.
6. Connect a Viewer to the Denoise node.
The output should now show the denoised frame.
7. Proceed to Reviewing the Results.
Tip: By default, Denoise starts analyzing the noise in your input footage when you move the
analysis box. If you scrub to a new frame, don't move the analysis box, and want to
reanalyze the noise from the new frame, you can force analysis by clicking the Analyze
Noise button in the Noise Analysis parameter group.
If you’d like to disable analysis, you can check Lock Noise Analysis.
Tip: You can export the analysis profile in an external file. Note that if you’ve set Profile to
Constant, only the controls that affect the analysis are saved in this file. By contrast, if you’ve
set Profile to Automatic, both the analysis profile and the automatically calculated noise
profile are exported.
To export the profile, use the Analysis file control under Noise Analysis to set the name
and location of the file. The file extension doesn’t really matter here - for example .txt is
fine. Once you have named the profile, click the Export button to export it.
To import the same profile later, use Analysis File again to navigate to it and click Import.
This disables any controls that are read from the profile. To re-enable them, you can
uncheck Lock Noise Analysis.
USER GUIDE
418
Reviewing the Results |
USER GUIDE
419
Reviewing the Results |
USER GUIDE
420
Fine Tuning |
Fine Tuning
1. Set Denoise Amount to adjust the overall amount of noise to remove. Increase this to remove
more noise, or decrease it if you want to keep more detail. A value of 0 removes no noise.
2. If the denoised image looks too sharp, use Roll Off to adjust the smoothness of the denoise
thresholding. A value of 1 equals hard thresholding. Any other value produces soft thresholding
between:
• the Denoise Amount value and
• the Roll Off value multiplied by Denoise Amount.
3. If you’re not getting the correct smoothness level by adjusting the Denoise Amount, try setting
Smoothness to a new value. This controls the smoothness of the denoised image, affecting the
underlying image rather than the noise detected. In most cases, the default value of 1 works fine
though.
4. If the results are too smooth and adjusting the above controls didn’t help, try setting Profile to
Automatic. Unlike the Constant profile, which looks at the analysis region and removes the same
amount of noise across all intensities, automatic profiling looks at the entire Profile Frame to
estimate a noise profile and removes different amounts of noise from the shadow, midtone, and
highlight areas of the Source image.
Note: Denoise always bases the noise profile on your Source footage even if you’ve
attached another clip to the Noise input.
USER GUIDE
421
Fine Tuning |
5. You can also tweak the noise profile yourself using the controls on the Profile tab. This works in
both the Constant and Automatic profiling mode.
• Denoise displays the noise profile curve in the curve editor. The x axis represents image
intensity, from low frequencies on the left to higher frequencies on the right. The y axis
represents the relative amount of noise removed.
USER GUIDE
422
Fine Tuning |
noise, process them by as much as you think is best, and leave details in the other frequencies
untouched.
Normally, most of the noise occurs in the high and medium frequencies, so often you can disable
the low and very low frequencies altogether. Use the Gain sliders to remove noise (by increasing
the value) or to add more detail and noise (by decreasing the value).
7. Under Tune Channels, you can adjust the denoising threshold for the luma and chroma
channels. Increase the Luminance Gain and Chrominance Gain values to remove more noise,
or decrease them to remove less.
USER GUIDE
423
Keying with ChromaKeyer
This section explains how to use the blue/green screen keyer, ChromaKeyer, in Nuke. ChromaKeyer
can take advantage of modern GPUs and multi-core CPUs to accelerate the keying process when used
for compositing in Nuke's Node Graph. ChromaKeyer is also available as a soft effect in Nuke Studio's
timeline environment.
Quick Key
The images below show a green screen foreground and the background to be composited over.
Foreground Background
1. Start Nuke and read in the foreground and background images. From the Keyer menu, select
ChromaKeyer and attach a Viewer.
2. In the ChromaKeyer Properties panel, click the color swatch next to screen color to activate the
eye dropper.
3. Ctrl/Cmd+Shift+click and drag a rectangular area over the green pixels in the Viewer. This
averages the pixels in the area selected to produce a better key.
USER GUIDE
424
Keying with ChromaKeyer |
In some cases, this is all you need to do to perform a key, since selecting the screen color creates
a screen matte and despills the foreground.
4. Merge the foreground over the background to produce your final comp.
Picking the screen color may be enough for a lot of keys, but there are many more tools within Nuke
that can be used to tackle more complicated shots. See Improving Mattes on page 429, Despilling and
Color Replacement on page 432, and Multi-Pass Keying on page 434 for more information.
USER GUIDE
425
Picking the Screen Color |
It’s worth picking different shades of green or blue from different parts of the screen to get the
best result.
Note: Picking colors repeatedly does not add to previous selections, keying more of the
image with each click. To key more of the image, pick different shades of green or blue in
additional ChromaKeyer nodes downstream, and set the inside mask control to source
alpha. See Multi-Pass Keying for more information.
USER GUIDE
426
Picking the Screen Color | Adjusting Screen Gain and Balance
• It despills the foreground, but you can use the despill controls for greater accuracy. For more
information on despill, see Despilling and Color Replacement for more information.
A screen gain value lower than 1 adds A screen gain value higher than 1
background color back into the image. removes background color from the
image.
The screen balance controls the bias toward the two non-primary colors after the screen color has
been chosen. A screen balance closer to 0 balances the output toward the stronger of the two colors
and a value closer to 1 toward the weaker color. In the example image, the background color is green
with RGB values of 0.04, 0.7, and 0.07, so values closer to 0 affect the blue component.
USER GUIDE
427
Picking the Screen Color | Adjusting Screen Gain and Balance
USER GUIDE
428
Improving Mattes | Adjusting the Gain, White Point, and Black Point
Improving Mattes
The matte controls can improve the basic matte created after picking the screen color. The best way
to view the matte in ChromaKeyer is to switch the Viewer to display the alpha channel in the R or
Luminance display styles.
The matte in the alpha channel R The matte in the alpha channel
display. Luminance display.
USER GUIDE
429
Improving Mattes | Adjusting the Gain, White Point, and Black Point
Adjusting the chroma gain controls how much of the chroma difference between the source image
and the screen color is used to correct the matte. Increasing the gain generates a matte that has less
transparent areas in the foreground, but can produce harder edges.
The matte with a low chroma gain The matte with a high chroma gain
value. value.
Adjusting the white and black point controls the pixels that appear as foreground and background.
Any pixels with values higher than the white point value are treated as foreground (alpha = 1) and
any pixels with values lower than the black point value are treated as background (alpha = 0).
USER GUIDE
430
Improving Mattes | Adjusting the Gain, White Point, and Black Point
The matte with the default white The matte with a white point value of
point value. 0.5.
The matte with the default black point The matte with a black point value of
value. 0.5.
The chroma gain, white point, and black point controls represent a balancing act between
removing too much foreground and retaining too much background. Once you're happy with the
matte, proceed to Despilling and Color Replacement.
For particularly tricky keying problems, you can improve the matte using multi-pass keying. This
method uses multiple ChromaKeyer nodes with all but the first one in the node tree set to inside
mask > source alpha, so that the mattes in the alpha channels are passed down the node tree. See
Multi-Pass Keying for more information.
USER GUIDE
431
Despilling and Color Replacement | Custom Despilling
Custom Despilling
The despill bias allows you to specify a color from the image, separate from the alpha bias, to
improve the overall despill for the matte. Typically, you should pick skin tones or hair colors for the
despill bias.
1. Enable custom despill bias to allow you to use the despill bias controls.
2. Click the color swatch next to despill bias to activate the eye dropper.
3. Ctrl/Cmd+Shift+click and drag a rectangular area over the color you want to replace the
highlighted pixels in the Viewer. This averages the pixels in the area selected to produce a better
result.
Blue screen pixels present in a default Selecting the hair color despills the
matte. blue pixels, producing a better matte.
Color Replacement
Improving a matte by adjusting the alpha channel can remove the wrong amount of screen color
from the pixels where transparency has changed. The replace controls instruct ChromaKeyer how to
deal with these pixels. The replace mode controls which pixels inherit the replace color.
1. In the ChromaKeyer Properties panel, select the required replace mode using the dropdown:
• ignore - the despilled image is left untouched if the alpha is modified. This is the default
operation.
USER GUIDE
432
Despilling and Color Replacement | Color Replacement
• edge hard color - the despilled image has a corresponding amount of the replace color added
for any increase in alpha.
• edge linear color - the despilled image has a graded amount of the replace color, controled by
a linear curve, added for any increase in alpha. Pixels closer to the background have more
background bias and pixels closer to the foreground have more foreground bias.
• edge soft color - the despilled image has a corresponding amount of the replace color added
for any increase in alpha, however, it attempts to modulate the luminance of the resulting pixel
so that it matches the original pixel. This gives a more subtle result than the edge hard color
option.
2. Click the color swatch next to replace color to activate the eye dropper.
3. Ctrl/Cmd+Shift+click and drag a rectangular area over the color you want to replace the
highlighted pixels in the Viewer. This averages the pixels in the selected area to produce a better
result.
Note: You can enhance the despill effect by enabling add-in matte fix to also apply the
replace color to areas eroded or dilated by the white point and black point controls.
Image with edge soft color Highlighted pixels replaced by the color
highlighted. picked from the Viewer.
4. Use the replace amount slider to control how much of the replace color is applied.
5. Disable the premultiply control if you don't want the output premultiplied by the alpha channel.
USER GUIDE
433
Multi-Pass Keying | Color Replacement
Multi-Pass Keying
In production situations, you may not always get a uniform color across your blue or green screen
background, which can make pulling a key difficult. ChromaKeyer allows you to key different regions
of the screen additively by picking shades of blue or green in multiple ChromaKeyer nodes. The
example image shows a poor background containing different shades of blue as a screen color.
You can see from the image that ChromaKeyer has done a decent job on the area chosen, but the
lower-half of the image still contains some noise.
2. Add a second ChromaKeyer node and in the Properties panel, set the inside mask control to
source alpha.
This takes into account the screen matte from the initial ChromaKeyer node when you pull
another key.
3. Pick another screen color in the problem area using the second ChromaKeyer node.
The key is improved by adding the second screen matte to the results of the first.
4. You can add as many ChromaKeyer nodes as you like, as long as you remember to set the inside
mask control to source alpha in all but the first ChromaKeyer node.
USER GUIDE
434
Keying with Keylight
This section explains how to use the blue/green screen keyer, Keylight, in Nuke.
Quick Key
Consider this shot from The Saint, pictures courtesy of CFC and Paramount British Pictures Ltd.
Blue screen.
The figure above is the blue screen foreground that should be composited over the background
shown below.
Background.
1. Start Nuke and read in both images. From the Keyer menu, apply Keylight and attach a Viewer.
2. Click the color swatch next to ScreenColor to activate the eye dropper. In the Viewer,
Ctrl/Cmd+Shift+Alt+click and drag a rectangular area over the blue pixels as shown below.
USER GUIDE
435
Keying with Keylight |
Picking the screen color may be enough for a lot of keys, but there are many more tools within Nuke
that can be used to tackle more complicated shots. These are described later in this chapter.
USER GUIDE
436
Basic Keying | Picking the Screen Color
Basic Keying
The following section describes the parameters you need to do basic keying. This gives you enough to
tackle most simple keys. A discussion of advanced parameters to fine tune keys and tackle complex
keys can be found under Advanced Keying.
Tip: If you press Alt when sampling a color, Nuke always samples the source image
regardless of what you’re looking at. This means that you can pick the blue screen color even
if you are viewing the matte, status, or composite.
Tip: Picking different shades of blue from the screen color can give quite different results.
It’s worth picking from different parts of the screen to get the best result.
Picking the ScreenColor creates the screen matte used to composite the foreground over the
background. It also sets the ScreenBalance (if this has not already been set manually) and despills
the foreground.
Screen Matte
Setting the screen color pulls a key, or in other words, creates a matte - the ScreenMatte. Setting the
screen color also despills the foreground, although you can also use the DespillBias to remove more
spill. In some cases this is enough to get a decent key. For more information on ScreenColor, see
Screen Color.
USER GUIDE
437
Basic Keying | Viewing the Key
You should note that repeatedly picking colors does not add to previous selections and key more of
the image with each click. To key more of the image, try picking different shades of blue then use the
screen strength parameter. See Keying More.
The Status is one of the options in the View dropdown menu and shows an exaggerated view of the
key so that you can make a more informed decision when tuning the key. The image on the right
shows the Status display after the screen color has been picked from the image on the left.
USER GUIDE
438
Basic Keying | Keying More
• Gray pixels are a blend of foreground and background pixels in the final composite. You need gray
pixels around the edge of the foreground to get a good key at the foreground edge. Pixels that are a
blend between the foreground and background are shown in just one shade of gray. This is done to
highlight potential problems with the key. These gray pixels may represent a
foreground/background blend of 50/50 or 99/1. No distinction is made as to this ratio.
You may occasionally see other colors in the Status view and these are covered under View.
Keying More
To improve the key by firming up the foreground so the background doesn’t show through, you
should adjust the ClipWhite parameter. To key more of the foreground so that the background is
clearer, you should use the ClipBlack parameter. Look at the ScreenMatte and the Composite while
you’re doing this. Don’t overdo either of these or the edges between foreground and background
become hard.
USER GUIDE
439
Advanced Keying | Under the Hood
Advanced Keying
The following section describes how Keylight works under the hood as well as the parameters you
need to fine tune keys and get the most out of Keylight. Basic parameters covered previously may
also be covered here in more detail.
View
The View parameter allows Keylight to render the final composite of the foreground over the
background, or the foreground RGBA for compositing further down the tree. Two options,
ScreenMatte and Status, are for viewing the key rather than an output. The options are:
• Source - shows the blue/green screen foreground.
• SourceAlpha - shows the alpha channel on the foreground input.
• ScreenMatte - this is the matte created from picking the ScreenColor. It does not include any
inside or outside masks.
• InsideMask - shows the inside input. This is used to firm up the foreground matte to stop print
through.
• OutsideMask - shows the outside input. The outside mask is used as a garbage mask to reveal the
background.
• CombinedMatte - the screen matte, inside mask, and outside masks added together.
• Status - this renders an exaggerated view of the key so that minor problems are shown clearly.
• IntermediateResult - use this option on shots that can only be keyed using several different keys
on different parts of the image (multi-pass keying). This renders the original source image with the
ScreenMatte generated in this Keylight node. In Keylight nodes down the tree, you should set the
SourceAlpha in the InsideMask folder to AddToInsideMask.
• FinalResult - this creates a premultiplied RGBA foreground that can be composited later. There’s an
UnpremultiplyResult toggle you can use if you wish.
• Composite - this renders the foreground composited over the background using all mattes, spill
and color corrections.
USER GUIDE
440
Advanced Keying | Status
Status
Status is one of the options in the View dropdown menu and shows an exaggerated view of the key
so that you can make a more informed decision when fine tuning the composite. The figure on the
right shows the Status after the screen color has been picked from the image shown in the figure on
the left.
You may occasionally see other colors in the Status view. The figure on the left shows black, white,
gray, and green pixels.
USER GUIDE
441
Advanced Keying | Status
• Green pixels are a warning. They show you the parts of the alpha that have changed through
processing the alpha channel (clipped, softened, or eroded). These areas have had the correct
amount of spill removed, but the alpha has subsequently changed and the composite may no
longer look right. This can be corrected using the ScreenReplaceColor to put back color in these
areas. Above, the figure on the right is an extreme example to illustrate the point. The
ScreenReplaceColor has been set to pure red and you can see that this mirrors the green pixels in
the Status view.
USER GUIDE
442
View | Status
View
The View parameter allows Keylight to render the final composite of the foreground over the
background, or the foreground RGBA for compositing further down the tree. Two options, Screen
Matte and Status, are for viewing the key rather than an output. The options are:
• Source - shows the blue/green screen foreground.
• Source Alpha - shows the alpha channel on the foreground input.
• Screen Matte - this is the matte created from picking the Screen Color. It does not include any
inside or outside masks.
• Inside Mask - shows the inside input. This is used to firm up the foreground matte to stop print
through.
• Outside Mask - shows the outside input. The outside mask is used as a garbage mask to reveal the
background.
• Combined Matte - the screen matte, inside mask, and outside masks added together.
• Status - this renders an exaggerated view of the key so that minor problems are shown clearly.
• Intermediate Result - use this option on shots that can only be keyed using several different keys
on different parts of the image (multi-pass keying). This renders the original source image with the
Screen Matte generated in this Keylight node. In Keylight nodes down the tree, you should set the
Source Alpha in the Inside Mask folder to Add To Inside Mask.
• Final Result - this creates a premultiplied RGBA foreground that can be composited later. There’s
an Unpremultiply Result toggle you can use if you wish.
• Composite - this renders the foreground composited over the background using all mattes, spill
and color corrections.
Status
Status is one of the options in the View dropdown menu and shows an exaggerated view of the key
so that you can make a more informed decision when fine tuning the composite. The figure on the
right shows the Status after the screen color has been picked from the image shown in the figure on
the left.
USER GUIDE
443
View | Status
You may occasionally see other colors in the Status view. The figure on the left shows black, white,
gray, and green pixels.
USER GUIDE
444
View | Status
USER GUIDE
445
Screen Color | Background Pixel
Screen Color
The screen color represents the color of the pure blue (or green) screen. The first thing you should do
when pulling a key is pick the Screen Color.
Note: If you press Alt when sampling a color, Nuke always samples the source image
regardless of what you’re looking at. This means that you can pick the blue screen color even
if you are viewing the matte, status or composite.
Picking the Screen Color creates the screen matte used to composite the foreground over the
background. It also sets the Screen Balance and despills the foreground.
The Screen Color is a single color. It has a primary component, blue or green, and that has a
saturation. Once the screen color has been picked, Keylight analyzes all the pixels in the image and
compares the saturation of the primary component in each of these pixels with the corresponding
saturation of the screen color. Keylight uses this comparison to do two things.
1. It calculates the transparency of that pixel and puts it in the alpha channel.
2. It removes the screen color from the pixel, a process known as despilling.
Tip: It’s worth sampling a selection of screen (blue or green) colors and viewing the result.
Picking different colors gives different results.
Background Pixel
If the saturation of the pixel in the image is as strong or greater than the screen color, then it’ll be a
pixel from the blue screen background, and that pixel is set to completely transparent and black. See
the figure below.
USER GUIDE
446
Screen Color | Edge Pixel
Edge Pixel
If the saturation of the pixel is less than the screen color, then it’ll be the edge of the foreground
object, and we subtract some of the screen color from the pixel (despilling) and set the image to
semi-opaque. See the figure below.
Foreground pixel
If the primary component in the pixel is not the same as the primary component of the screen color,
we have a foreground pixel, and the alpha is set to completely opaque. The pixel color is not
modified. See the figure below.
USER GUIDE
447
Screen Color | Biasing
Note: You should note that the ScreenColor is a single color. You are not picking lots of
colors that are keyed out.
Biasing
What’s biasing all about? Biasing in Keylight was originally developed for a shot in the motion picture
"Executive Decision". The foreground consisted of reddish browns, but a combination of factors led
to the 'green screen' being lit so that its primary component was actually slightly red.
So what happens when we pick the screen color? Well because the screen was 'red', as is the
foreground, our pilot ends up being keyed out as shown below.
Not a great result, I’m sure you’ll agree, and much pressure was applied to the lowly programmers to
get around the problem.
A work around to this is to manually color correct the image so that the background is properly
green, pull the key from this corrected image, then 'un-correct' the result of that so that the
foreground colors match the original. A corrected image would look something like the one shown
below. The green screen is now strongly green and distinct from the foreground colors. Notice also
the red cast on the pilots mask has been removed and turned into a neutral gray.
USER GUIDE
448
Screen Color | The Bias Colors in Everyday Use
This is effectively how the Keylight developers got around the problem. They introduced the concept
of a 'bias' color, which is a color cast that is removed from the source image and screen color, then a
key is pulled from this modified image, then the color cast is put back. In essence, this automates the
work around described above, however, it is done in a way that does not slow Keylight down at all.
For our Executive Decision shot, an appropriate color is the red cast on the pilot's mask in the source
footage. Setting our bias to this now gives us the far better result as shown below.
Note: If you press Alt when sampling a color, Nuke always samples the source image
regardless of what you’re looking at. For instance, you may be looking at the blue screen
keyed over the background but you are picking colors from the Source image.
USER GUIDE
449
Screen Color | The Bias Colors in Everyday Use
However, sometimes you can pick a bias that gives a great alpha, but performs a poor despill, and
another bias that gives a great despill, but a poor alpha. Consider the blue screen from the TV series
Merlin, courtesy of CFC Framestore shown below in the figure on the left.
We pick the strong blue of the background without selecting an alpha bias, and end up with the lovely
alpha shown on the right, but the despill resulting from this key is poor as shown below.
Tip: There are several nodes in Nuke you can use for spill removal. For example, if you are
using a greenscreen image, you can add an Expression node after your foreground image
and set the expression field for the green channel to:
g>(r+b)/2?(r+b)/2:g
Similarly, you can despill a bluescreen image by setting the expression field for the blue
channel to:
b>(r+g)/2?(r+g)/2:b
USER GUIDE
450
Screen Color | The Bias Colors in Everyday Use
You can also use the HueCorrect node for despill. For more information, see Correcting Hue
Only.
We can pick an alpha bias to get a better despill, but this destroys our nice alpha. The way around this
is to turn off the Use Alpha Bias for Despill, which gives you a separate bias factor to use solely for
despill calculations. If you then pick the Despill Bias to be something from Miranda Richardson's hair
or skin tone, you keep the nice alpha, and get a good despill as well (see the figure on the right).
USER GUIDE
451
Clip Black and White | The Bias Colors in Everyday Use
Notice how the gray areas in the black background have been reduced and that the gray edges have
hardened up considerably. When compositing, the Clip Black control can be used to improve the
background image if parts of the foreground are showing through. The Clip White control, on the
other hand, can be used to firm up the center of the matte, making it less transparent to the
background.
Note: If you choose to use ClipBlack and ClipWhite, you need to be really careful that you
don't destroy the edges on your foreground. It is possible to use ClipRollback to
compensate for this.
USER GUIDE
452
Screen Gain | The Bias Colors in Everyday Use
Screen Gain
The screen gain controls how much of the screen color is removed to make the screen matte.
Increasing this value keys more. The figure on the left shows the Status after picking the Screen
Color.
You can clearly see that parts of the background are gray where they should be black. When
composited, you may see faint pixels from the foreground where you should be seeing pure
background. Increasing the screen gain fixes this, as shown in the figure on the right (above), but
increasing it too much destroys your good work. Like many keying parameters it’s a balance - not too
much, not too little. Increasing the screen gain too much leads to the background showing through
the foreground and edge detail can be destroyed. Below, the figure on the right shows this quite well.
Note the steering wheel is black when it should be white. If you look at the composite, you can see
the background showing through here. Also, some of the fine hair detail on the actor, visible in the
figure on the left, has been eroded in the figure on the right.
USER GUIDE
453
Screen Gain | Screen Balance
Screen Balance
The ScreenBalance is set automatically after picking the ScreenColor.
Saturation is measured by comparing the intensity of the primary component against a weighted
average of the two other components. This is where the Screen Balance control comes in. A balance
of 1 means that the saturation is measured against the smallest of the other two components in the
screen color.
A balance of 0 means that the saturation is measured against the larger of the other two components.
A balance of 0.5 measures the saturation from the average of the other two components.
The appropriate balance point for each image sequence you key is different depending on the colors
in that image. Generally speaking, blue screens tend to work best with a balance of around 0.95 and
green screens with a balance of around 0.5. These values are selected automatically the first time you
pick the screen color. If the key is not working too well with these settings, try setting the balance to
about 0.05, 0.5 and 0.95 and see what works best.
USER GUIDE
454
PreBlur and Tuning | Tuning
Tuning
Keylight creates the screen matte after the screen color has been picked. You can make fine
adjustments to this matte using the Gain controls. Increasing the gain controls makes the screen
matte more transparent by increasing the amount of screen color showing through the matte. This
tends to tint the edges the opposite of the screen color (for blue screens, edges become yellow).
Decreasing the gain makes the main matte more opaque by reducing the amount of screen color
showing through the matte.
The matte can be adjusted independently in the shadows, midtones, and highlights, giving more
control than the clipping levels.
The level of the midtones can be adjusted too. For example, if you are working on a dark shot you
may want to set the midtone level to a dark gray to make the gain controls differentiate between
tones that would otherwise all be considered shadows.
USER GUIDE
455
Screen Processing | Two-stage keying
Screen Processing
Once you have picked the screen color and got the screen matte, you may wish to process this matte
using the parameters in the Screen Matte group. The matte can be adjusted using clipping levels; it
can be eroded or grown, despotted, and softened.
Two-stage keying
Consider this example. Having applied Keylight and picked the screen color, you have good edges to
your matte but the background is showing through the foreground. You could fix this by tweaking the
Clip White, but in doing so it ruins your edges. One way round this is a two stage key (another way is
using Clip Rollback). In the first key, you process the screen matte using the clipping levels to give a
harsh black and white matte, then soften and erode it. Switch View to Intermediate Result to output
the original green screen with the eroded matte as an RGBA. Then, use this as the input to another
Keylight node. In this second node, pick the screen color to give good edges but with transparent
foreground. Don’t process this matte, instead use the input alpha channel to fix the transparent
foreground. Just set Source Alpha in the Inside Mask folder to Add To Inside Mask.
Clip Rollback
Pulling a screen matte (the figure on the left) typically produces lots of transparency (gray) in the
matte at the edges. This is good since this is what you need to key hair well. You may also get
transparency in the foreground as shown in the figure on the right. This is bad as your subject appear
slightly see-through, and this should be corrected.
USER GUIDE
456
Screen Processing | Dilate
You can do this by connecting a matte into the third (InM) input, or you can use the Clip White
parameter to turn these gray pixels white. This cleans up the foreground (the figure on the left) but it
also destroys the edge detail you want to keep. This is where Clip Rollback comes in. This is used to
put back the edges to restore the detail that was lost. A rather exaggerated clip rollback is shown in
the figure on the right to illustrate the point.
Dilate
This control should not normally be used as eroding the edges can produce a very poor key.
However, the Screen Dilate parameter allows you to grow (if greater than zero) or shrink (if less than
zero) the alpha in the Screen Matte. These controls are sub-pixel accurate.
Softness
Occasionally, it is useful to be able to blur the matte. Use Screen Softness for this. The most
common example would be to pull a very harsh matte that you would use as an inside matte further
down the tree. For this, you’d soften and erode the screen matte.
USER GUIDE
457
Screen Processing | Despot
Despot
This controls how much to simplify the matte. It coagulates similar regions so that, for example, black
specks in the white matte can be absorbed by the surrounding white areas. Increasing the Screen
Despot Black removes isolated spots of black in the white matte. Increasing Screen Despot White
removes isolated spots of white in the background up to that size.
USER GUIDE
458
Mattes | Despot
Mattes
There are 4 mattes in Keylight.
1. Screen Matte
2. Inside Mask
3. Outside Mask
4. Alpha (Composite Alpha)
The Screen Matte is generated by the Keylight algorithm after the screen color has been picked. It
can be processed (clipped, eroded, etc) by the screen matte processing tools.
The Inside Mask is the hold out matte. It is used to confirm areas that are definitely foreground. If
your subject has blue eyes and is being shot in front of a blue screen, this mask can be used to put
back the eyes. This mask is taken from the InM input to Keylight. The embedded alpha channel of the
foreground input can be added to this mask using the Source Alpha parameter in the Inside Mask
folder.
The Outside Mask is the garbage mask and is used to remove unwanted objects (lighting rigs, etc)
from the foreground. The mask is taken from the OutM input to Keylight. The luminance or the alpha
of this input is set using the OutM Component parameter.
The matte used to blend the foreground and background in the final composite is the alpha displayed
in the alpha channel of the composite. This matte is the combination of the screen matte, inside
matte, and outside matte.
USER GUIDE
459
Inside and Outside Masks | Despot
The outside mask (garbage mask) is often used to clean up screens that are not a constant color or
have lighting rigs in shot by forcing the alpha transparent.
The inside mask can be used to keep elements in the foreground that you don't want to lose (an
actor’s blue eyes in front of a blue screen). These masks should normally be softened externally to
blend into the screen matte.
The below image shows the Bezier spline drawn around the lighting rig on the left side of the screen.
USER GUIDE
460
Inside and Outside Masks | Despot
Connect the mask to the OutM input of Keylight and switch the parameter OutM Component to
Alpha. The outside mask forces that part of the image to be in the background, thus keying out the
rig.
USER GUIDE
461
Source Alpha | Despot
Source Alpha
This parameter determines what to do with any embedded alpha in the original source image. You
need this if you are doing multiple keys on different parts of the image with the View output set to
Intermediate Result.
• Ignore - this does not add any embedded alpha to the screen matte.
• Add To Inside Mask - the embedded alpha is added to the inside mask. You should select this when
multipass keying with Output View set to Intermediate Result.
• Normal - the embedded alpha is used to composite the image.
USER GUIDE
462
Color Replacement | Inside mask
Color Replacement
Remember that Keylight does two things - it removes the screen color to despill the image and
generates an alpha (Screen Matte) to composite the foreground over the background layer.
If you then process the Screen Matte, for example, by eroding the alpha or changing the clip levels,
Keylight would be removing the wrong amount of screen color from the pixels whose transparency
has now changed. The Screen Replace instructs Keylight how to deal with such pixels. The Status
displays which pixels use a replace method. Those pixels that use a replace method because the
alpha processing tools modified the transparency are green, whilst those pixels whose transparency
was modified by the inside matte are blue. See the Status View under View.
Inside mask
If the changes to the screen matte are due to an inside mask, the Inside Replace and Inside Replace
Color parameters can be used to modify the color in these areas just like the Screen Replace
parameters described above.
Edges
Built-in crop tools are included to quickly remove parts of the foreground at the edges of the image.
It can also be useful in tidying up a matte at the edges where luminance changes in the blue screen
are proving difficult to key out.
With X Method and Y Method set to Color and Edge Color, set to pure blue (for a blue screen), set
the Left to crop out the left-hand side of the image revealing the background. The figures below show
the changes to the Combined Matte with cropping.
USER GUIDE
463
Color Replacement | InM component
InM component
The component (luminance or alpha channel) of the inside mask input that is used in the calculations.
Typically, this is a garbage matte that covers the area you know to be 100% foreground.
Tip: To avoid having to roto the inside matte throughout the clip, you can connect another
Keylight node to the InM input and use it to create a hard, dilated key (set Screen Dilate to
a low value).
OutM component
The component (luminance or alpha channel) of the outside mask. Typically, this is a garbage matte
that covers the area you know to be 100% background.
USER GUIDE
464
Color Replacement | OutM component
USER GUIDE
465
Keying with Primatte
This section explains how to use the blue/green screen keyer, Primatte, in Nuke.
Quick Start
1. Connect the Primatte node to your background and foreground images. See Connecting the
Primatte Node.
2. Click on the Auto-Compute button. Primatte attempts to automatically sample the backing
screen color and perform the cleanup phases of keying with Primatte.
If you get good results, jump ahead to spill removal. See Spill Removal - Method #1.
If you don't get the results you wanted from Auto-Compute, continue to step 3.
3. Click the operation dropdown, select Smart Select BG Color, and manually sample the targeted
background color by holding Ctrl/Cmd and clicking in the Viewer.
USER GUIDE
466
Connecting the Primatte Node |
4. When you select the Primatte node, the Primatte properties panel displays.
USER GUIDE
467
Connecting the Primatte Node |
USER GUIDE
468
Primatte Basic Operation Tutorial | Auto-Compute
Auto-Compute
Primatte has a feature that attempts to eliminate the first three steps of the more standard keying
procedure. The Auto-Compute button is a good starting point and it may make your keying
operation much easier.
1. Click on the Auto-Compute button. Primatte attempts to automatically sense the backing screen
color, eliminate it, and even get rid of some of the foreground and background noise that would
normally be cleaned up in the Clean BG Noise and Clean FG Noise phases of keying with
Primatte.
2. If you get good results then jump ahead to the spill removal tools. See Spill Removal - Method #1.
3. If you don't get the results you wanted from Auto-Compute, please continue from this point on
to get the basic Primatte operation procedures. See Smart Select BG Color
The basic functionality for the Primatte interface is centered around the operation dropdown menu
and the Viewer window.
USER GUIDE
469
Primatte Basic Operation Tutorial | Auto-Compute
There are four main steps to using the Primatte and Select BG Color is the first step.
USER GUIDE
470
Smart Select BG Color | Auto-Compute
Position the cursor in the bluescreen area (or whatever background color you are using), usually
somewhere near the foreground object. Hold the Ctrl/Cmd key down and sample the targeted
background color. Release the mouse button and Primatte starts the compositing process. If the
foreground shot was done under ideal shooting conditions, Primatte has done 90-95% of the keying
in this one step and your image might look like this.
However, if you have a very unevenly lit backing screen, you may not be getting the results you’re
after. If this is the case, enable adjust lighting on the Primatte properties. For more information, see
Actions Section.
Note: Primatte works equally well with any color backing screen. It does not have to be a
specific shade of green or blue.
Tip: If you dragged the cursor in the blue area, Primatte averages the multi-pixel sample to
get a single color to adjust to. Sometimes Primatte works best when only a single pixel is
sampled instead of a range of pixels. The color selected at this point in the Primatte
operation is critical to the operation of the node from this point forward. Should you have
difficulties further along in the tutorial after selecting a range of blue shades, try the Smart
Select BG Color operation again with a single dark blue pixel or single light blue pixel. You
USER GUIDE
471
Smart Select BG Color | Auto-Compute
can also switch to the alpha channel view and click around in the bluescreen area and see
the different results you get when the initial sample is made in different areas.
Tip: If you would rather make a rectangular selection and not use the default 'snail trail'
sampling method, you can do a Ctrl+Shift+drag sample.
Tip: If the foreground image has a shadow in it that you want to keep it in the composite, do
not select any of the dark blue pixels in the shadow and the shadow comes along with the
rest of the foreground image.
The second and third steps in using Primatte require viewing the matte or alpha view in the Viewer
window. Press the A key on the keyboard to change to the alpha view. The image displayed changes
to a black and white matte view of the image that looks like this.
USER GUIDE
472
Clean BG Noise | Auto-Compute
Clean BG Noise
Set operation to Clean BG Noise. If there are any white regions in the dark, bluescreen area, it is
noise (or shades of blue that did not get picked up on the first sample) and should be removed.
Sample through these white noise regions and release the pen or mouse button to process the data
and eliminate the noise. Repeat this procedure as often as necessary to clear all the noise from the
background areas. Sometimes increasing the brightness of your monitor or the screen gamma allows
you to see noise that would otherwise be invisible.
Note: You do not need to remove every single white pixel to get good results. Most pixels
displayed as a dark color close to black in a key image become transparent and virtually
allow the background to be the final output in that area. Consequently, there is no need to
eliminate all noise in the bluescreen portions of the image. In particular, if an attempt is
made to meticulously remove noise around the foreground object, a smooth composite
image is often difficult to generate.
Tip: When clearing noise from around loose, flying hair or any background/foreground
transitional area, be careful not to select any of areas near the edge of the hair. Leave a little
noise around the hair as this can be cleaned up later using the FineTuning sliders.
USER GUIDE
473
Clean FG Noise | Auto-Compute
Clean FG Noise
If there are dark regions in the middle of the mostly white foreground object, that is, if the key is not
100% in some portion of the targeted foreground, select Clean FG Noise from the operation
dropdown menu. Use the same techniques as for Clean BG Noise, but this time sample the dark
pixels in the foreground area until that area is as white as possible.
Tip: After sampling the backing screen color and finding that the edges of the foreground
object look very good, you sometimes find that an area of the foreground object is
transparent. This is due to the foreground containing a color that is close to the backing
screen color. When this transparency is removed using the Clean FG Noise operation, the
edge of the foreground object picks up a fringe that is close to the backing screen color and
it is very hard to remove without sacrificing quality somewhere else on the image. To tackle
this problem, you can enable hybrid render. For more information, see Actions Section.
These were the steps necessary to create a clean matte or key view of the image. With this key, the
foreground can be composited onto any background image. However, if there is spill on the
foreground object from light that was reflected off the background, a final operation is necessary to
remove that background spill get a more natural looking composite.
For the fourth step in the Primatte operation, return the RGB view to the Viewer window by clicking
again on the A keyboard key. This turns off the alpha channel viewing mode; the Viewer window again
displays the RGB view with the background image (if you connected one to the Primatte node).
The sample image below has gone through the first three steps and has examples of spill. Notice the
blue fringe to her hair and a blue tint on her right cheek, arm and chest.
USER GUIDE
474
Clean FG Noise | Auto-Compute
USER GUIDE
475
Spill Removal - Method #1 | Auto-Compute
Note: All spill removal/replacement operations in Primatte can be modified using the Spill
Process replace with tools. Spill can be replaced with either the complement of the
background color, a solid color you’ve selected, or by colors brought from a defocused
background. Depending on the spill conditions, one of these options should provide the
results you are looking for. See the information in Replacing Spill for more details.
Note: Primatte's spill removal tools work on color regions. In the image in Clean FG Noise,
samples should be made on the light flesh tones, the dark flesh tones, the light blonde hair,
the dark blonde hair, and the red blouse color regions. One sample in each color region
removes spill from all similar colors in the foreground image.
If the spilled color has not been totally removed using the Spill Sponge or the result of the Spill
Sponge resulted in artifacts or false coloring, the Spill(-) tool should be used instead for a more
subtle and sophisticated removal of the spilled background color. This is discussed in Actions Section.
Tip: There are several nodes in Nuke you can use for spill removal. For example, if you are
using a greenscreen image, you can add an Expression node after your foreground image
and set the expression field for the green channel to:
g>(r+b)/2?(r+b)/2:g
Similarly, you can despill a bluescreen image by setting the expression field for the blue
channel to:
b>(r+g)/2?(r+g)/2:b
You can also use the HueCorrect node for despill. For more information, see Correcting Hue
Only.
USER GUIDE
476
Spill Removal - Method #2 | Auto-Compute
2. In the Viewer, zoom into an area that has some blue edges or spill.
3. Using the cursor, sample a color region that has some spill in it. When you let up on the pen or
mouse button, Primatte registers the color selected (or an average of multiple pixels) in the
current color swatch.
4. For most images, the L-poly (spill) slider is all that is required to remove any remaining blue spill.
Move the slider to the right to remove spill color from the sampled pixels. Move it to the left to
move the selected pixels toward the color in the original foreground image.
When using the L-poly (spill) slider, spill color replacement is replaced based on the setting of the
Spill Process replacement with control. For more information on these tools, see the section of
this chapter on Replacing Spill .
Tip: It is better to make several small adjustments to the blue spill areas than a single major
one.
5. You can use the other two sliders in the same way for different key adjustments. The S-poly
(detail) slider controls the matte softness for the color which is closest to the background color.
For example, you can recover lost smoke in the foreground by selecting the Fine Tuning Sliders
action, sampling the area of the image where the smoke just starts to disappear and moving the
S-poly (detail) slider to the left. The M-poly (trans) slider controls the matte softness for the color
which is closest to the foreground color. For example, if you have thick and opaque smoke in the
foreground, you can make it semi-transparent by moving the Transparency slider to the right
after selecting the pixels in the Fine Tuning Sliders mode.
Tip: If the foreground image changed color dramatically during the fine tuning process, you
can recover the original color by selecting an area of the off-color foreground image and
moving the L-poly (spill) slider slightly to the left. This may introduce spill back into that
color region. Again, use the Fine Tuning Sliders option to suppress the spill, but make
smaller adjustments this time.
USER GUIDE
477
Spill Removal - Method #3 | Auto-Compute
Note: The Matte(+) operation also works to solve this problem. For more information, see
Sampling Tools.
USER GUIDE
478
Sampling Tools | The Spill Sampling Tools
Sampling Tools
Primatte’s spill, matte, and detail sampling tools allow you to make fine adjustments to balance
between these aspects of your composite. You can find these tools in the operation dropdown menu
in the Primatte properties panel.
1. Select the Spill(-) sampling tool from the operation dropdown menu.
2. In the Viewer, zoom into an area that has some blue edges.
3. Click on a pixel with some spill on it.
4. Repeated clicking incrementally removes the spill. Continue this operation until you reach a
desired result.
5. To add spill, select the Spill(+) tool and repeat steps from 2 to 4.
USER GUIDE
479
Sampling Tools | The Detail Sampling Tools
USER GUIDE
480
Replacing Spill | The Detail Sampling Tools
Replacing Spill
The proper processing of spill on foreground objects is one of the many useful features of Primatte.
You can move between four modes to see how they affect the image clip you are working with. Under
Spill Process, in the replace with dropdown menu, you can select the following options:
• no suppression - In this mode, no suppression is applied.
• complement - This is the default spill replacement mode. This mode maintains fine foreground
detail and delivers the best quality results. If foreground spill is not a major problem, this mode is
the one that should be used. The complement mode is sensitive to foreground spill. If the spill
intensity on the foreground image is rather significant, this mode may often introduce serious noise
in the resulting composite.
On the negative side, when using the solid color mode, fine detail on the foreground edge tends to
be lost. The single palette color sometimes cannot make a good color tone if the background image
has some high contrast color areas.
USER GUIDE
481
Replacing Spill | The Detail Sampling Tools
• defocused background - The defocused background mode uses a defocused copy of the
background image to determine the spill replacement colors instead of a solid palette color or just
the complement color. This mode can result in good color tone on the foreground object even with
a high contrast background. As in the example below, spill can even be removed from frosted glass
using this feature and still retain the translucency.
On the negative side, the defocused background mode sometimes results in the fine edge detail of
the foreground objects getting lost. Another problem could occur if you wanted to later change the
size of the foreground image against the background. Since the background/foreground alignment
would change, the applied color tone from the defocused image might not match the new
alignment.
USER GUIDE
482
Primatte Controls | Initialize Section
Primatte Controls
On the Primatte properties panel, you can further adjust several controls.
Initialize Section
In the Initialize section, you can select which algorithm Primatte uses to calculate your keying result:
USER GUIDE
483
Primatte Controls | Initialize Section
passive feature that has no adjustment capabilities, but it may prove useful in evaluating an image
as you operate on it. See Primatte Viewer Tools.
When you select viewer, you are presented with a window that may look similar to one of these
images (depending on which Primatte algorithm you have selected).
Primatte RT algorithm.
The different algorithms are described in more detail in a later section of this chapter, see The
Primatte Algorithm . For a description of the Primatte viewer tools, see Primatte Viewer Tools.
USER GUIDE
484
Primatte Viewer Tools | Initialize Section
At the top of the Primatte Viewer window, there are also three areas that you can click on:
• Clicking and dragging on the blue center area allows you to move the window around on the screen.
• Clicking and dragging on the triangular white region in the upper right corner allows you to scale the
Primatte Viewer window.
• Clicking on the square white region in the upper left of the window displays a dropdown menu that
looks like this:
Note: A selected feature has a solid yellow square next to it. An unselected feature has a
hollow yellow square next to it.
• Minimize - This feature, when selected, makes the Primatte Viewer window disappear. Only the blue
title bar at the top of the window remains.
• Large Surface - This feature, when selected, displays the large Primatte polyhedron in the Viewer
window.
• Middle Surface - This feature, when selected, displays the medium Primatte polyhedron in the
Viewer window.
USER GUIDE
485
Primatte Viewer Tools | Initialize Section
• Small Surface - This feature, when selected, displays the small Primatte polyhedron in the Viewer
window.
• Opaque - This feature, when selected, makes the selected polyhedrons opaque. De-selecting it
makes them semi-transparent.
• Samples - This feature, when selected, allows you to sample color regions on the image window
using the 3D Sample operation mode and see where those regions are in relation to the
polyhedron and the algorithm. The colors are displayed as a spray of pixels in the color selected.
This button only allows you to see or hide the sampled colors.
Note: The 3DSample mode must be selected in the operation dropdown menu for this
feature to work.
• Clear BG - This feature changes the background color of the Primatte Viewer window from black
(when unselected) to transparent (when selected).
• Sliced - This feature, when selected, slices open the large and medium polyhedrons so that the
inner polygons can be seen. When unselected, the largest polyhedron selected becomes a
completely closed polyhedron and you might not be able see the inner polyhedrons (unless the
Opaque feature is deselected).
• Wireframe - This feature, when selected, changes the polyhedrons from shaded-surface objects to
wireframe objects.
• Quad view - This feature, when selected, displays the different polyhedrons in different parts of the
Primatte Viewer:
• The upper left corner of the Viewer shows the medium polyhedron.
• The upper right corner of the Viewer shows the small polyhedron.
• The lower left corner of the Viewer shows the large polyhedron as a wireframe object.
• The lower right corner of the Viewer shows the large polyhedron.
USER GUIDE
486
Degrain Section | Degrain type
Degrain Section
The Degrain tools are used when a foreground image is highly compromised by film grain. As a
result of the grain, when backing screen noise is completely removed, the edges of the foreground
object often become harsh and jagged leading to a poor key. These tools were created to, hopefully,
help when a compositing artist is faced with a grainy image.
Degrain type
The Degrain type dropdown menu gives you a range of grain removal from none to large. If the
foreground image has a large amount of film grain induced pixel noise, you may lose a good edge to
the foreground object when trying to clean all the grain noise with the Clean BG Noise operation
mode. These tools allow you to clean up the grain noise without affecting the quality of the key. A
short tutorial explaining when and how to use these tools is at the end of this section. Select:
• none - When none is selected, you get the color of the exact pixel sampled. This is the default
mode.
• small - When small is selected, you get the average color of a small region of the area around the
sampled pixel. This should be used when the grain is very dense.
• medium - When medium is selected, you get the average color of a medium-sized region of the
area around the sampled pixel. This should be used when the grain is less dense.
• large - When large is selected, you get the average color of a larger region of the area around the
sampled pixel. This should be used when the grain is very loose.
• tolerance slider - Adjusting the tolerance slider should increase the effect of the Clean BG Noise
tool without changing the edge of the foreground object.
USER GUIDE
487
Degrain Section | Degrain Tools Tutorial
You can use the Clean BG Noise operation to remove the noisy pixels, but this can also modify the
edge of the foreground object in a negative manner.
Using the Degrain tools in the following way may help you clean up the image and still get a good
edge on the matte:
1. Use the Clean BG Noise operation just a small amount to remove some of the white noise in the
alpha channel view but do use it so much that you affect the edge of the foreground object.
2. Then set the Degrain type dropdown menu to small as a first step to reduce the grain:
USER GUIDE
488
Degrain Section | Degrain Tools Tutorial
With the degrain tolerance slider set at 0, move it around some. This should increase the affect
of the Clean BG Noise tool without changing the edge of the foreground object.
Sometimes, this may not be enough to totally remove the grain, so by adjusting the degrain
tolerance slider, you can tell the Primatte algorithm what brightness of pixels you think
represents grain. You should try not to use too high of a value; otherwise, it affects the overall
matte. For an example of an over-adjusted image, see below.
The Primatte degrain algorithm uses a defocused foreground image to compute the noise.
Note: The small, medium and large settings for the degrain tools all produce defocused
foregrounds that have larger or smaller blurs respectively.
Note: It is important to make sure that the crop settings are correctly applied; otherwise,
when the defocus image is generated, if there is garbage on the edges of the images, then
that garbage is blurred into the defocused foreground.
As a review:
1. Select the Select BG Color operation mode and click on a backing screen color.
USER GUIDE
489
Degrain Section | Degrain Tools Tutorial
2. Select the Clean BG Noise operation mode and use it sparingly so that it has minimum affect to
the edge of the foreground object.
3. If there is still grain in the backing screen area, then use the Degrain type functionality starting at
the small setting to reduce the grain.
4. If the grain is still present, then try increasing the tolerance slider a little - not too much.
5. If grain is still a problem, then try changing the type to medium or large and also changing the
grain tolerance until the desired effect is achieved.
Note: The grain functionality does not always remove grain perfectly, but is sometimes
useful to minimize its effects.
USER GUIDE
490
Actions Section | Smart Select BG Color
Actions Section
In the operations dropdown menu, you can select from the following options:
For keying operations, this is the first step and should be followed by the steps described
immediately below.
Clean BG Noise
When you select this operational mode, you sample pixels in the Viewer known to be 100%
background. White noisy areas in the 100% background region become black. This is usually the
second step in using Primatte.
Clean FG Noise
When you select this operational mode, you sample pixels on the image window known to be 100%
foreground. The color of the sampled pixels is registered by Primatte to be the same color as in the
original foreground image. This makes dark gray areas in the 100% foreground region white. This is
usually the third step in using Primatte.
Matte Sponge
When this operational mode is selected, the color sampled in the Viewer becomes 100% foreground.
However, if the sampled color is already keyed out and removed, it leaves the current suppressed
color. It only affects the key or matte information. This tool is usually used to quickly remove stray
transparent pixels that have appeared during the chromakeying procedure. It is a quick and easy way
to make final adjustments to a composite.
USER GUIDE
491
Actions Section | Make FG Trans
Make FG Trans
When this mode is selected, the opaque foreground color region sampled in the Viewer becomes
slightly translucent. This operation is useful for the subtle tuning of foreground objects which are
otherwise 100% covered with smoke or clouds. It can only be used one time on a particular color. For
a more flexible way to thin out a color region and be able to make multiple samples, you should use
the Matte (-) tool. It expands the medium polyhedron slightly.
Restore Detail
With this mode selected, the completely transparent background region sampled in the Viewer
becomes translucent. This operation is useful for restoring lost hair details, thin wisps of smoke and
the like. It shrinks the small polyhedron slightly.
Spill Sponge
When you select this operational mode, the background color component in the sampled pixels (or
spill) within the image window is keyed out and removed for the color region selected. This operation
can only be used once on a particular color and the amount of spill suppression applied is not
adjustable. It is the fastest way to remove spill from a composite image. For more accurate spill
suppression, a Fine Tuning or Spill (+) operation should follow or be used instead. This can usually
be the fourth (and final) step in using Primatte unless additional adjustments are necessary.
Spill (-)
When this operational mode is selected, color spill is removed from the sampled pixel color (and all
colors like it) in the amount of one Primatte increment. If spill color remains, another click using this
tool removes more of the color spill. Continue using this tool until all color spill has been removed
from the sampled color region. This tool expands the Primatte large polyhedron in the color region
sampled.
Spill (+)
When this operational mode is selected, color spill is returned to the sampled pixel color (and all
colors like it) in the amount of one Primatte increment. This tool can be used to move the sampled
color more in the direction of the color in the original foreground image. It can be used to nullify a
Spill (-) step. This tool dents the Primatte large polyhedron in the color region sampled.
USER GUIDE
492
Actions Section | Matte (-)
Matte (-)
When this operational mode is selected, the matte is made more translucent for the sampled pixel
color (and all colors like it) in the amount of one Primatte increment. If the matte is still too opaque,
another click using this operational mode tool makes the sampled color region even more
translucent. This can be used to thin out smoke or make a shadow thinner to match shadows in the
background imagery. This tool expands the Primatte medium polyhedron in the color region
sampled.
Matte (+)
When this operational mode is selected, the matte is made more opaque for the sampled pixel color
(and all colors like it) in the amount of one Primatte increment. If the matte is still too translucent or
thin, another click using this operational mode tool makes the sampled color region even more
opaque. This can be used to thicken smoke or make a shadow darker to match shadows in the
background imagery. It can only make these adjustments to the density of the color region on the
original foreground image. It can be used to nullify a Matte (-) step. This tool dents the Primatte
medium polyhedron in the color region sampled.
Detail (-)
When this operational mode is selected, foreground detail becomes more visible for the sampled
pixel color (and all colors like it) in the amount of one Primatte increment. If detail is still missing,
another click using this operational mode tool makes detail more visible. This can be used to restore
lost smoke or wisps of hair. Sample where the smoke or hair just disappears and it returns to
visibility. This is for restoring color regions that were moved into the 100% background region. It may
start to bring in background noise if shooting conditions were not ideal on the foreground image.
This tool dents the Primatte small polyhedron in the color region sampled.
Detail (+)
When this operational mode is selected, foreground detail becomes less visible for the sampled pixel
color (and all colors like it) in the amount of one Primatte increment. If there is still too much detail,
another click using this operational mode tool makes more of it disappear. This can be used to
remove smoke or wisps of hair from the composite. Sample where detail is visible and it disappears.
This is for moving color regions into the 100% background region. It can be used to nullify a Detail (-)
step. This tool expands the Primatte small polyhedron in the color region sampled.
USER GUIDE
493
Actions Section | Fine Tuning Sliders
3D Sample
When this operational mode is selected and viewer is enabled in the Primatte properties, the
sampled colors are displayed as a spray of white pixels in the Primatte Viewer. This allows you to see
where the selected backing screen colors reside within the 3D RGB colorspace.
Adjust Lighting
This enables Primatte’s light adjusting feature, which, based on the currently selected BG color,
generates a clean, evenly lit backing screen to use in the keying operation. This can improve the
results if you have a very unevenly lit backing screen. For more information, see Adjust Lighting.
USER GUIDE
494
Actions Section | Hybrid Render
Hybrid Render
To tackle this problem, you can enable hybrid render to have Primatte create two keys internally and
combine them for the best results. For more information, see Hybrid Matte.
USER GUIDE
495
Adjust Lighting | Hybrid Render
Adjust Lighting
When adjust lighting is enabled, Primatte first creates a grid on the foreground image and samples
the grid to determine which squares contain foreground information and which contain some shade
of the background color. Using the remaining shades of blue, it uses extrapolations of the existing
backing screen colors, and then uses this technique to fill in the area previously covered by the
foreground object. This results in a clean backing screen that has no foreground object (to see this,
you can set output mode to adjust lighting BG). Primatte uses this clean backing screen as the
reference data to process the original foreground image to generate light-adjusted foreground that
has a much more even shade of blue with the foreground object (this is displayed if you set output
mode to adjust lighting FG). This allows Primatte to perform the keying operation using the light-
adjusted foreground, resulting in a clean key around all areas on the foreground object.
The default settings under Adjust Lighting should detect all the areas of the grid that contain
foreground pixels and deliver a smooth, artificially created, optimized backing screen for the keying.
Should it fail to do this, you can adjust the settings of the algorithm by moving the threshold slider.
This determines if a grid pixel should be treated as a pure background sample, a simulated
background sample, or a foreground sample. Increasing the threshold value brings more of the
foreground into the adjusted lighting.
If necessary, you can also set the grid size used in the adjust lighting algorithm. Increasing this value
increases the grid resolution used in the adjusted lighting calculation.
USER GUIDE
496
Hybrid Matte | Hybrid Render
Hybrid Matte
After sampling the backing screen color and finding that the edges of the foreground object look very
good, you sometimes find that an area of the foreground object is transparent. This is due to the
foreground containing a color that is close to the backing screen color. When this transparency is
removed using the Clean FG Noise operation, the edge of the foreground object picks up a fringe
that is close to the backing screen color. This is very hard to remove without sacrificing quality
somewhere else on the image.
When hybrid render mode is enabled, Primatte internally creates two keys from the same image:
• core - This matte has the transparency removed, but suffers from the bad edges on the foreground
object.
• edge - This matte has a clean edge on the foreground, but suffers from transparency within the
foreground object.
The core matte with the bad edges is then blurred and eroded before it is composited over the edge
matte that has the transparency, resulting in a composite with the best of both options.
The controls under Hybrid Matte allow you to adjust the operations performed on the core matte:
• erode - Adjust the amount of erosion performed on the core matte. To view the results, set output
mode to hybrid core and view the alpha channel.
• blur radius - Adjust the blur radius used when blurring the core matte. To view the results, set
output mode to hybrid edge and view the alpha channel.
USER GUIDE
497
Fine Tuning | Spill or L-poly slider (Spill Removal)
Fine Tuning
When the Fine Tuning Sliders operational mode is selected, the color of the sampled pixel within the
Viewer window is registered as a reference color for fine tuning. It is displayed in the current color
chip in the Actions section. To perform the tuning operation, sample a color region on the image,
select a Fine Tuning slider and move the slider to achieve the desired effect. See the Fine Tuning
Sliders tool descriptions further on in this section for more details on slider selection.
USER GUIDE
498
Fine Tuning | Detail or S-poly slider (Add/Restore Lost Detail)
less visible. If moving the slider all the way to the right does not make the color region visible enough,
re-sample the color region and again move the slider to the left. These slider operations are additive.
This result achieved by moving the slider to the left can also be achieved by clicking on the color
region using the Detail(-) operational mode. This shrinks the small polyhedron (which contains all the
blue or green background colors) and releases pixels that were close to the background color. The S-
poly slider in the Fine Tuning mode is useful for restoring pixels that were lost because they were so
similar to the background color. This slider dents the Primatte small polyhedron near the registered
color region.
USER GUIDE
499
Spill Process Section | Replace with
Replace with
This allows you to select between the three methods of spill replacement:
• no suppression - No spill suppression is applied.
• complement - Replaces the spill color with the complement of the backing screen color.
• solid color - Replaces the spill color with a solid color of your choice.
• defocused background - Replaces the spill color with colors from a defocused version of the
background image.
Defocus slider
When defocused background is selected, this area allows you to adjust the amount of defocus
applied to the background buffer image.
USER GUIDE
500
Output Section | Defocus slider
Output Section
These are the formats for the output of the node (output mode):
• composite - outputs the composite result of the Primatte node, along with the calculated matte.
• premultiplied - outputs the premultiplied result of the Primatte node, along with the calculated
matte.
This can be useful if you want to do your compositing using a Merge node (with operation set to
over) rather than Primatte. This allows you to color correct, transform, and otherwise process your
image before compositing it over the background. Note, however, that Primatte works within the
sRGB colorspace, whereas Nuke works within a linear colorspace. This means you need to add a
Colorspace node after both Primatte and your original background image to convert their
colorspaces to sRGB, then do your color corrections or transforms, merge the images together, and,
finally, use another Colorspace node to convert the result back to linear.
USER GUIDE
501
Output Section | Defocus slider
• unpremultiplied - outputs the unpremultiplied result of the Primatte node, along with the
calculated matte.
This can be useful if you want to do your compositing using a Merge node (with operation set to
matte) rather than Primatte. This allows you to color correct, transform, and otherwise process
your image before compositing it over the background. Note, however, that Primatte works within
the sRGB colorspace, whereas Nuke works within a linear colorspace. This means you need to add a
Colorspace node after both Primatte and your original background image to convert their
colorspaces to sRGB, then do your color corrections or transforms, merge the images together, and,
finally, use another Colorspace node to convert the result back to linear.
• not premultiplied - outputs the unpremultiplied original foreground (rather than the result of the
Primatte node), along with the calculated matte.
• adjust lighting FG - outputs the light-adjusted foreground that the adjust lighting mode creates
(this has a more even shade of the backing color with the foreground object). If adjust lighting is
disabled, this option simply displays the un-optimized, original foreground image. For more
information, see Actions Section.
USER GUIDE
502
Output Section | Defocus slider
• adjust lighting BG - outputs the optimized artificial backing screen that the adjust lighting mode
creates (a clean backing screen that has no foreground object). For more information, see Actions
Section.
• hybrid core - outputs the internally generated core matte, used when hybrid render is enabled.
For more information, see Actions Section.
• hybrid edge - outputs the internally generated edge matte, used when hybrid render is enabled.
For more information, see Actions Section.
USER GUIDE
503
The Primatte Algorithm | Defocus slider
For a description of the Primatte algorithm, see Explanation of How Primatte Works.
For a description of the Primatte RT+ algorithm, see Explanation of How Primatte RT+ works.
For a description of the Primatte RT algorithm see Explanation of How Primatte RT works.
USER GUIDE
504
Explanation of How Primatte Works | Defocus slider
Primatte works in 3D RGB color space. Here is a visual representation of the Primatte algorithm after
an image has been processed.
By operating the Primatte interface, you essentially create three concentric, multi-faceted
polyhedrons. These can be pictured as three globes (or polyhedrons or polys), one within the other,
which share a common center point. The creation of these polyhedrons separates all possible
foreground colors into one of four regions; inside the small polyhedron (1), between the small and
medium polyhedrons (2), between the medium and the large polyhedrons (3) and outside the large
polyhedron (4).
USER GUIDE
505
Explanation of How Primatte Works | Defocus slider
Region 1 (inside the small polyhedron) - This region contains all of the foreground image colors that
are considered 100% background. These are the green or blue or whatever colors that were used as
the backing color of the foreground image.
Region 2 (between the small and medium polyhedrons) - This region contains all the foreground
colors that are at the edges of the foreground object(s), in glass, glass reflections, shadows, sheets of
water and other transparent and semi-transparent color regions. These color regions also have spill
suppression applied to them to remove color spill from the backing screen.
Region 3 (between the medium and large polyhedrons) - This region contains all the foreground
image colors that are 100% foreground but have spill suppression applied to them to remove color
spill from the backing screen. Otherwise they are 100% solid foreground colors.
USER GUIDE
506
Explanation of How Primatte Works | Defocus slider
Region 4 (outside the large polyhedron) - This region contains all the 100% foreground image colors
that are not modified from the original foreground image. There is no spill suppression applied to
these colors.
In the first step in using Primatte (Smart Select BG Color), you are asked to indicate the backing color
on the original foreground image. The sample should usually be taken from a medium shaded area
near the foreground object. By medium shaded area, it is meant that if green is the backing color and
the green area of the foreground image has many shades of green ranging from very pale green to
almost black, a shade of green in-between these extreme ranges should be chosen. If you’re not
getting good results using this sample, you should reset Primatte and take another sample using a
slightly darker or lighter shade of green. The first sample of Primatte often determines the final result
as the center point of all three polyhedrons is created based on this first sample.
A single pixel may be selected or a range of pixels (snail trail or rectangular sample). If a range of
pixels is taken, the sample is averaged to get a single color sample. This single pixel or averaged color
sample then becomes the center of the small polyhedron. A few other shades around that color are
included in the original small polyhedron.
USER GUIDE
507
Explanation of How Primatte Works | Defocus slider
Note: It is recommended that a single pixel be selected as the first sample as you then have
some idea where the center point of the polyhedrons is located. If a box sample or a long
snail trail sample is made, you can only guess at the average color that ends up being the
center point. You can get an idea how this sample affects the algorithm by resetting the
Primatte node, viewing the alpha channel, and clicking around on the green or blue screen
area while in the Smart Select BG Color operation mode. You can immediately see the
results of the initial settings of the polyhedrons in this way.
The second step in using Primatte is to clean up the backing color area by adding additional shades
of green or blue to the small poly. This second step (Clean BG Noise) is usually executed while
viewing the black and white alpha channel.
While in the Clean Bg Noise sampling mode, you sample the white milky regions as shown in the
left-hand image above. As you sample these regions, they turn to black as shown in the right-hand
image above.
What is happening in the Primatte algorithm is that these new shades of green (the white milky areas)
are added to the small poly where all the shades of green or blue are moved. The advantage of this
technique is that the polyhedron distorts to enclose only the shades of green that are in the backing
screen. Other shades of green around these colors are left undisturbed in the foreground.
Now that you have created a small polyhedron, you need to shape the medium and large polys. A
default medium and large poly are both automatically created and are then modified based on the
next couple of Primatte operations. The third Primatte step (Clean FG Noise) is to sample and
eliminate gray areas in the 100% foreground area of the image.
USER GUIDE
508
Explanation of How Primatte Works | Defocus slider
Again, you make several samples on the dark, grayish areas on the foreground object until it is solid
white in color. Primatte is shaping the large polyhedron with each color region that is sampled. Care
should be taken in both this and the previous steps to not sample too close to the edges of the
foreground object. Getting too close to the foreground object's edges results in hard edges around
the foreground object. Primatte uses these samples to modify and shape the medium and large polys
to the desired shape. At this point, the matte or key has been created and would allow the foreground
objects to be composited into a new background image.
If you now view the RGB channels, there is usually color spill on the edges (and sometimes the center)
of the foreground objects. When on the edges of the foreground object, this spill comes from where
the edges of the foreground object blended into the backing color. If it is on the center of the
foreground object, it usually results from reflected color from the backing screen. The next Primatte
step, either Spill Sponge, Fine Tuning or Spill(-), can now be used to eliminate this spill color.
Let's take a look at what is happening in the Primatte algorithm while this next step is performed.
Here is what the various tools in Primatte do to the Polyhedrons when they are used:
USER GUIDE
509
Explanation of How Primatte Works | Defocus slider
As you can see above, the Spill Sponge bulges the large polyhedron in the color region specified. A
color region is specified by clicking on the image in a particular area with spill present. For example,
if you click on some spill on the cheek of a foreground person, Primatte goes to the section of the
large polyhedron closest to that particular flesh tone and bulges the polyhedron there. As a result, the
flesh tones move from outside the large poly to in-between the medium and large polys. This is
Region 3 and, if you remember, is 100% foreground with spill suppression. As a result of the
suppression, the spill is removed from that cheek color and all other shades of that color on the
foreground. You would then continue to sample areas of the image where spill exists and each
sample would remove spill from another color region.
When all spill has been removed, you should have a final composite. As a last step, you should view
the alpha channel and make sure that gray, transparent areas have not appeared in the foreground
area. If there are any, you should select the Matte Sponge operation mode and sample those gray
pixels until they have all turned white again.
The Matte Sponge and Spill Sponge tools bulge or dent the polyhedrons a pre-selected amount. If
the desired results are not achieved or the results are too extreme for the image, a manual method
can be applied. You should select the Fine Tuning sliders, select a color region of interest and then
move the appropriate slider to get the desired results.
For example, to remove spill, select a region of the composite image with spill on it. Move the spill or
large poly slider to the right a little bit, the large poly bulges and the spill should disappear. Move it a
little more, if necessary. Moving this slider to the right removes spill (moves the colors from outside
USER GUIDE
510
Explanation of How Primatte Works | Defocus slider
the large poly to between the medium and large polyhedrons) and moving it to the left, dents the
large poly and moves that color region to outside the large poly.
If you sample a foreground object shadow and then move the M-poly (trans) slider to the right, the
shadow becomes more transparent. This is useful for matching composited shadows to shadows on
the plate photography. It can also be used to make clouds or smoke more transparent.
If some foreground detail disappears during the composite, you can select where the detail should be
and then move the S-poly (detail) slider to the left. This dents the small poly in that color region and
releases the detail pixels from the small poly into the visible region between the small and medium
polyhedrons.
The Spill Sponge and Matte Sponge tools are shortcut tools that automatically move the sliders a
pre-selected amount as a timesaving step for you. Other shortcut tools include the Make FG Trans.
tool and the Restore Detail tool.
These shortcut tools are one-step operations where you click on a color region of interest and
Primatte performs a pre-calculated operation. Hopefully, most operations using Primatte would only
require these tools, but the manual operation of the sliders is always an option.
The Spill(-) tool bulges the large poly a small amount incrementally in the color region that is clicked
on and the Spill(+) tool dents it a small amount with each click. The Matte(-) and Matte(+) tools do
the same to the medium poly and the Detail(-) and Detail(+) do it to the small poly.
USER GUIDE
511
Explanation of How Primatte Works | Explanation of How Primatte RT+ works
Here is what a visual representation of the Primatte RT algorithm looks like after an image has been
processed:
Here is what a visual representation of the Primatte RT algorithm looks like after an image has been
processed:
USER GUIDE
512
Explanation of How Primatte Works | Explanation of How Primatte RT works
USER GUIDE
513
Contact Details | Main Office
Contact Details
Here are the contact details for the Photron main office and Primatte office.
Main Office
Photron USA, Inc., 9520 Padgett Street, Suite 110, San Diego, CA 92126, USA
Primatte Office
Photron USA, Inc., 3113 Woodleigh Lane, Cameron Park, CA 95682. Phone: 1-530-677-9980, FAX: 1-
530-677-9981, Cell: 1-530-613-3212, E-mail: sgross@photron.com, Website: http://primatte.com
Proprietary Notices
Primatte is distributed and licensed by Photron USA, Inc., San Diego, CA, USA. Primatte was
developed by IMAGICA Corp., Tokyo, Japan. Primatte is a trademark of IMAGICA Co IMAGICA Digix
Inc., Tokyo, Japan.
USER GUIDE
514
Keying with Ultimatte
This section explains how to use the blue/green screen keyer, Ultimatte, in Nuke.
USER GUIDE
515
Connecting the Ultimatte Node | To use the Ultimatte inputs
USER GUIDE
516
Sampling the Screen Color | Adjusting the Controls on Ultimatte Tab
USER GUIDE
517
Using Overlay Tools and Screen Correct | Adjusting the Controls on Ultimatte Tab
Although this technique gives great results by differentiating between foreground elements and
backing flaws, you often haven’t got the necessary reference materials. In that case, you can create a
synthetic Clean Plate with Ultimatte.
To achieve the best results, use a reference Clean Plate as an input to Ultimatte in addition to
allowing Ultimatte to generate a synthetic plate. In this way, the reference plate allows for the best
shadow separation, while the synthetic plate is used to reduce artifacts such as film grain or video
noise (which is rarely accurately reproduced when the clean plate is shot during the time of principal
photography). Switch the view to screen by clicking the overlay dropdown menu and selecting
screen.
With screen correct selected, use the add overlay tool to scrub on areas that represent the green
screen, including shadows. Usually, it’s best to press Alt+Ctrl/Cmd while scrubbing, so that you are
picking the color in the input image at that pixel, instead of the color of the processed image.
The overlay is used in the final process to fully eliminate these areas from the final composite.
Continue in this manner until the foreground subject and its shadows are surrounded with an
overlay. Make sure the overlay does not cover any foreground detail that is to be retained. If the
overlay does cover foreground subject matter, then use the remove overlay tool to scrub on those
areas that should not be covered by the overlay. Repeat these two processes until the overlay covers
the green screen areas and no subject matter. View the composite in the Viewer to see the screen-
corrected composite with anomalies in the backing area removed. To learn which controls were
automatically set by Ultimatte, click the Screen Correct tab and note the position of the controls.
Note: When scrubbing on the image using add overlay, the RGB value of the points
selected are accumulated in a keep list and removeoverlay points are accumulated in a
drop list. If both lists have equivalent values, a conflict may occur, resulting in no visible
change in the overlay. If a conflict occurs, try using Undo (Ctrl/Cmd+X) which flushes the last
USER GUIDE
518
Using Overlay Tools and Screen Correct | Adjusting overlay controls
set of points added to the appropriate list. If that doesn’t help, you can also press the Reset
button on the ScreenCorrect tab to clear the lists and start over.
Under some circumstances, it may be difficult to completely cover the screen area with the overlay.
This does not mean that the screen cannot be removed in that area, but that other controls may need
to be adjusted to help reduce anomalies in those areas that were not covered by the overlay. It may
be advantageous to resample the screen using the Screen tool above the Viewer in the area where
covering the screen with the overlay is unsuccessful, but be careful about selecting in shadow areas if
the final composite requires the retention of shadows.
Additionally, it may be difficult in some circumstances to remove the overlay from very dark areas of
foreground detail that may be close to values in dark or shadow areas of the screen. If the overlay
does include some dark foreground areas, these areas may be recovered by enabling the Shadows
controls.
Note: Since Ultimatte produces a synthetic clean plate using an interpolation process, it is
important to exclude non-video areas of the image, such as the black blanking lines that
may appear in video or the black areas in letterbox images. You can use other nodes, such
as Crop, to exclude these areas from the overlay and final composites. Otherwise the
synthetic clean plate may contain black (or other colors) which can result in an inaccurate
clean plate being generated.
USER GUIDE
519
Using Overlay Tools and Screen Correct | Adjusting the screen correct controls
• overlay color - use this to change the color of the overlay. You can adjust the alpha channel to
modify the opacity of the overlay.
USER GUIDE
520
Adjusting the Density of the Matte | Adjusting Density controls
Note: If there are sections of the matte which should be opaque but are exhibiting gray
values that don’t look like typical transparency, then there is a chance that there is a
remainder of overlay in this area. If overlay exists on subject matter, return the Overlay
dropdown menu to Screen and use the removeoverlay tool to scrub on that area. Check
on show image as monochrome on the Ultimatte tab to aid in determining the extent of
the overlay.
USER GUIDE
521
Adjusting Spill Controls | Adjusting Density controls
Tip: There are several nodes in Nuke you can use for spill removal. For example, if you are
using a greenscreen image, you can add an Expression node after your foreground image
and set the expression field for the green channel to:
g>(r+b)/2?(r+b)/2:g
Similarly, you can despill a bluescreen image by setting the expression field for the blue
channel to:
b>(r+g)/2?(r+g)/2:b
USER GUIDE
522
Adjusting Spill Controls | Adjusting Density controls
You can also use the HueCorrect node for despill. For more information, see Correcting Hue
Only.
USER GUIDE
523
Retaining Shadows and Removing Noise | Adjusting Shadows controls
If unwanted shadows remain, then use the remove noise dropper to reduce or eliminate those
shadows. If the area that you scrub does not reside under the overlay, then erasing adjusts the
appropriate Cleanup controls to reduce anomalies in the screen area. This might result in losing
some fine detail. Repeat using these two tools until the shadows you want are retained and any
shadows or noise you don’t want to keep are removed.
The density, sharpness, and tint of the shadow may be altered by manually adjusting the controls in
Shadow controls. To learn which controls were automatically set by Ultimatte, click the Shadow
and/or Cleanup tab in the properties panel and note the position of the controls.
USER GUIDE
524
Retaining Shadows and Removing Noise | Adjusting Cleanup controls
• cleanup - Use this control to reduce imperfections or small amounts of noise in the backing. Note
that adjusting this control too far results in a "cut and paste" look with a hard, unnatural edge.
Background noise (as well as some foreground detail) is reduced. An alternative method for dealing
with green screen imperfections is to use the Screen correct controls.
• shrink - Use this control to choke or reduce the size of the cleaned-up matte.
• blur - Use this control to soften the cleaned-up matte.
• recover - Use this control to set a threshold below which the Cleanup control does not have
influence.
USER GUIDE
525
Adjusting Color Controls | Adjusting Cleanup controls
USER GUIDE
526
Adjusting Film Controls | Adjusting Cleanup controls
Due to the nature of film’s emulsion layers, a phenomenon know as cyan undercutting exists that
reveals itself as a smeared red edge in areas of sharp transitions, which can best be seen by viewing
the individual RGB channels of a film image. Normally, this phenomenon is not a problem until
bluescreen compositing techniques are applied. Since the red emulsion layer tracks at a slower rate
than the blue and green emulsion layers, the artificial red edge it produces are retained as
foreground detail resulting in an unacceptable composite.
• transparency - Use this control to adjust the amount of Film Correction in partially transparent
foreground objects (such as hair detail).
• correction - Use this control to adjust the amount of correction in the individual RGB channels of
the foreground image.
• strength - Use this control to adjust the overall amount of Film Correction that is applied to the
foreground image.
• shrink - Use this control to shrink the subject overlay.
• brights - Use this control to include or eliminate bright areas from the subject overlay.
• darks - Use this control to include or eliminate dark areas from the subject overlay.
USER GUIDE
527
Choosing an Output Mode | Adjusting Cleanup controls
USER GUIDE
528
Using RotoPaint
Nuke features a vector-based RotoPaint node for help with tasks like rotoscoping, rig removal,
garbage matting, and dustbusting. You can draw Bezier and B-Spline shapes with individual and layer
group attributes, including per-point and global feather, motion blur, blending modes and individual
or hierarchical 2D transformations. This chapter gives full instructions on its usage.
Roto or RotoPaint?
There are two similar nodes in Nuke for rotoscoping, Roto and RotoPaint. The main difference
between these two is that you can only create and edit Bezier and B-spline shapes with Roto, while
RotoPaint allows you to draw paint strokes too with various brushes. So the Roto node is an optimal
choice if you’re doing rotoscoping only, whereas RotoPaint gives you a broader scale of tools to use.
All tools and controls in the Roto node work the same way as they do in RotoPaint, so you can learn
about using them in the RotoPaint instructions in this chapter. For instance, see:
• Working with the Toolbars for information about the toolbars in Roto.
• Working with the Stroke/Shape List for information about the shape list in the Roto properties
panel.
• Drawing Shapes for information about using the Bezier and B-Spline Tools.
• Selecting Existing Strokes/Shapes for Editing for information about selecting shapes.
• Editing Shape-Specific Attributes for information about editing Bezier and B-Spline attributes.
• Editing Existing Stroke/Shape Timing for information about changing the timing of your shape.
• Animating Strokes/Shapes for information about editing your shapes.
USER GUIDE
529
Using RotoPaint |
4. Draw one or more strokes/shapes in the Viewer window. For more information, see for example
Using the Brush tool or Using the Bezier and Cusped Bezier Tools.
5. Select an existing stroke/shape using the Select tools or the stroke/shape list. For more
information, see Selecting Existing Strokes/Shapes for Editing.
6. Use the control panel controls to adjust your existing stroke/shape. For more information, see
Editing Existing Stroke/Shape Attributes.
USER GUIDE
530
Connecting the RotoPaint Node | To Connect the RotoPaint Node
USER GUIDE
531
Working with the Toolbars | To Connect the RotoPaint Node
Note: You can’t use RotoPaint tool settings to adjust an already existing stroke/shape. For
any changes you want to make to a stroke/shape after you’ve created one, you can use the
controls in the RotoPaint properties panel.
In the RotoPaint toolbar, you can select your stroke/shape tool. The tools are grouped under the
toolbar icons. You can click any tool to make it active and view a tool group by right-clicking (or left-
clicking and holding) the icon. The tool that is currently selected is highlighted.
Tip: When the Viewer has mouse-over focus, you can also use the S keyboard shortcut to
cycle through the modes of the currently selected tool.
In the RotoPaint tool settings on the top of the Viewer, you can define the settings for the tool that
you’ve selected. The controls in this toolbar change depending on which tool you have selected at any
given time.
USER GUIDE
532
Working with the Toolbars | To Connect the RotoPaint Node
Tip: You can hide the toolbars by clicking the hide button next to them. You can also press [
(square bracket) to hide the RotoPaint toolbar and { (curly bracket) to hide the tool settings
(and the entire top toolbar of the Viewer).
USER GUIDE
533
Working with the Stroke/Shape List | To Use the Stroke/Shape List
Using the list, you can also select strokes/shapes/groups and edit them with the various controls in
the properties panel. Some controls can be applied to groups, some can’t. Some controls also can
only be applied to strokes or shapes (these are grouped under the Stroke and Shape control tabs
respectively). If a control can’t be applied to a group, it is grayed out if you have a group selected in
the stroke/shape list.
The stroke/shape list provides an overview of existing parameters, showing, for example, whether the
item is locked, set invisible, or whether it has motion blur applied to it. Some controls can also be
edited directly in the overview by clicking on their icon.
below the list. This creates a subfolder, named “Layer1” by default, and you can drag and drop
strokes/shapes to this folder to group them. After strokes/shapes have been grouped, you can edit
them as a group and they move together if you change their place in the Viewer. Every group also
has its own transformation overlay, which you can use to move the group.
• You can remove a stroke/shape or a group by clicking the Remove button under the
stroke/shape list.
• If you want to rename any of the strokes, shapes, or groups, double-click on the name while the
item is selected, and give your item a new name. The name has to be unique, so you can’t give two
items the same name.
• You can also cut, copy, and paste strokes and shapes by right-clicking on them in the control panel
and using the copy > curve, cut > curve, and paste > spline options in the menu that appears.
USER GUIDE
534
Working with the Stroke/Shape List | To Use the Stroke/Shape List
For information on copying, cutting and pasting shapes and points, see Copying, Pasting, and
Cutting Stroke Positions; or for animated shapes and points, see Animating Strokes/Shapes.
Alternatively, to copy, cut, or paste shape and point attributes only, see Editing Existing
Stroke/Shape Splines.
Note: You cannot use Ctrl/Cmd+C or Ctrl/Cmd+V in the control panel to copy and paste
shapes. You must use the right-click menu.
• You can duplicate strokes/shapes by right-clicking on them and selecting duplicate. A new
stroke/shape is created with the same spline, animation, and attributes as the one you selected.
• You can hide a stroke, shape, or group by clicking the Visible icon in the stroke/shape list. You
can still edit an invisible stroke/shape and view its position in the Viewer.
• You can lock strokes/shapes to prevent them from being edited. To lock an item in the stroke/shape
list, click the Lock column in the list. A lock icon appears next to the Visible icon.
• You can select the color in which you want the outline of your stroke/shape to appear in the Viewer.
Click the Overlay column and select your overlay color. To be able to see the splines for all
paint strokes in the Viewer, you need to activate one of the Select tools in the RotoPaint toolbar and
click in the tool settings.
• You can change the color of your stroke/shape in the stroke/shape list by clicking the Color column
• You can invert a shape using the Invert column . With your shape selected, click in the Invert
column to toggle between inverted and uninverted modes.
• You can select a blending mode for your stroke/shape using the Blending column . With your
shape selected, click the Blending column and select the mode you want to apply.
• You can apply shape motion blur using the Motion blur column . With your shape selected,
click the Motion blur column to toggle the motion blur effect.
See Adding Motion Blur for more information on shape and global motion blur.
• You can specify the frame range of certain strokes and shapes by navigating to the stroke/shape list
of the RotoPaint node, and right-clicking all under the Life column. Select frame range from the
pop-up menu, and specify the frame range desired in the Set frame range dialog.
USER GUIDE
535
Working with the Stroke/Shape List | To Use the Stroke/Shape List
Tip: To undo and redo any changes you’ve made with the RotoPaint node, use the Undo and
Redo buttons on top of the properties panel. Undo uses a cache memory of your changes,
so at any time you can undo and redo all the changes you’ve made since you last opened
your project.
USER GUIDE
536
Drawing Paint Strokes | To Use the Stroke/Shape List
Brush N (toggles between Applies colors atop the current plate, or blends
Brush and Eraser) colors with the current plate. You can also clone
from surrounding frames.
Clone C (toggles between Applies pixels from one region of the current
clone and Reveal) plate to another region of the current plate.
Blur X (toggles between Blurs the image in the area of the brush stroke.
Blur, Sharpen and
Smear)
USER GUIDE
537
Drawing Paint Strokes | To Use the Stroke/Shape List
Tip: You can choose to have your RotoPaint always open with a particular tool selected. If
you want to open it with the Brush tool selected, for example, do the following:
1. Create a file called menu.py in your plug-in path directory if one doesn’t already exist. For
more information on plug-in path directories, see Loading Gizmos, NDK Plug-ins, and
Python and Tcl Scripts.
2. To select the Brush tool as your default tool, save the following in your menu.py:
nuke.knobDefault('RotoPaint.toolbox','brush')
3. Restart Nuke.
For more information on default tools, see Setting Default RotoPaint Tools and Settings.
Tip: If you are using a tablet, you can tie a new stroke’s opacity, size, or hardness to pen
pressure by clicking the corresponding pressure alters checkbox in the RotoPaint tool
settings. You can also later change which attribute the pressure alters for an existing stroke
on the Stroke tab of the properties panel.
Separate Select tools in the RotoPaint toolbar let you select strokes/shapes once they’ve been drawn
and after that you can make changes to them using the properties panel controls (see Selecting
Existing Strokes/Shapes for Editing, and Editing Existing Stroke/Shape Attributes).
These pages discuss the general steps for using each of these tools, and give an overview on editing
their attributes and timing.
USER GUIDE
538
Using the Brush tool | To Use the Brush Tool
Tip: If you need to draw a completely straight line with the brush tool, try this: Draw a
freehand stroke, activate the Select All tool, enable show paint stroke splines mode in
the tool settings, and marquee select and delete all but the first and last point on the stroke.
USER GUIDE
539
Using the Eraser Tool | To Use the Eraser Tool
3. Right-click the Brush tool in the RotoPaint toolbar and select the Eraser tool .
4. Apply strokes as necessary. You can also erase multiple strokes, if you have drawn more than one.
Tip: If you’re using a graphics tablet, Nuke automatically switches to Eraser mode when you
use the erase end of the pen.
USER GUIDE
540
Using the Clone Tool | To Use the Clone Tool
2. To view all the settings for the Clone tool, enable show clone settings in the RotoPaint tool
settings at the top of the Viewer.
3. In the RotoPaint tool settings, set the paint source dropdown menu to the input you want to clone
pixels from. (For information on the available options, see Editing Stroke-Specific Attributes.)
You can also use the transform controls in the clone settings to transform the clone source
and reset it back to original with the reset button.
4. Set opacity, lifetime, brush type, size, and hardness for your stroke in the tool settings. (For more
information, see Editing Existing Stroke/Shape Attributes and Editing Existing Stroke/Shape
Timing.) If you’ve got more than one view set up, you can check the single view box to only clone
in one view, or uncheck it to clone in all of them.
5. To set the clone offset, hold down Ctrl/Cmd and left-click at the source location, drag to where
you want to paint, and release. Alternatively, you can enter the offset numerically using the
translate controls in the RotoPaint tool settings. If you’d like the offset amount to be rounded to
an integer (whole number of pixels), check round. Rounding to a pixel can be useful if you don’t
want to soften the image by partially blending pixels together.
6. Start painting. The pointer overlay depicts the source of the offset as a crosshair within a circle
and the destination as a circle (the diameter of which represents the breadth of the stroke).
USER GUIDE
541
Using the Clone Tool | To Use the Clone Tool
You can use / (forward slash) and * (asterisk) on the numeric keypad to zoom your clone source in
and out, and 0 (zero) and . (decimal point) to rotate it right and left. You can also use the number
keys on the numeric keypad to nudge the clone source.
7. To reset the clone offset, you can use Ctrl/Cmd+drag to adjust the offset you set before, or
Ctrl/Cmd+Shift+drag to start a new offset from the brush pointer’s location.
Tip: If you’re cloning from the current plate (foreground), you’re also cloning all the
strokes/shapes you’ve previously drawn. If you want to clone from the original background
or a different picture, you need to set the paint source dropdown menu to pull from that
input.
Tip: To clone pixels from another frame of the input clip, you can use the time offset slider
to define which frame you want to clone from. See Editing Clone or Reveal Attributes.
USER GUIDE
542
Using the Reveal Tool | To Use the Reveal Tool
USER GUIDE
543
Using the Reveal Tool | To Use the Reveal Tool
overlay. This can help you better see what you are revealing from the source image. You can also
toggle the keyboard shortcut T to enable or disable onion skin.
7. Start painting.
USER GUIDE
544
Using the Blur Tool | To Use the Blur Tool
Tip: You can use the effect control in the RotoPaint tool settings to adjust the strength of
the tool you’re using. With the Blur tool, it controls the amount of blur.
USER GUIDE
545
Using the Sharpen Tool | To Use the Sharpen Tool
Tip: You can use the effect control in the RotoPaint tool settings to adjust the strength of
the tool you’re using. With the Sharpen tool, it controls how much the image is sharpened.
USER GUIDE
546
Using the Smear Tool | To Use the Smear Tool
USER GUIDE
547
Using the Dodge Tool | To Use the Dodge Tool
USER GUIDE
548
Using the Burn Tool | To Use the Burn Tool
USER GUIDE
549
Drawing Shapes | To Use the Burn Tool
Drawing Shapes
Any given RotoPaint node can hold several shapes, and you can draw them using any of the following
tools.
Separate Select tools in the RotoPaint toolbar let you make changes to a stroke/shape once it’s been
drawn (see Selecting Existing Strokes/Shapes for Editing).
USER GUIDE
550
Drawing Shapes | To Use the Burn Tool
Tip: You can choose to have your RotoPaint always open with a particular tool selected. If
you want to open it with the Bezier tool selected, for example, do the following:
1. Create a file called menu.py in your plug-in path directory if one doesn’t already exist. For
more information on plug-in path directories, see Loading Gizmos, NDK Plug-ins, and
Python and Tcl Scripts.
2. To select Bezier as your default tool, save the following in your menu.py:
nuke.knobDefault('RotoPaint.toolbox','bezier')
3. Restart Nuke.
For more information on default tools, see Setting Default RotoPaint Tools and Settings.
Tip: If you begin drawing shapes and then decide you want to planar track these with the
PlanarTracker node, you can do that easily by right-clicking on the shape in the stroke/shape
list and selecting planar-track. This creates a new planar tracking layer for the shape and
attaches the shape to it. For more information about PlanarTracker, see Tracking with
PlanarTracker.
USER GUIDE
551
Using the Bezier and Cusped Bezier Tools | To Use the Bezier or Cusped Bezier Tools
• Right-click the Bezier tool in the RotoPaint toolbar and select the Cusped Bezier tool .
2. Select color, blending mode, opacity, and other settings for the shape in the RotoPaint tool
settings at the top of the Viewer. (For information on the available options, see Editing Existing
Stroke/Shape Attributes.)
3. Optionally, set the lifetime of the shape in the RotoPaint tool settings. (For information on the
available options, see Editing Existing Stroke/Shape Timing on page 581.)
4. Draw a shape in the Viewer by clicking to create the outlines that make up your shape.
5. If you’re using the Bezier tool, you can click+drag while drawing to create a point and adjust its
tangent handles. With the tangent handles, you can adjust the spline of your shape.
• You can move individual handles to adjust their length, keeping the angle consistent.
• Press Shift while moving the tangent handles to move both handles at the same time, keeping
the angle consistent.
• Press Ctrl/Cmd to temporarily break the angle.
6. You can also use other shortcuts to adjust your shape while drawing:
USER GUIDE
552
Using the Bezier and Cusped Bezier Tools | To Use the Bezier or Cusped Bezier Tools
• Shift+click to create a sharp exit point on the previous point (this has no effect when using the
Cusped Bezier tool, as all the points are sharp anyway).
Tip: You can also apply animation from a Tracker node to a point in your Bezier shape.
From the Tracker node, Ctrl/Cmd+drag the transformation information into the Viewer, on
the point you want to animate. See also Linking Expressions for creating links between the
Tracker node and RotoPaint controls.
USER GUIDE
553
Using the B-Spline Tool | To Use the B-Spline Tool
USER GUIDE
554
Using the B-Spline Tool | To Use the B-Spline Tool
Tip: You can convert your B-spline shape into a Bezier shape after creating it. Select the B-
spline shape using the Select All tool, right-click on it and select convert bspline to bezier.
You can now edit your shape in the same way as other Bezier shapes.
USER GUIDE
555
Using the Ellipse, Rectangle, and Cusped Rectangle Tools | To Use the Ellipse, Rectangle, and Cusped
After creation, ellipses, rectangles, and cusped rectangles can be edited like normal Bezier shapes.
USER GUIDE
556
Using the Ellipse, Rectangle, and Cusped Rectangle Tools | To Use the Ellipse, Rectangle, and Cusped
If you want to create a perfect circle with the Ellipse tool or a square with the Rectangle tool, hold
down Shift while drawing your shape.
USER GUIDE
557
Using the Open Spline Tool | To Use the Open Spline Tool
After creation, you can edit points on open splines using the standard smooth and transform
handles, but they also have individual thickness and feather handles. The image shows an open
spline and each point's smooth (orange), thickness (green), and feather (magenta) handles.
Tip: You can also press V, when the Viewer has focus, to cycle through the available tools.
2. Select color, blending mode, opacity, and other settings applicable to all RotoPaint tool at the top
of the Viewer. (For information on the available options, see Editing Existing Stroke/Shape
Attributes.)
RotoPaint has a few additional open spline-specific controls:
• width - controls the overall thickness of the spline.
• start type - sets the state of the first point in the spline to either rounded or square.
• end type - sets the state of the last point in the spline to either rounded or square.
3. Click in the Viewer to place the starting point of the spline and then add the required number of
points on the feature you're working on.
USER GUIDE
558
Using the Open Spline Tool | To Use the Open Spline Tool
5. You can adjust the thickness and feather of individual points on the spline by selecting the
required points and using the handles displayed in the Viewer.
Drag the handle and release to apply the change to the selected points.
USER GUIDE
559
Using the Open Spline Tool | To Use the Open Spline Tool
USER GUIDE
560
Setting Default RotoPaint Tools and Settings | To Set a Tool as Your Default Tool:
USER GUIDE
561
Setting Default RotoPaint Tools and Settings | To Set Your Default Tool Properties:
nuke.knobDefault('RotoPaint.toolbox','createBezierCusped')
• B-Spline
nuke.knobDefault('RotoPaint.toolbox','createBSpline')
• Ellipse
nuke.knobDefault('RotoPaint.toolbox','createEllipse')
• Rectangle
nuke.knobDefault('RotoPaint.toolbox','createRectangle')
• Cusped Rectangle
nuke.knobDefault('RotoPaint.toolbox','createRectangleCusped')
• Brush
nuke.knobDefault('RotoPaint.toolbox','brush')
• Eraser
nuke.knobDefault('RotoPaint.toolbox','eraser')
• Clone
nuke.knobDefault('RotoPaint.toolbox','clone')
• Reveal
nuke.knobDefault('RotoPaint.toolbox','reveal')
• Dodge
nuke.knobDefault('RotoPaint.toolbox','dodge')
• Burn
nuke.knobDefault('RotoPaint.toolbox','burn')
• Blur
nuke.knobDefault('RotoPaint.toolbox','blur')
• Sharpen
nuke.knobDefault('RotoPaint.toolbox','sharpen')
• Smear
nuke.knobDefault('RotoPaint.toolbox','smear')
3. Restart Nuke.
USER GUIDE
562
Setting Default RotoPaint Tools and Settings | To Set Your Default Tool Properties:
• to set the brush size for paint to 30, and for clone to 280, add this Python line in your init.py:
nuke.knobDefault("RotoPaint.toolbox", '''clone {
{ brush bs 30 }
{ clone bs 280 }
}''')
OR
• to set the brush hardness for paint to 1.0 by default, add this Python line:
nuke.knobDefault("RotoPaint.toolbox", '''brush {
{ brush h 1 }
}''')
• to set the source transform round on clone to on by default, add this Python line:
nuke.knobDefault("RotoPaint.toolbox", '''clone {
{ clone str 1 }
}''')
3. Restart Nuke.
Note: As you can see from the above examples, the different RotoPaint tools have their own
default tool settings. If you attempt to set a default but don’t specify for which tool, the
default gets ignored as soon as you switch to a different tool. For example,
nuke.knobDefault('RotoPaint.toolbar_brush_hardness','1.0') sets brush hardness to 1.0
initially, but as soon as you activate a different tool, you get the default for that tool.
Note: You cannot set up multiple defaults through RotoPaint.toolbox. For example, if you
run the following three commands, the default is only set for the last one (sharpen):
nuke.knobDefault("RotoPaint.toolbox", '''clone {{ clone ltt 0}}''')
nuke.knobDefault("RotoPaint.toolbox", '''blur {{ blur ltt 0}}''')
nuke.knobDefault("RotoPaint.toolbox", '''sharpen {{ sharpen ltt 0}}''')
To set the defaults for clone and blur as well, you should instead use this:
nuke.knobDefault("RotoPaint.toolbox", '''clone {
{ brush ltt 0 }
{ clone ltt 0}
}''')
USER GUIDE
563
Selecting the Output Format and Channels | To Set Your Default Tool Properties:
Tip: You can use the Link Menu to link the channel controls with other controls. For
more information, see Linking Channels Using the Link Menu.
5. From the clip to dropdown menu, select how you want to restrict the output image:
• no clip - Do not restrict the output image.
• bbox - Restrict the output image to the incoming bounding box.
• format - Restrict the output image to the incoming format area (the default).
• union bbox+format - Restrict the output image to a combination of the bounding box and the
incoming format area.
USER GUIDE
564
Selecting the Output Format and Channels | To Set Your Default Tool Properties:
• intersect bbox+format - Restrict the output image to an intersection of the bounding box and
incoming format area.
You can also check the Replace box if you want to clear the channels to black before drawing into
them. You might find Replace useful, for instance, if you’re creating a mask in the alpha channel,
but the incoming image already has an alpha channel which you want to throw away.
6. If you haven’t connected an input to RotoPaint, select your format value. This is the format which
the node should output in the absence of any available input format. If an input is connected, this
control has no effect.
By default, the format control is hidden, but you can display it by clicking on the black triangle
above color.
USER GUIDE
565
Selecting Existing Strokes/Shapes for Editing | To Adjust Display Properties for Selected
When you click on a point in a stroke/shape, the point changes color to indicate whether it’s in focus
(green by default) and whether it has an expression set (red by default). You can change the default
colors on the Viewers tab in the Preferences.
You can also use the controls in the RotoPaint tool settings to display and hide information such as
points, point numbers, splines, and transform handles. See To Adjust Display Properties for Selected
Shapes/Strokes below.
• To view or hide the numbers for visible shape/stroke points, toggle the label points button .
Feather points are marked with a bracketed number corresponding their shape point, so for
example, if a shape point is marked with the number 2, its feather point is marked with [2].
• To view or hide the splines in visible shapes, toggle the hide splines button .
• To view or hide the splines in visible paint strokes, enable show paint stroke splines and
toggle the hide splines button .
• To view or hide the points (and tangent handles) in visible shapes/strokes, toggle the hide points
button .
• To view or hide the transform handle jack or transform box for visible shapes/strokes, toggle the
hide transform handles button (or press T on the Viewer).
• To hide the transform handle jack or transform box when moving a selection, click the hide
transform handles on move button . This may make it easier to correctly position your selection.
USER GUIDE
566
Selecting Existing Strokes/Shapes for Editing | To Select an Entire Stroke/Shape
Tip: To select points in a paint stroke and view your selection in the Viewer, you have to
enable show paint stroke splines in the tool settings.
Tip: By default, if you have selected a stroke/shape in the Viewer or the stroke/shape list,
clicking on an empty area in the Viewer does not deselect it. If you’d like to change this
behavior, you can disable constant selection mode in the RotoPaint tool settings.
To Select a Spline
1. Right-click the Select All tool and select the Select Splines tool .
USER GUIDE
567
Selecting Existing Strokes/Shapes for Editing | To Select Only Points on a Stroke/Shape
Tip: Using the Select Splines tool, you can also duplicate the stroke/shape you’ve selected.
Just right-click on one of the points, and select duplicate. A new stroke/shape is created with
the same spline and attributes as the one you selected.
2. Make sure hide transform handles is disabled in the RotoPaint tool settings.
3. Select points in a stroke/shape with Shift+click or by clicking and dragging across the points you
want to select. A transform box appears.
4. You can also use shortcut T to toggle viewing the transform handle.
USER GUIDE
568
Editing Existing Stroke/Shape Attributes | Editing Color
If you want to edit the attributes of a stroke/shape prior to drawing one, you should do that in the
RotoPaint tool settings in the Viewer. (See Working with the Toolbars.)
Editing Color
When drawing a stroke/shape, you can set the RGBA color values of the stroke/shape using the color
controls on the RotoPaint tab of the RotoPaint properties panel (for more information on the color
controls, see the Using the Compositing Environment chapter). You can also adjust color directly in
Editing Opacity
You can set the opacity of the stroke/shape using the opacity slider. If you set the opacity of a shape
to zero, the outline for it won’t be drawn unless the shape is selected. You can also temporarily make
the stroke/shape invisible (that is, completely transparent) by toggling the visible box in the
stroke/shape list.
USER GUIDE
569
Editing Existing Stroke/Shape Attributes | Selecting a Source for Your Stroke/Shape
Tip: When drawing brush strokes, you can tie their transparency to pen pressure. Just check
the opacity box next to pressure alters on the Stroke tab of the properties panel.
Each of the blending modes blends the primary color, that is the color of the current
stroke/shape/group you’re editing with the secondary color, which is the combined color of your
background image and any previously rendered strokes/shapes/groups.
USER GUIDE
570
Editing Existing Stroke/Shape Attributes | Editing Blending Mode
• Difference - Subtracts either the secondary color from the primary color or vice versa, depending
on which is brighter. Blending with white inverts the primary color, while blending with black
produces no change. Similar colors return black pixels. Difference is a useful mode when working
with mattes.
• Exclusion - Creates a result similar to the Difference mode but lower in contrast. Like with
Difference, blending with white inverts the primary color. Blending with black produces no change.
• From - Subtracts the primary color from the secondary color.
• Hard Light - Lightens highlights and darkens shadows. If the secondary color is lighter than 50%
gray, the result lightens as if it were screened. If the secondary color is darker than 50% gray, the
result is darkened as if it were multiplied.
• Max - Selects the lighter of the two colors as the resulting color. Only areas darker than the
secondary color are replaced, while areas lighter than the secondary color do not change.
• Min - Selects the darker of the two colors as the resulting color. Any parts that are lighter than the
secondary color are substituted. Any parts of the image that are darker than the secondary color
don’t change.
• Minus - Subtracts the secondary color from the primary color.
• Multiply - Multiplies the primary color by the secondary color. The result is always darker. Blending
with black gives black, and with white returns the color unchanged.
• Over - This mode is the default. The colors of the two images do not interact in any way, and Nuke
displays the full value of the colors in the primary image.
• Overlay - Depending on the primary color, multiplies or screens the colors. The secondary color
brightens the primary color while preserving highlights and shadows.
• Plus - The sum of the two colors. Increases brightness to lighten the primary color and reflect the
secondary color. Plus is similar to the Screen blending mode, but produces a more extreme result.
• Screen - This is a soft Plus making everything brighter but ramping off the whites. Light colors have
more of an effect than dark colors. The result is always a lighter color. Blending with black leaves
the pixel unchanged, blending with white always returns white. The result is similar to projecting
multiple slides on top of each other.
• Soft Light - Depending on the primary color, darkens or lightens the colors. Less extreme than the
Hard Light mode.
Tip: Note that changing the stack order of your primary and secondary colors might have an
impact on your result. For example, if you have two Bezier shapes overlapping each other
with a blending mode active, the result depends on which shape is on top of the other. You
can change the stack order of strokes/shapes in the stroke/shape list.
USER GUIDE
571
Transforming Strokes/Shapes/Groups | Editing Blending Mode
Transforming
Strokes/Shapes/Groups
To apply spatial transformations to your strokes, shapes, or groups, you can use the controls under
the Transform tab. Select a stroke/shape/group from the stroke/shape list and adjust:
• translate - to move the stroke/shape on x and y axis.
• rotate - to spin a stroke/shape around the pivot point. Use center (or Ctrl/Cmd+drag the transform
jack) to position the pivot point.
• scale - to resize a spline. Use center (or Ctrl/Cmd+drag the transform jack) to position the pivot
point.
• skew X - to skew the spline of your stroke/shape along the X axis from the pivot point. Use center
(or Ctrl/Cmd+drag the transform jack) to position the pivot point.
• skew Y - to skew the spline of your stroke/shape along the Y axis from the pivot point. Use center
(or Ctrl/Cmd+drag the transform jack) to position the pivot point.
• skew order - to set the order in which skew X and skew Y are applied:
• XY - Skew X is applied before skew Y.
• YX - Skew Y is applied before skew X.
• center x, y - to set the center for rotation and scaling, adjust the values in center x, y.
• extra matrix - enter values you want to get concatenated with the transformation controls above.
For more information on concatenating, see How Nodes Concatenate.
Note: While you can drag the matrix to another node’s matrix to easily use the values
elsewhere, you shouldn’t try, for example, to drag a 4 by 4 matrix on a 3 by 3 matrix, as
doing that might have unexpected results.
Alternatively, you can also use the transform handle (shortcut T) in the Viewer to transform elements.
To transform an entire stroke/shape, you need to use the transform handle jack, and to transform
points in a stroke/shape, you should use the transform box.
The transform handle appears as a transform jack only when the Transform tab is active, when any
of the other tabs in the RotoPaint properties panel are active, the transform handle appears as a box.
USER GUIDE
572
Transforming Strokes/Shapes/Groups | To Transform a Stroke/Shape Using a Transform Handle Jack:
2. Make sure hide transform handles is disabled in the RotoPaint tool settings.
3. Select a stroke/shape by clicking it in the Viewer or by selecting it in the stroke/shape list. A
transform handle jack appears.
4. Use the jack to rotate, scale or skew your stroke/shape.
2. Make sure hide transform handles is disabled in the RotoPaint tool settings.
3. Select points in a stroke/shape with Shift+click or by clicking and dragging across the points you
want to select. A transform box appears.
4. Use the box to rotate, scale or skew your stroke/shape, or points.
5. To corner pin using the transform box, press Ctrl/Cmd+Shift and drag the transform box points
to move them.
Note: Transforming points changes the actual point position, while transforming an entire
stroke/shape/group changes transformation applied to the point positions.
Tip: If you’d like to hide the transform box when moving a selection, enable hide transform
handles on move in the RotoPaint tool settings. This may make it easier to correctly
position your selection.
USER GUIDE
573
Transforming Strokes/Shapes/Groups | To Transform Onion Skin Source
1. With your stroke/shape tool selected, check the onion box in the RotoPaint tool settings.
2. Adjust the opacity of the onion skin and transform your source by using the onion skin transform
overlay in the Viewer.
USER GUIDE
574
Adjusting Mask Controls | To Transform Onion Skin Source
USER GUIDE
575
Editing Shape-Specific Attributes | Adding and Removing Feather
7. If you disable feather link mode (enabled by default) in the RotoPaint tool settings, the
feather and shape points move independently.
• centered - to center the shutter around the current frame. For example, if you set the shutter
value to 1 and your current frame is 30, the shutter stays open from frame 29.5 to 30.5.
• start - to open the shutter at the current frame. For example, if you set the shutter value to 1
and your current frame is 30, the shutter stays open from frame 30 to 31.
• end - to close the shutter at the current frame. For example, if you set the shutter value to 1 and
your current frame is 30, the shutter stays open from frame 29 to 30.
• custom - to open the shutter at the time you specify. In the field next to the dropdown menu,
enter a value (in frames) you want to add to the current frame. To open the shutter before the
current frame, enter a negative value. For example, a value of - 0.5 would open the shutter half a
frame before the current frame.
USER GUIDE
576
Editing Stroke-Specific Attributes | Selecting a Source Image
USER GUIDE
577
Editing Stroke-Specific Attributes | Editing Brush Spacing
USER GUIDE
578
Editing Stroke-Specific Attributes | Adjusting Write On
You can also tie a stroke’s hardness to pen pressure by checking the hardness box next to pressure
alters.
Adjusting Write On
When you are animating a stroke or a part of it over a range of frames, you can use the write on
sliders under the Stroke tab in the properties panel to adjust the order in which the dabs on the
stroke appear over these frames. For more information on animating parameters, see the Using the
Compositing Environment chapter.
• write on start - slide to choose where along the stroke length the paint begins. 0 is the start of the
stroke, 1 is the end.
• write on end - slide to choose where along the stroke length the paint ends.
USER GUIDE
579
Editing Clone or Reveal Attributes | Adjusting Write On
USER GUIDE
580
Editing Existing Stroke/Shape Timing | Adjusting Write On
all frames Click to make a stroke/shape visible for all frames (the default).
frame to end Click to make a stroke/shape visible from the current frame to the last
frame.
single frame Click to make a stroke/shape visible only on the current frame.
start to frame Click to make a stroke/shape visible from the first frame to the current
frame.
frame range Click to make a stroke/shape visible during a specified range of frames
using the frames dialog or from and to controls.
USER GUIDE
581
Editing Existing Stroke/Shape Stack Order | Adjusting Write On
In the stroke/shape list, you can drag and drop strokes/shapes to change their drawing order, and to
group them under folders. For more information on using the stroke/shape list, see Working with the
Stroke/Shape List.
USER GUIDE
582
Editing Existing Stroke/Shape Splines | To Add a Point to a Stroke/Shape
To Move a Point
1. With the Select All tool or Select Points tool active, select the stroke/shape in the Viewer
or the stroke/shape list.
Tip: If you find it difficult to select a single point, you might want to increase the 2D/3D
handle size or the handle pick size in the Nuke Preferences dialog (Preferences > Panels
> Viewer Handles).
USER GUIDE
583
Editing Existing Stroke/Shape Splines | To Delete a Point
3. In the Viewer, drag a marquee around the points (or an entire stroke/shape) that you want to
move. If hide transform handles is disabled, a transform box appears.
4. Adjust the transform box as necessary.
Note: Moving a shape with Select All active moves the selected points or feather points to
the new location. Scrubbing the timeline shows the shape move across the Viewer between
keyframes. However, moving a shape with Select Feather Points active moves only the
feather points to the new location, displaying the feather falloff of the selected points.
To Delete a Point
1. Right-click on the Add Points tool and select Remove Points tool .
2. Select the stroke/shape in the Viewer or the stroke/shape list.
1. Activate the Select All tool . In the Viewer, click on the stroke/shape.
2. Right-click on the shape and select delete or press the Delete/Backspace key.
USER GUIDE
584
Copying, Cutting, and Pasting Stroke Attributes | To Copy Stroke/Shape Attributes
USER GUIDE
585
Copying, Cutting, and Pasting Stroke Attributes | To Paste Stroke/Shape Attributes
USER GUIDE
586
Point Cusping, Smoothing, Expressions, and Links | To Cusp or Smooth Points
2. Select the Smooth Points tool or Cusp Points tool in the RotoPaint toolbar, depending
on whether you want to cusp or smooth your points.
USER GUIDE
587
Point Cusping, Smoothing, Expressions, and Links | To Link Other Controls to a Point’s Position
1. With the Select All , Select Points , or Select Feather Points tool active, make sure
hide points is disabled in the tool settings.
2. Right-click on a point and select copy > point link.
3. Go to the field you want to use the link in, for example another node, right-click and select Copy >
Paste.
For example, you can copy a point link, click on a Transform node’s animation menu next to
translate, and select Copy > Paste. An expression arrow appears between the RotoPaint node
and the Transform node, and when you move the point, the Transform node’s translate values
update with your changes.
Note: When copying, cutting, or pasting from the right-click menu, numbers are displayed
next to the curve, spline, or point. These numbers represent how many of each you have
selected and thus, how many are copied or pasted. For example, 2 point (values) denotes
that 2 points are selected. Pasting two points into a shape with many more points replaces
the lowest two points in the shape, or the highest two splines in the stroke/shape list.
USER GUIDE
588
Animating Strokes/Shapes | To animate a stroke/shape using autokey
Animating Strokes/Shapes
All strokes/shapes that appear on more than one frame can be animated. By default, the autokey
option in the RotoPaint tool settings is on, which means your changes to a stroke/shape
automatically creates keyframes and animates your stroke/shape. You can also access all the curves
and shapes in the Curve Editor and Dope Sheet.
Tip: Note that if you are translating an entire stroke/shape using the Transform tab,
RotoPaint also draws a track of the stroke/shape’s animated position. You can, for example,
use the track in another node (such as Tracker or CameraTracker) by Cmd/Ctrl+dragging the
values from the translate animation button to an appropriate field in another node.
USER GUIDE
589
Animating Strokes/Shapes | To animate strokes/shapes manually
• If you want to create a key that is set to animate a position, right-click on the stroke/shape and
select set key > spline.
• If you want to create a key that is set to animate transformation, right-click on the stroke/shape
and select set key > transform.
• If you want to create a key that is set to animate attributes, right-click on the stroke/shape and
select set key > attributes.
If you have autokey turned off, you can only adjust a point in a stroke/shape at a keyframe.
In other words, in order to make changes to a point, you either have to move to an existing
keyframe on the timeline, or you need to create a new keyframe first.
USER GUIDE
590
Viewing Spline Keyframes | To View Keyframes on the Timeline
move backwards and forwards between the keyframes using the arrow keys .
3. If you want to add or remove spline keys for the stroke/shape in a selected frame, use the Add
If no other keys are set for the selected stroke/shape, the frame marker on the timeline turns from
blue to the default color.
USER GUIDE
591
Deleting or Rippling Keyframes | To Delete a Keyframe
To Delete a Keyframe
1. Using the Viewer timeline, scrub to the frame where you want to delete a keyframe.
2. In the stroke/shape list, select the stroke/shape whose key you want to delete.
3. Do one of the following:
• If you want to delete a key that is set to animate the entire stroke/shape, right-click on the
stroke/shape and select delete key > all.
• If you want to delete a key that is set to animate a position, right-click on the stroke/shape and
select delete key > spline.
• If you want to delete a key that is set to animate a transformation, right-click on the
stroke/shape and select delete key > transform.
• If you want to delete a key that is set to animate attributes, right-click on the stroke/shape and
select delete key > attributes.
If no other keys are set for the selected stroke/shape, the frame marker on the timeline turns from
blue to the default color.
To Ripple Keyframes
Rippling keyframes allows you to adjust the position of a stroke/shape point on one frame and have
that same relative adjustment applied to the point across all frames or a specified range of frames.
USER GUIDE
592
Deleting or Rippling Keyframes | To Ripple Keyframes
This way, you can make non-animated changes to a stroke/shape which is being animated over a set
of frames.
1. Activate Select All tool in the RotoPaint toolbar and click the ripple edit button in the
RotoPaint tool settings. A red border displays around the Viewer to indicate that the ripple mode
USER GUIDE
593
Copying, Cutting, and Pasting Animations | To Copy Animations
To Copy Animations
If you want to copy a shape, including all animation attributes, animated points, and associated
keyframes, copying animations is the best way to do this. To copy animations for a stroke/shape:
1. With the Select All tool active, select the stroke/shape in the Viewer.
2. Right-click on the stroke/shape and select copy > curve (spline-key animations).
This copies the current selected animation and key frame information to the clipboard.
1. With the Select All tool active, select the stroke/shape in the Viewer.
2. Right-click on the stroke/shape and select copy > curve (attribute animations).
This copies only the selected attributes for the animated shape to the clipboard.
1. With the Select All tool active, select the stroke/shape in the Viewer. Make sure hide points
is disabled in the tool settings.
2. Right-click on the point or points and select copy > points (animations).
This copies only the selected animated points and keyframes to the clipboard.
To Cut Animations
If you want to move a stroke/shape and replace another with all the same animated points and
keyframes, cutting the shape is a better option than simply copying it. To cut animations for a
stroke/shape:
1. With the Select All tool active, select the stroke/shape in the Viewer.
USER GUIDE
594
Copying, Cutting, and Pasting Animations | To Paste Animations
2. Right-click on the stroke/shape and select cut > curve (spline-key animations).
The shape is cut from the Viewer and placed in the clipboard. The transform box still appears on
the Viewer and allows you to amend the shape, until you click on another shape or elsewhere in
the Viewer.
1. With the Select All tool active, select the stroke/shape in the Viewer.
2. Right-click on the stroke/shape and select cut > curve (attribute animations).
This cuts the animation attributes for the selected stroke/shape and placed it them in the
clipboard.
1. With the Select All tool active, select the animated point(s) of a stroke/shape in the Viewer
that you want to cut. Make sure hide points is disabled in the tool settings.
2. Right-click on the point(s) and select cut > point (animation).
This cuts only the animated points and keyframes and places them in the keyboard.
To Paste Animations
If you want to paste copied or cut animated shape information, consider whether the shape you are
pasting over has values that need to be saved. Pasting animated points, spline-keys, and attributes
over another shape destroys all points and keyframes of the second shape in order to replace it. To
paste animations for a stroke/shape:
1. With the Select All tool active, select the stroke/shape in the Viewer that you want to paste
the animated shape over. If there are not the same number of points on the shape as on the
copied shape, pasting the animated shape may not paste as expected.
2. Right-click on the stroke/shape and select paste > spline (animations).
This pastes the animation and keyframe information for the copied or cut stroke/shape over the
previously selected shape. This shape may need to be moved away from the copied shape, in
order to see both.
1. With the Select All tool active, select the stroke/shape in the Viewer that you want to paste
the animated attributes over.
2. Right-click on the stroke/shape and select paste > spline (attribute animations).
USER GUIDE
595
Copying, Cutting, and Pasting Animations | To Paste Animations
This pastes the animation attributes for the copied or cut stroke/shape over the previously
selected shape’s attributes.
1. With the Select All tool active, select the point(s) of a stroke/shape in the Viewer that you
want to paste the animated points over. Make sure hide points is disabled in the tool
settings.
2. Right-click on the point(s) and select paste > point (animation).
This pastes only the animated points and keyframes from the clipboard.
USER GUIDE
596
Adding Motion Blur | Adding Blur to Shapes
Note: Shape motion blur may result in artifacts when shapes blur over the same region.
Tip: You can also toggle motion blur on and off in the shape list by clicking in the motion
4. In the Shape Blur > motionblur field, enter the sampling rate. This affects the number of times
the input is sampled over the shutter time. The higher the rate, the smoother the result. In many
cases, a value of 1.0 is enough.
USER GUIDE
597
Adding Motion Blur | Adding Blur to Shapes
A shutter value of 0.2 produces less A higher value, in this case 1.0,
blur. produces more blur.
6. Adjust the shutter offset using the shutter offset dropdown menu. The different options control
when the shutter opens and closes in relation to the current frame value. Select:
• centered - to center the shutter around the current frame. For example, if you set the shutter
value to 1 and your current frame is 30, the shutter stays open from frame 29.5 to 30.5.
• start - to open the shutter at the current frame. For example, if you set the shutter value to 1
and your current frame is 30, the shutter stays open from frame 30 to 31.
• end - to close the shutter at the current frame. For example, if you set the shutter value to 1 and
your current frame is 30, the shutter stays open from frame 29 to 30.
Centering the shutter Opening the shutter at the Closing the shutter at the
around the current frame. current frame. current frame.
• custom - to open the shutter at the time you specify. In the field next to the dropdown menu,
enter a value (in frames) you want to add to the current frame. To open the shutter before the
current frame, enter a negative value. For example, a value of - 0.5 would open the shutter half a
frame before the current frame.
USER GUIDE
598
Adding Motion Blur | Adding Global Motion Blur
Global motion blur requires that shutter and sampling parameters are the same for all shapes and
has been optimized for consecutive shapes with the same properties using the over blend mode.
Note: Global motion blur overrides per-shape motion blur, applying your settings to all
shapes in the current node's shape list.
USER GUIDE
599
Adding Motion Blur | Adding Global Motion Blur
A shutter value of 0.2 produces less A higher value, in this case 1.0,
blur. produces more blur.
4. Adjust the shutter offset using the shutter offset dropdown menu. The different options control
when the shutter opens and closes in relation to the current frame value. Select:
• centered - to center the shutter around the current frame. For example, if you set the shutter
value to 1 and your current frame is 30, the shutter stays open from frame 29.5 to 30.5.
• start - to open the shutter at the current frame. For example, if you set the shutter value to 1
and your current frame is 30, the shutter stays open from frame 30 to 31.
• end - to close the shutter at the current frame. For example, if you set the shutter value to 1 and
your current frame is 30, the shutter stays open from frame 29 to 30.
Centering the shutter Opening the shutter at the Closing the shutter at the
around the current frame. current frame. current frame.
• custom - to open the shutter at the time you specify. In the field next to the dropdown menu,
enter a value (in frames) you want to add to the current frame. To open the shutter before the
current frame, enter a negative value. For example, a value of - 0.5 would open the shutter half a
frame before the current frame.
USER GUIDE
600
Viewing Points in the Curve Editor and the Dope Sheet | Adding Global Motion Blur
USER GUIDE
601
Copying, Pasting, and Cutting Stroke Positions | To Copy Stroke/Shape Positions
1. With the Select All tool active, select the stroke/shape in the Viewer that you want to copy.
2. Right-click on the stroke/shape and select copy > curve (spline-key values).
This copies the position and point values into the clipboard.
1. With the Select All tool active, select the stroke/shape in the Viewer that you want to copy.
2. Right-click on the stroke/shape and select cut > curve (spline-key values).
This cuts the position and point values and places it into the clipboard. Cutting the position
deletes the keyframe, or, if there is no keyframe, deletes the points or spline.
Note: To cut stroke/shape position values, you must be cutting the stroke/shape when it is
on a keyframe, unless it has no keyframe. You cannot cut an animated stroke/shape not
currently on a keyframe.
USER GUIDE
602
Copying, Pasting, and Cutting Stroke Positions | To Paste Stroke/Shape Positions
1. With the Select All tool active, select the stroke/shape in the Viewer that you want to copy.
2. Right-click on a selected stroke/shape and select paste > spline (values).
This pastes the copied or cut position and point values from the clipboard onto another shape. In
the case of copied shapes, the new shape may be created over the original. Simply select and drag
to move it away from the original shape. Spline key values must have the same number of points
between the copied or cut stroke/shape and the stroke/shape you are replacing.
USER GUIDE
603
Copying, Pasting, and Cutting Point Positions | To Copy Point Values
Note: When copying, cutting, or pasting from the right-click menu, numbers are displayed
next to the curve, spline, or point. These numbers represent how many of each you have
selected and thus, how many are copied or pasted. For example, 2 point (values) denotes
that 2 points are selected. Pasting two points into a shape with many more points replaces
the lowest two points in the shape, or the highest two splines in the stroke/shape list.
USER GUIDE
604
Pasting Point Positions | To Paste Point Values
Note: If you have copied more than one point into the clipboard but have only selected one
point to paste into, paste > point (values) only displays one point and may not look as you
expect. To paste both points, ensure that you have two point selected (or however many is
needed for your sample).
USER GUIDE
605
Cutting Point Positions | To Cut Point Values
Note: To cut stroke/shape point values, you must be cutting the stroke/shape when it is on
a keyframe, unless it has no keyframe. You cannot cut an animated stroke/shape not
currently on a keyframe.
USER GUIDE
606
RotoPaint and Stereoscopic Projects | Selecting the View to Draw On
For more information on multi-view or stereoscopic projects in Nuke, see Stereoscopic Scripts.
USER GUIDE
607
Reproducing Strokes/Shapes in Other Views | Selecting the View to Clone From
Reproducing Strokes/Shapes in
Other Views
To create a stroke/shape on one view and have it automatically generated for the other:
1. Make sure there is a disparity field upstream from the image sequence you want to paint on. If
the image sequence is an .exr file, the disparity field can be included in its channels. Otherwise,
you can use a ShuffleCopy node or Ocula’s O_DisparityGenerator plug-in to add it in the data
stream.
2. In the RotoPaint properties, check all the views in the view dropdown menu. Display the view you
want to paint on in the Viewer.
3. Draw a stroke/shape in the Viewer.
4. Select the stroke/shape in the stroke/shape list in the RotoPaint node properties.
5. Right-click the stroke/shape and select either:
• Correlate points - to use the disparity at each point of the stroke/shape and translate each
point to the corresponding position in the other view.
• Correlate average - to take the disparity at each point, calculate the average disparity of the
stroke/shape and then translate it to the corresponding position in the other view.
The Correlate dialog displays.
6. In the Correlate dialog, select how to correlate the views in the correlate from dropdown. For
example, if your stroke/shape was in the correct position in the left view but not the right, you’d
set correlate from to left to right.
This adds the disparity vectors in the map to the current values, creating the corresponding
stroke/shape for the other view.
7. In the Viewer, switch between the two views to compare the original and the correlated
strokes/shapes.
8. If you want to adjust the stroke/shape further, you need to adjust both views independently.
Adjustments you make to one view are not automatically generated for the other.
USER GUIDE
608
Editing Strokes/Shapes in One View Only | To Edit Stroke/Shape Points
Note: To see splines for paint strokes in the Viewer, you need to activate show paint
Tip: You can also split shapes off by right-clicking on them in the stroke/shape list and
selecting Split off [view], for example Split off left.
2. In the RotoPaint controls, click the Views menu button next to the control you want to edit
and select Split off [view name]. For example, to edit opacity in a view called left, select Split off
left from the Views dropdown menu next to opacity.
Any changes you now make to opacity are only applied to the view you chose to split off and are
displaying in the Viewer.
USER GUIDE
609
Editing Strokes/Shapes in One View Only | To Edit Stroke/Shape Attributes
Views that have not been split off can still be edited together. For example, if you have views
called left, middle, and right, and choose to split off the left view, any changes to the middle view
are also applied to the right view and vice versa.
You can also click on the small arrow on the left side of the control to see the values for each
view.
3. To unsplit a view, click the Views menu button and select Unsplit [view]. For example, to
unsplit a view called left, you’d select Unsplit left.
The view is unsplit, and all changes you made after splitting it off are lost.
USER GUIDE
610
Applying a Stereo Offset | To Edit Stroke/Shape Attributes
Stereo offset can be useful, for example, if you have a stroke/shape that is correctly positioned in
one view and you want to move it to its correct location in another view, but can’t use the translate
control on the Transform tab because that’s being driven by Tracker data.
USER GUIDE
611
Where Are the Bezier and Paint Nodes? | To Edit Stroke/Shape Attributes
USER GUIDE
612
Tracking and Stabilizing
Nuke’s 2D Tracker allows you to extract animation data from the position, rotation, and size of a
pattern. You can then apply the data directly to transform or match-move another element. Or you
can invert the data values and apply them to the original element to stabilize the image.
Before Tracking
Before you track, it’s important to play back the image several times. This will help you identify the
best features for the process, as well as any problems with motion blur, occlusions, or features
moving out of frame.
For some images, you may need to apply filters or color-correction to boost the visibility of features
before you attempt to track them. Because of the procedural nature of Nuke, you can disable these
extra nodes after you get a successful track, or simply reconnect the Tracker node at the appropriate
place to apply the transform.
Quick Start
Here's a quick overview of the workflow:
1. Connect a Tracker node to the image you want to track. See Connecting the Tracker Node.
2. Place the required number of track anchors on features in the image. See Adding Track Anchors.
3. Use Automatic Tracking for simple tracks or, for greater accuracy or difficult tracks, use Keyframe
Tracking.
4. Apply your tracking data depending on requirements. See Applying Tracking Data.
USER GUIDE
613
Connecting the Tracker Node |
USER GUIDE
614
Adding Track Anchors | Positioning Track Anchors
1. Enable the fast-add button and click in the Viewer to add tracking anchors, or click add
track on the Tracker tab in the properties panel to create the required number of anchors.
Note: Holding Ctrl/Cmd+Alt and clicking in the Viewer also enables fast-add mode.
New anchors always appear in the center of the current Viewer. You’ll also notice an anchor zoom
window in the top left of the Viewer. This allows you to accurately position tracking anchors
without zooming the entire Viewer.
2. Temporarily disable tracks using the checkbox on the left of the panel or remove tracks by
selecting them in the Tracks list and clicking delete tracks.
USER GUIDE
615
Adding Track Anchors | Positioning Track Anchors
1. Drag the crosshair in the center of the anchor over the pattern to be tracked or manually adjust
the track_x and track_y fields in the Tracks list.
In the example, the corner of a building is directly under the crosshair.
Note: You can enable Settings > snap to markers to assist you when placing anchors.
Note: Whether you select blobs or corners, a guide displays in the Viewer as you drag the
anchor, highlighting likely patterns.
2. Adjust the pattern and search areas as required using the following methods:
• Click and drag the boundaries to adjust on a single axis. For example, dragging a vertical
boundary adjusts the area on the x axis.
• Click and drag the corners of the boundaries to adjust on both axes. Hold Shift, click and drag
to scale the area.
Note: Hold Cmd/Ctrl to adjust boundaries asymmetrically, that is, irrespective of the anchor
position.
USER GUIDE
616
Adding Track Anchors | Positioning Track Anchors
3. Reset the pattern and search areas by clicking in the Viewer tools.
USER GUIDE
617
Tracking Preferences and Viewer Tools | Positioning Track Anchors
Note: Enabling adjust for luminance changes can occasionally produce better tracks on
shots with no differences in luminance, particularly on jittery shots where sub-pixel accuracy
is vitally important.
5. Clamp super-white, sub-zero footage is enabled by default, restricting the pixel values within
the pattern between 0-1.
If you want to track the sequence using its full dynamic range, disable this control and increase
max_error to a value large enough to cover the range. For example, a sequence with pixel values
of 40 might require a similar max_error value.
6. Enable show error on track paths to color code tracks showing their pattern matching error
values, green for a good match through to red for a poor match.
Note: The Viewer toolbar button also toggles this control on and off.
USER GUIDE
618
Tracking Preferences and Viewer Tools | Positioning Track Anchors
8. Enable snap to markers to assist you when placing tracking anchors. See Positioning Track
Anchors for more information.
9. Set when the zoom window is displayed using the show zoom window dropdown:
• always - the window is always displayed.
• on track move - the window is only displayed when a track anchor is moved.
• when tracking - the window is only displayed during tracking.
• when tracking or track change - the window is displayed during tracking and when a tracking
anchor is moved.
• never - the window is never displayed.
10. Set the zoom widget’s size and magnification using the zoom size/mag. dropdowns. You can
select custom and enter values manually for greater flexibility.
11. A filter is applied to the zoom window on playback by default, but you can enable the filter
permanently, or disable it, using the zoom window filter dropdown.
Note: The filter applied is the same as that selected on the Transform tab, and can produce
a more visually stable track. It can make track positioning more difficult, however.
12. Proceed to Automatic vs. Keyframe Tracking to determine which tracking method suits your
needs.
USER GUIDE
619
Automatic vs. Keyframe Tracking | Positioning Track Anchors
USER GUIDE
620
Automatic Tracking | Calculating Auto-Tracks
Automatic Tracking
Calculating tracks automatically uses the tools above the Viewer to control the direction and range of
frames to track. Tracking backwards can produce a better track than going forwards if the pattern is
clearly visible later in the clip. By default, Auto-Tracking grabs the reference pattern on the first frame
of the sequence, from within the pattern anchor, using this pattern throughout the track for
comparison between frames.
To help avoid clutter in the Viewer, you can enable or disable the Tracker overlay by right-clicking in
the Viewer and selecting Overlay, or by pressing Q to toggle between the available states:
• overlay off
• overlay on
• overlay on, no animation path
Calculating Auto-Tracks
1. In the Tracker properties panel, select each track you wish to calculate or click select all to use all
tracks.
2. For each track, select the type of movement the track is intended to output: translation, rotation,
or scaling. For example, tracking a feature across the sequence and toward the camera may
involve translation and scale.
Note: These controls deal with output from tracking data using the Transform controls and
are not the same as the Settings > warp type control, which deals with pattern recognition.
3. Using the tool bar above the Viewer, click either the frame backward (X) or forward (C) buttons
to move to the previous or next frame. Move through a few frames in this manner to
ensure that all enabled track anchors are “sticking” to their patterns.
If a particular track anchor doesn’t stick, experiment with a different position.
4. Once all track anchors stick, click the track backward (Z) or track forward (V) buttons to
analyze the whole sequence.
5. To track only a certain frame range, use the range buttons to enter the required frames.
USER GUIDE
621
Automatic Tracking | Troubleshooting Auto-Tracks
Tip: When calculating multiple tracks simultaneously, you may find that some tracks stick
accurately to the pattern, while others require resetting and reanalysis. When you’re happy
with a given track, deselect it in the Tracks list. This protects it from recalculation, and lets
you experiment with better placement for the wayward tracks.
Troubleshooting Auto-Tracks
No matter how sophisticated tracking becomes, some sequences are inevitably going to cause
problems. There are a number of pre-tracking checks you can perform to assist Auto-Tracking:
• Play through the sequence before placing your tracking anchors
• Look for features that are consistent throughout the majority of the sequence
• Avoid occluded features where possible - see Dealing with Occlusions.
You can also adjust the way patterns are tracked and how often they are re-sampled, or grabbed,
using the Settings tab and Auto-Tracking controls:
1. Try adjusting the max iterations, epsilon, and max_error controls to improve the track accuracy:
• max iterations - the maximum number of iterations before the tracking algorithm stops
searching for features.
• epsilon/resolution - the error level at which Tracker is assumed to have found the feature - no
further search for a better match is performed. Higher values may result in a faster but less
accurate track.
• max_error - the error level at which Tracker stops searching for features.
2. In the Auto-Tracking sub-menu, enable predict track to use the animation path to predict where
the pattern may appear in the next frame.
Note: If the track fails when prediction is enabled, click the Clear Forward button, or
re-tracking follows the same erroneous path.
3. Set the type of movement Tracker should expect in the pattern using the warp type dropdown:
• Translate
• Translate/Rotate
• Translate/Scale
• Translate/Rotate/Scale
• Affine
USER GUIDE
622
Automatic Tracking | Dealing with Occlusions
Translation only is the easiest to calculate, but can lose the pattern if it rotates or scales. Affine
can be used to attempt to preserve straight lines and relative distances, compensating for
sheering.
4. Try adjusting the pattern grabbing behavior, when or how often a new pattern should be grabbed
from the sequence:
• on first frame - the comparison pattern is grabbed on the first frame from with the pattern
anchor. You might select this option if the feature translates but doesn’t rotate, scale, or sheer.
• every frame - the comparison pattern is grabbed at every frame in the sequence. This option
takes longer to process, but can produce a smoother track.
• every n frames - allows you to set the frame interval between pattern grabs using the every n
frames control.
• if error above - the comparison pattern is grabbed when the error value is greater than that
specified by the when error > control. Setting this control to a low value grabs the pattern more
often.
• if error below - the comparison pattern is grabbed when the error value is less than that
specified by the when error < control.
• custom - this option enables all the pattern grab behavior controls, allowing you to fine-tune
when the comparison pattern in grabbed through out the sequence.
5. Enable when tracking is stopped to cause Tracker to re-grab the pattern at the current frame
when tracking stops.
6. Enable when tracker is moved to cause Tracker to re-grab the pattern at the current frame when
a tracking anchor is moved.
USER GUIDE
623
Automatic Tracking | Dealing with Occlusions
2. Play though the sequence to identify a likely offset point - a pattern that remains equidistant from
the original pattern grab.
3. Hold down Ctrl/Cmd and drag the tracking anchor to the offset position.
The offset amount is recorded in the Tracks list and highlighted in yellow in the Viewer.
4. Continue tracking as normal by clicking the track backward (Z) or forward (V) button.
Tracker combines the two tracks into a single continuous track.
5. Use the clear backward and forward buttons to clear poor keyframes. Click clear all to
remove all selected tracks and keyframes, excluding manually placed keyframes.
Note: You can reset tracking anchor pattern and search areas by clicking .
USER GUIDE
624
Keyframe Tracking | Calculating Keyframe Tracks
Keyframe Tracking
Calculating tracks using keyframes can be the better option for more complex patterns and
movement. It requires a little more work to set up, but can produce more reliable tracks.
Unlike auto-tracks, keyframe tracking compares the current pattern anchor to the patterns of the two
nearest keyframes.
To help avoid clutter in the Viewer, you can enable or disable the Tracker overlay by right-clicking in
the Viewer and selecting Overlay, or by pressing Q to toggle between the available states:
• overlay off
• overlay on
• overlay on, no animation path
USER GUIDE
625
Keyframe Tracking | Importing Tracking Data
Tip: You can change the magnification of zoom windows by holding Shift and dragging the
magnifying glass cursor away from the center of the window.
At each frame, a new keyframe window is added to the right of the zoom window. The keyframe
closest to the current playhead frame is highlighted in orange.
It’s a good idea to place more keyframes around areas of complexity or greater movement and
fewer on straight forward translation. Generally speaking, a greater number of keyframes
produces a better track, but at the expense of processing time.
4. When you’re satisfied with your keyframes, make sure all your tracks are selected in the Tracks
list and then click to track all keyframes.
Tip: When calculating multiple tracks simultaneously, you may find that some tracks stick
accurately to the pattern, while others require resetting and reanalysis. When you’re happy
with a given track, deselect it in the Tracks list. This protects it from recalculation, and lets
you experiment with better placement for the wayward tracks.
5. You can also force the selected tracks to recalculate between the two nearest keyframes by
clicking in the Viewer toolbar.
See Troubleshooting Keyframe Tracks for help with troublesome tracks.
USER GUIDE
626
Keyframe Tracking | Importing Tracking Data
50,1000,700
90,1800,1200
100,2048,1556
Produces five keyframes at frames 1, 10, 50, 90, an 100 with the relevant x,y coordinates.
Tip: If you use a particular file format on a regular basis, you might want to create you own
importer to parse the .txt file. You can use the <install_dir>/plugins/import_discreet.tcl file
as a guide on how to do this.
3. Enter the file path and file name in the File field.
4. Set the required column containing the x and y coordinate data.
5. Click OK to import the track.
The points from the file are converted into keyframes and displayed in the Viewer. The track
between keyframes is interpolated as normal. The five keyframe example file described earlier
produces a track similar to the following image.
USER GUIDE
627
Keyframe Tracking | Troubleshooting Keyframe Tracks
Keyframe tracking won’t generally stop when a problem is encountered. Tracker attempts to continue
using the next keyframe as a reference, which is why placing a lot of keyframes around problem
areas is recommended.
Tip: Tracking areas of distortion or noise can produce unreliable results due to the
movement of the pixels in the pattern matching box. One way to deal with this is to seed
multiple tracks in and around the problem area and then average the resulting tracks
together, producing a single more reliable track, by clicking average tracks in the
properties panel.
1. First, turn on the color-coded error indicator by clicking the traffic light Viewer tool.
Each keyframe is colored on a sliding scale from green (good match) to red (poor match).
USER GUIDE
628
Keyframe Tracking | Dealing with Occlusions
Bear in mind that a red keyframe doesn’t necessarily mean that the tracking result is poor, only
that Tracker couldn’t reliably match the pattern from one keyframe to the next.
2. Move the tracking anchor to the first of the poor frames, just about the center of the image in the
example.
3. Tracker defaults to adding and deleting keyframes automatically when certain conditions are met,
but you can toggle these features on and off in the Properties Tracker > Settings tab Keyframe
Tracking controls:
• re-track when keyframe is moved - disable this control if you plan to manually position
multiple keyframes before re-tracking.
• re-track on creation of a new keyframe - disable this control when placing multiple new
keyframes, such as when the track encounters problem areas.
• create new key when track is moved - you could disable this control if you wanted to use the
zoom window to examine the sequence more closely without triggering a re-track.
• auto-tracks delete keyframes - when this control is enabled, custom keyframes are deleted
during automatic re-tracking.
4. Using the zoom window, drag the anchor to the correct location of the grabbed pattern.
Tracker attempts to recalculate the track by including your correction.
5. Advance the playhead to the next poor keyframe and repeat until the track is complete.
USER GUIDE
629
Keyframe Tracking | Dealing with Occlusions
2. Play though the sequence to identify a likely offset point - a pattern that remains equidistant from
the last keyframe.
3. Hold down Ctrl/Cmd and drag the tracking anchor to the offset position.
The offset amount is recorded in the Tracks list and highlighted in yellow in the Viewer.
4. Continue tracking as normal by clicking the track backward (Z) or forward (V) button.
Tracker combines the two tracks into a single continuous track.
5. Use the clear backward and forward buttons to clear poor keyframes. Click clear all to
remove all selected tracks and keyframes, excluding manually placed keyframes.
Note: You can reset tracking anchor pattern and search areas by clicking .
USER GUIDE
630
Applying Tracking Data | Applying Tracking Data Using Tracker’s Controls
Stabilizing Elements
The Tracker node’s controls let you remove motion, such as unwanted camera shake, from the node’s
input clip. You can use a single track to stabilize horizontal and vertical motion across the 2D plane,
or two or more tracks to eliminate rotation and scale.
1. Create the track(s) you want to use for stabilizing the footage:
• If you’re using a single track, ensure T is selected in the Tracks list, so that Tracker only calculates
translation.
On the Transform tab, select transform > stabilize 1-pt to lock the Filter to Keys. This filter
produces the best results when using a single track.
• If you’re using more than one track in the Tracks list, select the transformations that you want
Tracker to calculate when stabilizing the image, Translation, Rotation, and/or Scale.
On the Transform tab, select transform > stabilize.
2. Set the reference frame if you don’t want to use the first frame as the transform control frame.
3. Use the smooth controls to average frames together to smooth the transforms applied.
For example, if you’re stabilizing using more than one track, you might average frames together
for translation and rotation by entering the number of frames in the t and r fields.
4. Select the required filter. See Choosing a Filtering Algorithm for more information.
Nuke stabilizes the footage, locking its elements to the same position within the composite.
Note: You can export the transform information to a linked or baked Transform node by
selecting the required type from the Export dropdown and clicking create.
USER GUIDE
631
Applying Tracking Data | Applying Tracking Data Using Tracker’s Controls
Match-moving Elements
You can use the Tracker node’s controls to apply the tracked motion to another image, that is, to
match-move an image.
1. Use a Tracker node to track the feature you intend to match.
2. Copy the Tracker node and paste it after the footage you want to match-move.
3. In the second Tracker node’s controls, go to the Transform tab.
4. From the transform dropdown menu, select match-move.
5. Set the reference frame if you don’t want to use the first frame as the transform control frame.
6. Use the smooth controls to average frames together to smooth the transforms applied.
For example, if you’re using more than one track, you might average frames together for
translation and rotation by entering the number of frames in the t and r fields.
7. Select the required filter. See Choosing a Filtering Algorithm for more information.
Nuke applies the tracked movement to the footage you want to match-move. A simple script
might appear as follows, where Tracker2 is a copy of Tracker1:
Note: You can export the transform information to a linked or baked Transform node by
selecting the required type from the Export dropdown and clicking create.
USER GUIDE
632
Applying Tracking Data | Applying Tracking Data Using Tracker’s Controls
To remove jitter:
1. Create the tracks you want to use for jitter removal.
2. In the Tracker node’s controls, go to the Transform tab.
3. From the transform dropdown menu, select remove jitter.
4. Set the reference frame if you don’t want to use the first frame as the transform control frame.
5. Use the jitter period to average together frames, adjusting the jitter to achieve the required
stability.
6. Use the smooth controls to average frames together to smooth the transforms applied.
For example, if you’re removing jitter using more than one track, you might average frames
together for translation and rotation by entering the number of frames in the t and r fields.
7. Select the required filter. See Choosing a Filtering Algorithm for more information.
8. Nuke removes jitter from the footage, locking its elements to the same position within the
composite.
Note: If you want to transfer jitter to another sequence, copy the Tracker node and paste it
after the footage to which you want to add jitter, then follow steps 3-7 above.
USER GUIDE
633
Applying Tracking Data | Applying Tracking Data Using Linking Expressions
This section explains the basic procedure for applying tracking data to any node via linking
expressions.
3. Ctrl+drag (Cmd+drag on a Mac) from the source control animation button to the destination
control animation button.
When you release, the destination control will turn blue, indicating an expression has been applied.
In this case, the drag and drop action has created a linking expression resembling the following
example:
Tracker1.tracks.1.track_x
Tip: You can also apply tracking (or other transform) data to individual RotoPaint,
SplineWarp, or GridWarp points (this is sometimes called per vertex tracking). To do so,
Ctrl/Cmd+drag and drop the track’s animation button on a RotoPaint, SplineWarp or
GridWarp point in the Viewer.
You can add other components to this linking expression as necessary. For example, you might add a
spatial offset to the linking expression by subtracting out the initial frame’s tracking values, in which
case the final expression would resemble the following:
Tracker1.tracks.1.track_x-Tracker1.tracks.1.track_x(1)
USER GUIDE
634
Applying Tracking Data | Transforming Masks with Tracking Data
See Expressions for more information. Once you enter the linking expression, the destination
parameter turns blue.
Once you have some solid tracking data, you can drive a roto shape without keyframing individual
points:
1. Track a feature in the area you intend mask. In the example, the figure's head serves as the
driving point for the matte.
USER GUIDE
635
Applying Tracking Data | Transforming Masks with Tracking Data
2. Add a Roto node to the script (keyboard shortcut O) and draw the shape you intend to drive with
the tracking data. In this case, we don't need to be too accurate as we're creating a garbage matte.
3. In the Roto properties panel, click the Transform tab and select the matte in the shapes list.
4. Right-click the translate control's animation icon and then select Link to > Tracker 1 > track
1.
The Tracker's track_z and track_y keyframes are copied into the Roto's translate control,
applying the same translate and offset to the matte shape.
5. To compensate for this, select the Root item in the shape list and reposition the Roto shape
correctly using the transform handle in the Viewer.
USER GUIDE
636
Applying Tracking Data | Using the CornerPin2D Node
First, use the Tracker to calculate four separate tracks, one for each corner of the feature.
USER GUIDE
637
Applying Tracking Data | Using the CornerPin2D Node
Next, attach a CornerPin2D node to the image sequence you want to use as the replacement for the
feature, and apply the tracking data. This remaps the image sequence’s corners to the correct
positions over time. You can create the node manually, or by using Tracker’s Export dropdown.
The final step is to layer the result over the original element.
The steps below summarize the use of Tracker’s Export CornerPin2D workflow.
USER GUIDE
638
Applying Tracking Data | Using the CornerPin2D Node
USER GUIDE
639
Transforming Elements
These pages explain how to perform a range of 2D and 2.5D spatial transformations. You learn how
to apply geometric transformations (including translations, rotations, scales, and skews) to elements,
and how to add motion blur using the nodes in the Transform menu.
USER GUIDE
640
Transforming in 2D | Using the 2D Transformation Overlay
Transforming in 2D
This section describes how to apply 2D transformations including translations, rotations, scales, and
skews to elements using a number of Nuke nodes. All transforms, except translations, change the
size of the image bounding box.
Tip: You can enable a warning to indicate when the bounding box is greater that the format
in Nuke's Preferences. See Bounding Box Warnings for more information.
Transformation overlay.
• A) Drag to skew the frame (see Skewing Elements).
• B) Drag to scale the frame uniformly - simultaneously on x and y (see Scaling Elements).
• C) Drag to translate the frame (seeTranslating Elements).
Ctrl/Cmd+drag to reposition the pivot point (the point that acts as the center to transformation
operations).
• D) Drag to scale the frame on x.
USER GUIDE
641
Transforming in 2D | Translating Elements
• E) Drag to rotate the frame around the pivot point (see Rotating Elements). The transform overlay
snaps to typical values. To prevent the snapping, press Shift while dragging.
• F) Drag to scale the frame on y.
Translating Elements
To translate an element is to slide it on x or y.
You can use the Transform, TransformMasked, or Position nodes to translate elements.
TransformMasked is identical to Transform except that it offers controls for assigning a mask to
protect certain areas of the frame from translations. For the sake of brevity, this chapter only
discusses the use of Transform, but keep in mind you can use TransformMasked any time you need
to process a transformation through a mask. The mask controls work in the same fashion as those
described in Masking Color Corrections.
USER GUIDE
642
Transforming in 2D | Rotating Elements
Rotating Elements
To rotate an element is to spin it around the pivot point.
USER GUIDE
643
Transforming in 2D | Scaling Elements
Scaling Elements
To scale an element is to resize it by adding (upsampling) or removing (downsampling) pixels.
Nuke offers several nodes for scaling elements. Transform is designed primarily for scaling the
background plate up or down in a composite. The scaling functions for transform are described
below.
Reformat is designed for writing out elements with specific resolutions and pixel aspect ratios.
Adding Motion Blur describes the use of this node.
• Click scale parameter’s channel chooser to reveal the x and y fields, then increment or
decrement each individually.
USER GUIDE
644
Transforming in 2D | Skewing Elements
• Or drag any of the four points on the circle-portion of the transformation overlay. The top and
bottom points scale on y; the left and right points, on x.
Skewing Elements
To skew an element is to rotate its pixel columns around the pivot point.
USER GUIDE
645
Transforming in 2D | Bounding Box Warnings
To make it easier to see the state of your bounding box, Nuke can display visual warnings on the
nodes that affect the bounding box. To enable the warnings, in Nuke's Preferences under Panels >
Node Graph, enable Bounding Box Warning:
• red rectangle with dotted stroke - the indicated node creates a bounding box greater than the
format.
• dotted stroke without the red rectangle - the bounding box size is greater than the format at the
indicated node, but the bounding box size has been set by an upstream node.
USER GUIDE
646
Transforming in 2D | Bounding Box Warnings
The bbox warning threshold controls how far past the edge of the format the bounding box can
expand before the warning is displayed in the Node Graph. For example, if you're working with UHD_
4K footage and the default 10% threshold, you can expand the bounding box horizontally by 384
pixels before the warning is displayed.
Tip: You can set the color of the warning rectangle in the Preferences under Panels >
Node Graph > Bounding Box Warning.
USER GUIDE
647
Choosing a Filtering Algorithm | Bounding Box Warnings
The solution is to apply a more sophisticated filtering algorithm to determine the values of remapped
pixels - one that takes into account, in some fashion, the values of neighboring pixels.
For example, applying Nuke’s cubic algorithm to the above rotation, results in a softer, less jagged
edge:
When executing spatial transformations, Nuke lets you select from the filtering algorithms described
in the table below.
Note that the curves shown in the table plot the manner by which each algorithm samples from
neighboring pixels. The center of each curve represents the value of the remapped pixel itself, and
the rising and falling portions of each curve represent the amount of sampling that occurs across a
five pixel radius.
Tip: When using filters that employ sharpening, such as Rifman and Lanczos, you may see
a haloing effect. Some nodes, such as Transform and Tracker, include a clamp control to
correct this problem.
USER GUIDE
648
Choosing a Filtering Algorithm | Bounding Box Warnings
USER GUIDE
649
Choosing a Filtering Algorithm | Bounding Box Warnings
USER GUIDE
650
Choosing a Filtering Algorithm | Bounding Box Warnings
USER GUIDE
651
Choosing a Filtering Algorithm | Bounding Box Warnings
Note: Lanczos and Sinc filters exhibit haloing as the filter becomes sharper.
Note: The numbers appended to the filter name denote the width of the filter, similar to the
naming scheme used by PRMan. See http://www.renderman.org/RMR/st/PRMan_
Filtering/Filtering_In_PRMan.html for more information.
USER GUIDE
652
How Nodes Concatenate | Bounding Box Warnings
For example, if you have three Transform nodes in a row, instead of performing each transformation
separately and filtering the input image three times, Nuke combines the transformations into one
operation and only filters the image once. As filtering unavoidably destroys some image detail, it’s
important to concatenate as many nodes as possible in order to preserve image quality.
USER GUIDE
653
How Nodes Concatenate | Bounding Box Warnings
In order to concatenate, the concatenating nodes have to be adjacent. So, if you have a node that
doesn’t concatenate (a Crop node for example) between two concatenating nodes (for example
Transform nodes), no concatenation occurs.
If you’re using more than one filtering method in the nodes that concatenate, the last filtering method
in the series of concatenating nodes is applied on the result.
As a rule of thumb, the only nodes that concatenate are usually transform nodes. In addition to these,
Dot, NoOp, Switch nodes and disabled nodes do not break concatenation.
Color nodes do not concatenate because Nuke works in a 32-bit float, which is enough to avoid
banding and visible round-off errors in color.
Please be aware that some transform nodes do not concatenate and should not be interspersed with
those that do. There are also transform nodes that receive concatenation, but don’t pass anything on.
USER GUIDE
654
How Nodes Concatenate | Bounding Box Warnings
NoOp IDistort
Switch LensDistortion
Phong
Sparks
Specular
SphericalTransform
SplineWarp
STMap
Tile
TransformMasked
USER GUIDE
655
Applying Core Transformations in 2.5D | Using the 3D Transformation Handles
Just to be clear, the Card3D node’s transformations are not truly 3D, but rather what is sometimes
called “2.5D” - meaning that you can move an element back on the z axis, but doing so does not
convey the sense that it is behind or in front of another element. 2.5D transformations are useful for
tasks like “cheating” the perspective of an element or “faking” a camera zoom.
Remember, however, that Nuke doesn’t limit you to 2.5 dimensions. If you need true 3D capabilities,
you can construct a 3D scene. See 3D Compositing for more information.
Press Ctrl/Cmd while dragging to rotate the frame on any axis (see Rotating Elements).
• B) Drag to translate the frame on the z axis.
USER GUIDE
656
Applying Core Transformations in 2.5D | Adding a Card3D Node
Translating Elements
When using the Card3D node, you can translate elements on z in addition to the other axes.
OR
Rotating Elements
When using the Card3D node, you can rotate elements around the x and y axes, in addition to the z.
This is useful for cheating the perspective.
USER GUIDE
657
Applying Core Transformations in 2.5D | Scaling Elements
Scaling Elements
To scale an element using the Card3D node:
1. Position the pivot point as necessary by incrementing or decrementing the pivot x, y, and z fields
to move the axis in any direction.
Alternatively, you can position the pivot point by pressing Ctrl/Cmd+Alt while dragging.
2. To scale the frame simultaneously on x, y, and z, increment or decrement the uniform scale
field.
3. To scale the frame asymmetrically, increment or decrement the scale x, y, and z fields.
Skewing Elements
Whereas the Transform node lets you rotate pixel columns only around the z axis, Card3D permits
you to so around all three axes.
USER GUIDE
658
Applying Core Transformations in 2.5D | Specifying the Order of Operations
Alternatively, you can position the pivot point by pressing Ctrl/Cmd+Alt while dragging.
2. Increment or decrement the skew x, y, and z fields to rotate the pixel columns around the
corresponding axes.
To choose a filter algorithm, select the desired algorithm from the filter dropdown menu.
USER GUIDE
659
Adding Motion Blur | To Add Motion Blur
These controls allow you to create motion blur without adding a separate node for it. The output is
similar to a TimeBlur node (see Applying a TimeBlur Filter), but rather than averaging the results of
several whole images computed at steps over the shutter period, a number of samples are taken at
many random times over the shutter period. This effectively gives many more "steps" and thus a
smoother-looking result for a smaller total number of computations.
When using several of these nodes in a row, the motion blur is concatenated, and the last transform
in the chain defines the motion blur applied.
USER GUIDE
660
Adding Motion Blur | To Add Motion Blur to an Image Rendered in a Third-party Application
2. Create a transform and animate it. For instructions on how to do this, see the Using the
Compositing Environment chapter.
3. In the motionblur field, enter the sampling rate. This affects the number of times the input is
sampled over the shutter time. The higher the rate, the smoother the result. In many cases, a
value of 1.0 is enough. Setting the value to 0 produces no motion blur.
4. In the shutter field, enter the number of frames the shutter stays open when motion blurring.
For example, a value of 0.5 would correspond to half a frame. Increasing the value produces more
blur, and decreasing the value less.
5. From the shutteroffset dropdown menu, select when the shutter opens and closes in relation to
the current frame value:
• to center the shutter around the current frame, select centered. For example, if you set the
shutter value to 1 and your current frame is 30, the shutter stays open from frame 29.5 to 30.5.
• to open the shutter at the current frame, select start. For example, if you set the shutter value
to 1 and your current frame is 30, the shutter stays open from frame 30 to 31.
• to close the shutter at the current frame, select end. For example, if you set the shutter value to
1 and your current frame is 30, the shutter stays open from frame 29 to 30.
• to open the shutter at the time you specify, select custom. In the field next to the dropdown
menu, enter a value (in frames) you want to add to the current frame. To open the shutter
before the current frame, enter a negative value. For example, a value of -0.5 would open the
shutter half a frame before the current frame.
VectorBlur expects the values from your input plates to be pixel space screen units, in other words
one unit should be equal to one pixel. Nuke uses this information to calculate the distance that one
pixel travels between two frames. So, in order to get a working motion blur result, you should make
sure Nuke is getting correct values to work with. You might have files using varying values, particularly
if you’ve used a third party application to create your input files. The following is an example of
creating motion blur with the VectorBlur node using files written from a third party application.
USER GUIDE
661
Adding Motion Blur | To Create Motion Blur with the VectorBlur Node
3. Connect the VectorBlur node to the ShuffleCopy node. You also need to tell VectorBlur which
motion vector channels to use, so change the uv channels control to motion.
4. If your motion vectors have been normalized to be between 0 and 1, you can set the u and v
values in the add control to -0.5 to offset the motion blur center. This is usually necessary for any
motion vectors stored in an integer file format like 16 bit TIFF or TARGA. Vectors that go to
negative x or y directions use half the numbers in the range and vectors that go positive use the
other half.
5. With the multiply and offset controls, you can further adjust the amount of motion blur you want
to produce. The offset value allows you to correct for normalization of your vector values, and the
multiply value controls the magnitude of them.
6. If the vectors have been premultiplied with the alpha channel, their value is not accurate in places
where the alpha is not 1.0. You’ll want to check the alpha checkbox to use the input image’s alpha
channel to help VectorBlur to deal with motion vectors that have been premultiplied by this alpha
channel.
USER GUIDE
662
Adding Motion Blur | To Create Motion Blur with the VectorBlur Node
USER GUIDE
663
Replicating the Input Image Across the Output | To Use the Tile Node
USER GUIDE
664
Replicating the Input Image Across the Output | To Use the Tile Node
USER GUIDE
665
Warping Images
Nuke’s GridWarp and SplineWarp nodes allow you to distort elements in an image and morph one
image into another. There are other types of warp available in Nuke, but in this chapter, we focus on
the GridWarp and SplineWarp nodes.
Quick Start
Here's a quick overview of the workflow:
1. For both warping and morphing, you can use either GridWarp node (Transform > GridWarp) or
the SplineWarp (Transform > SplineWarp). Working with the GridWarp is sometimes slightly
faster, whereas the SplineWarp node allows for more fine adjustment. With both nodes, you first
connect your source image to the src or A input and, if morphing, the destination image to the
dst or B input. GridWarp also allows you to connect an additional background image to the bg
input.
2. Depending on which node you’re using, you can then go on to set your source and destination
points, and tweak them until you’re happy with your results. For more information, see Warping
and Warping an Image Using the SplineWarp Node.
3. If you’re looking to morph an image into another, you can do this with both warper nodes as well.
For more information, see Morphing and Morphing One Image into Another Using the
SplineWarp Node.
4. If you are warping or morphing moving images, rather than stills, have a look at Transforming
and Animating Warps and Morphs.
USER GUIDE
666
Warping | Warping Images Using the GridWarp Node
Warping
Warping refers to manipulating an image so that elements in the image are distorted. Unlike many of
the transformations described under Transforming Elements, warps are transformations that only
affect some of the pixels in an image rather than all of them. For example, you might make an
animal’s eyes bigger or a person’s smile wider without affecting the rest of their features.
This is not to say that the pixels around the area you are moving do not move with the area. They do,
because accommodating the change this way often produces more realistic results. However, the
distortion lessens the further you get from the moved pixels. You also have some control over which
pixels are moved and which are not, and can isolate the warp to a small area. Still, in an ideal
situation, the subject you are going to warp is a subject you can key out or rotoscope to isolate it
from its background before you create the warp. This way, you can be sure that the background stays
intact.
In addition to performing creative manipulations on the shapes of the subjects in your images, you
can also use warping to simulate different types of film or video lenses or to remove unwanted lens
distortions.
Below, we discuss how to warp images, first using the GridWarp node and then the SplineWarp node.
Finally, we also teach you to animate the warps. Again, we start with the GridWarp node and then
show you how to do the same with the SplineWarp node.
The GridWarp node also includes controls for animating the warp and selecting the level of filtering
used to remove any artifacts the warp may have caused.
USER GUIDE
667
Warping | Warping Images Using the GridWarp Node
3. When the GridWarp properties panel is open, by default the destination grid overlay appears in
the Viewer. You can show or hide the source and destination grids using the and buttons in
the Viewer toolbar or the visible checkbox in the GridWarp tab. Use the destination grid to define
the warp areas.
Note: GridWarp automatically attempts to resize the grids to the image size as long as you
have not modified any of the control points.
If the grids are not the same size as the input image, click the Resize to image buttons
under both Source Grid and Destination Grid.
USER GUIDE
668
Warping | Warping Images Using the GridWarp Node
4. Use the Viewer tools to control the following aspects of the grids:
Note: You can use the copy and paste buttons in the grid controls to copy control
point keyframes between the source and destination grids.
When enabled, the grids shown in the Viewer depends on the output setting.
For example, if output is set to source warped, only the destination grid
appears in the Viewer.
When enabled, the source grid is displayed in the Viewer. This control can be
overridden by the button.
When enabled, the destination grid is displayed in the Viewer. This control can
be overridden by the button.
When enabled, changes to points in a grid are automatically keyed. You can
disable this and set your keyframes manually, which is particularly useful if you
intend to use the Curve Editor. See Animating Warps.
ripple Rippling keyframes allows you to adjust the position of a stroke/shape point on
one frame and have that same relative adjustment applied to the point across
all frames or a specified range of frames.
• off - ripple edit is disabled.
• all - ripple all frames in the sequence.
• from start - ripple frames from the first frame to the current frame.
• to end - ripple frames from current frame to the last frame.
• range - ripple all frames within the from and to fields.
label points When enabled, points selected on the grid are labeled x,y measured from the
USER GUIDE
669
Warping | Warping Images Using the GridWarp Node
origin.
When enabled, a low resolution preview displays when points are moved on a
grid. Once the render is complete, the low-res image is updated.
divisions Enter the number of divisions required in the field to modify the grid. The
number of divisions must be between 3 and 20.
You can also click and hold the slider to overlay a preview of the subdivisions.
GridWarp attempts to modify the grid based on the current control point
distribution.
Note: When using the preview, accuracy may suffer at lower divisions
and additional smoothing may be required at higher divisions.
Click to enable Edit mode. Select individual points, multiple points using shift-
click, or marquee groups of points.
Edit mode also allows you to adjust the curve between points to produce
distortion.
Click to enable Insert mode. Click on a horizontal line to add a vertical line to
the grid and vice versa.
Click to enable Delete mode. Click on a grid line to remove it from the Viewer.
Click to enable Draw Boundary mode. The cursor changes to a crosshair and
you can drag a marquee in the Viewer to create a custom grid.
Click to subdivide the grid columns across the currently selected area.
Click to subdivide the grid rows across the currently selected area.
Click to subdivide the grid columns and rows across the currently selected
area.
USER GUIDE
670
Warping | Warping Images Using the GridWarp Node
5. Modify the grid around the area you want to warp. Usually, you want the grid to conform to the
subject of the source image. For example, if you are warping an animal’s eyes, you need to create
grid lines that follow the edges of the eyes.
Note: If you have both grids visible when you move a point, and the same point for both
grids are on top of each other, both points are moved and you won’t see any distortion.
You can use the grid lines to isolate the areas you do not want to warp. You do this by adding grid
lines between the area you intend to warp and the area you don’t want to change.
To move several points together, draw a marquee around them and use the transformation
overlay that appears.
USER GUIDE
671
Warping | Warping Images Using the GridWarp Node
You can also use the Draw Boundary tool in the Viewer to quickly set a user defined grid. Click
Draw Boundary and draw a marquee over the required area of the image.
Note: You can also use the Curve Editor to edit curves by right-clicking a control point and
selecting Curve Editor > points, tangents, or both.
The curves appear in the Dope Sheet as long as the GridWarp Properties panel is open.
6. In the areas where you want to warp the image, drag the points on the grid to a new position.
When you click on a point, the point changes color to indicate whether it’s in focus (green by
USER GUIDE
672
Warping | Warping Images Using the GridWarp Node
default) and whether it has an expression set (red by default). You can change the default colors
on the Viewers tab in the Preferences.
The pixels in these areas are moved in the direction you moved the points. Pixels in the nearby
areas are also moved to accommodate the change, but the distortion lessens the further you get
from the repositioned points. If you don’t want a nearby area distorted, add more grid lines
between the area and the points you want to move before you drag the points to a new location.
Tip: You can nudge selected control points by a single pixel using the numeric pad 4 and 6
to nudge left and right, or 8 and 2 to nudge up and down.
Holding down Shift and using the numeric pad moves the selected points by 10 pixels, for
example, Shift+6 moves the selected points 10 pixels to the right.
7. To better see what the warped image looks like, press Q on the Viewer to toggle the overlay off.
USER GUIDE
673
Warping | Warping Images Using the GridWarp Node
To compare the original and warped images, press D on the GridWarp node to disable and enable
it. If you see changes in the areas you don’t want to warp, go back to modifying the grid.
8. If necessary, animate the grid to match any movement in the source image. For more information
on how to do this, see Animating Warps.
9. You can adjust the controls described in the following table to enhance your results.
GridWarp Tab
mask Connect a mask input and set the channel to use as a mask. By default, the
mask is limited to the non-black areas of this channel.
background The warped image is rendered on top of an unwarped background. This control
sets what to use as that background:
• on black - render the warped image on top of a constant black image.
• on src - render the warped image on top of the image connected to the src
input of the GridWarp node.
USER GUIDE
674
Warping | Warping an Image Using the SplineWarp Node
• on dst - render the warped image on top of the image connected to the dst
input of the GridWarp node.
• on bg - render the warped image on top of a background image connected to
the bg input of the GridWarp node.
background mix Blends between the output of the GridWarp node (at 0) and whatever you have
selected from the background dropdown menu (at 1).
Render Tab
submesh Sets the number of subdivisions that are created between Bezier curves in the
resolution grid. The higher the value, the more accurate the distortion between the grid
lines, but rendering time increases.
filter Select the appropriate filtering algorithm (see Choosing a Filtering Algorithm).
Options Tab
USER GUIDE
675
Warping | Warping an Image Using the SplineWarp Node
label points When enabled, points selected in the Viewer are numbered
sequentially.
hide transform handle When enabled, the transform handle is hidden when a
selection is made.
hide transform handle When enabled, the transform handle is hidden when a
when moved selection is moved.
constant selection When enabled, clicking in the Viewer does not deselect the
current shape(s).
USER GUIDE
676
Warping | Warping an Image Using the SplineWarp Node
output A When enabled, output the image attached to the A input and
any shapes in the curves list labeled with A.
output A warped When enabled, output the image attached to the A input
warped by any shapes in the curves list labeled with A.
output AB morph When enabled, output the morphed A and B inputs and any
shapes in the curves list labeled with AB.
output B When enabled, output the image attached to the B input and
any shapes in the curves list labeled with B.
output B warped When enabled, output the image attached to the B input
warped by any shapes in the curves list labeled with B.
show source curves When enabled, joined source curves are displayed in the
Viewer.
show boundaries When enabled, all boundary curves are displayed in the
Viewer.
show hard When enabled, all hard boundary curves are displayed in
boundaries the Viewer.
USER GUIDE
677
Warping | Warping an Image Using the SplineWarp Node
lock Controls the lock state of the selected shape. Locked shapes
cannot be modified.
Select tool Click to enable Select mode allowing you to select points
and shapes, or marquee select multiple points and shapes.
Points tool Click to enable Add mode or toggle between Add, Remove,
Cusp, Smooth, Open/Close, and Remove Destination
modes.
USER GUIDE
678
Warping | Warping an Image Using the SplineWarp Node
Pin tool Click to enable Pin mode. You can use pins as single point
joined curves to create warp or to secure specific points in
place to isolate them from warping.
Join tool Click to enable Join mode or toggle between Join, Reverse,
and Unjoin mode.
5. Select the Draw tool and draw a source, or warp from, curve as shown below.
Note: If you’re creating multiple open splines, draw your first spline and then press Esc or
select another tool to let SplineWarp know you’re done. Reselect Draw to begin drawing
another spline.
USER GUIDE
679
Warping | Warping an Image Using the SplineWarp Node
6. You can modify shapes by adding points using the Add tool and adjusting the tangent handles
that appear around it.
When you mouse over a point, it turns green. Clicking on a point changes its color to indicate it’s
selected (white by default) and whether it has an expression set (red by default). You can change
the default colors on the Viewers tab in the Preferences.
To move several points together, draw a marquee around them and use the transformation
overlay that appears.
To close an open curve or open a closed curve, right-click on a point and select open/close
curve.
To remove a point, right-click on the point and select delete.
Note: You can also use the Curve Editor to edit curves by right-clicking a control point and
selecting curve editor > points or points+tangents.
The curves appear in the Dope Sheet as long as the SplineWarp Properties panel is open.
• draw a destination curve and use the Join tool to connect the two curves.
OR
• right-click a point on the source curve and select duplicate in A and join to produce the
destination curve.
8. Select the destination curve and drag points or the entire shape to a new position. The pixels in
these areas are warped in the direction of movement.
USER GUIDE
680
Warping | Warping an Image Using the SplineWarp Node
buttons.
Using the root, layer, and pair warp controls, you can affect different elements as required:
• root warp - affects warp globally, irrespective of layer and pairing.
• layer warp - affects warp on the selected layers only, irrespective of pairing. This control is
disabled if anything other than layers is selected.
• pair warp - affects warp on the selected pairings only. This control is disabled if anything other
than pairs is selected.
Note: The pair warp value is multiplied by the layer warp value, which is in turn multiplied
by the root warp value.
11. If necessary, animate the source warped shapes to match any movement in the source image. For
more information on how to do this, see Animating Warps.
12. You can adjust the controls described in the following table to enhance your results.
USER GUIDE
681
Warping | Warping an Image Using the SplineWarp Node
SplineWarp tab
crop to format When disabled, the input image is not cropped to the Project Settings > full
format size. As a result, warping can introduce pixels from the image outside
the format size, rather than black.
bbox boundary When enabled, a boundary curve is added around the input format, limiting
curve warp at the edges of the image.
Render Tab
curve resolution Adjusts the accuracy of the warp/spline match. Higher values increase accuracy,
but sacrifice speed and vice versa. For example, with open splines at low curve
resolution, image tearing may occur. You can raise the curve resolution value
to compensate for tearing, but the render times increase.
boundary curve Adjusts the number of interpolated points on boundary and hard boundary
resolution curves. Higher values stop the warp from filtering through the boundary curves
but sacrifice speed, and vice versa.
preview Improves the accuracy of the preview at higher values and the rendering speed
resolution at lower values.
USER GUIDE
682
Warping | Warping an Image Using the SplineWarp Node
filter Select the appropriate filtering algorithm (see Choosing a Filtering Algorithm).
Note: Boundaries only affect the input they are drawn on, A or B, not both.
• Boundary - generally open splines helping to control warp rather than eliminate it.
To define a boundary for an existing curve, enable boundary in the curves list, as shown below.
Using the example curves from Mr. Lion above, you could control the warp by adding a curve and
designating it as a boundary:
USER GUIDE
683
Warping | Warping an Image Using the SplineWarp Node
To define a hard boundary for an existing shape, enable hard boundary in the curves list, as shown
below.
The effect of a hard boundary on a warp is quite distinct - the hard boundary, colored white by
default, limits the warp effect to entirely within the closed shape:
• Pins - placing a pin creates a single point source and destination curve, effectively limiting warp in a
very localized way.
The effect of a pin on a single joined curve is shown below. The warp direction is shown on the left
and the pin’s effect on the right.
USER GUIDE
684
Warping | Warping an Image Using the SplineWarp Node
USER GUIDE
685
Morphing | Warping an Image Using the SplineWarp Node
Morphing
Morphing refers to dissolving two images together so that the subject of one image seems to change
shape and turn into the subject of the other through a seamless transition. A morph can be easily
noticeable or very subtle. An example of a noticeable morph would be a man turning into a woman
or one animal turning into another, whereas a transition from an actor to his stunt man would result
in a much more subtle morph.
Morphing can be a time-consuming task, but it can be made easier by good advance planning of the
shots. The more similar the characteristics, position, and movement of the subjects you want to
morph are, the easier it is to morph them together. If the position and the movement of the subjects
do not match, however, you can try to reposition and retime the clips before morphing them
together. To do so, use the nodes described in Transforming Elements and Temporal Operations. You
can also use the Tracker and PlanarTracker nodes to track the features you want to morph over time
or to stabilize your clips before morphing them together. See Transforming Warps for more
information.
Below, we first discuss morphing images using the GridWarp node and then using the SplineWarp
node.
USER GUIDE
686
Morphing | Morphing One Image into Another Using the GridWarp Node
5. To make the grids the same size as the input images, click the Resize to Image buttons under
both Source Grid and Destination Grid.
6. In the GridWarp Settings controls, set output to source to display the source image and grid.
7. Adjust the grid to follow key features on the source image. For example, if you’re morphing an
animal, you might consider the eyes, nose and mouth.
USER GUIDE
687
Morphing | Morphing One Image into Another Using the GridWarp Node
8. In the GridWarp Settings controls, set output to destination to display the destination image
and grid.
Note: If the source and destination images are similar, you can copy the source grid onto
10. In the GridWarp Settings controls, set output to morph to display both grids and activate the
warp and mix sliders.
USER GUIDE
688
Morphing | Morphing One Image into Another Using the SplineWarp Node
11. Scrub to the frame where you want the morph to begin. Bring the warp slider down to 0 (the
source image). Click on the animation button and select Set key. Then, scrub to the frame
where you want the morph to end and set warp to 1 (the destination image).
12. Animate the mix control in the same way. Scrub to the frame where the morph starts, and set mix
to 0 (the source image). Click the animation button and select Set key. Scrub to the frame where
the morph ends, and enter 1 (the destination image) as the mix value.
Play through the sequence in the Viewer and you’ll see that the source image is morphed into the
destination image.
5. In the SplineWarp node’s controls, switch output between A and B or click and in the
Viewer tools. You should see both images in the Viewer.
6. Identify some features that are similar in the source and the destination images. For example, if
you are morphing together images of people or animals, these features might include their eyes,
noses and mouths as well as the outlines of their faces and heads.
7. Switch to input A to draw curves around the key features you identified in the previous step. For
more information on how to create the curves, see Warping an Image Using the SplineWarp
Node.
USER GUIDE
689
Morphing | Morphing One Image into Another Using the SplineWarp Node
You may find it useful to name the entries in the curves list, left_eye, right_eye, etc. Meaningful
names can help you later on when you’re using the Join tool to link the source and destination
shapes.
8. Switch to input B and draw curves in a similar fashion. Draw the same amount of curves, on
similar features, to make the morph as accurate as possible.
9. Switch the Viewer to output ABmorph , which displays both sets of curves, and activate Join
Note: You can invert the source and destination shapes using the Reverse tool.
USER GUIDE
690
Morphing | Morphing One Image into Another Using the SplineWarp Node
As you join shapes, the curves list updates showing the linked pairs.
11. Scrub to the frame where you want the morph to begin. Bring the mix slider down to 0 (input A).
For example, the monkey-lion morph demonstrated previously could be merged with a sequence,
replacing a face with a monkey face that is morphed into a lion over time.
USER GUIDE
691
Morphing | Morphing One Image into Another Using the SplineWarp Node
Note: The cookie-cutter only works with closed shapes from the curves list.
1. Designate a pair of closed shapes as cookie-cutters by clicking the cookie-cutter icon in the curves
list.
In this instance, enabling cookie-cut for the monkey’s head, m_head, also designates the lion’s
head, l_head, as a cookie-cutter shape.
2. Use the output mask dropdown to select the channel where the traveling mask is stored, or use
the mask_splinewarp.a default.
3. Animate the morph to follow the required background element as described in Transforming and
Animating Warps and Morphs.
4. Finally, merge the output of the SplineWarp node with your sequence. A simple script might
appear as follows:
USER GUIDE
692
Morphing | Morphing One Image into Another Using the SplineWarp Node
You can confirm the presence of the traveling mask by selecting the output mask channel in the
Viewer dropdown and then pressing M to display the Mat channel. You should see an
automatically created mask that matches the morphed shape.
USER GUIDE
693
Transforming and Animating Warps and Morphs | Transforming Warps
Transforming Warps
You can transform grids and splines in the same way as any other element in Nuke (see Temporal
Operations), but you can also link control points to the Tracker and PlanarTracker nodes to automate
any transforms you require. Once you have a suitable track, you can use the animation data to
control points on grids and curves.
USER GUIDE
694
Transforming and Animating Warps and Morphs | Transforming Warps
5. Copy and paste the extra matrix animation from RotoPaint to the GridWarp/SplineWarp extra
matrix.
6. Play through the sequence to check that the grid or splines follow the plane.
Note: Control points are indexed starting from the bottom left 1.1, in x.y order, and tangent
points are labelled 0, 1, 2, and 3 corresponding to north, south, east, and west respectively.
It’s worth mentioning that in order to get the true position of a tangent, not its offset value, you need
to concatenate the pos and tangent expressions. For example:
GridWarp3_1.destination_grid_col.2.2.pos.x + GridWarp3_1.destination_grid_col.2.2.tangent.4.x
USER GUIDE
695
Transforming and Animating Warps and Morphs | Animating Warps
Note: You can only modify tangent positions using the Curve Editor.
Animating Warps
In the GridWarp and SplineWarp node’s properties panels, there are controls for animating both the
source and the destination grids or shapes. Here, we first look at the GridWarp node and then the
SplineWarp node. The instructions assume you know how to warp a still image using these nodes (if
not, refer to Warping and Warping an Image Using the SplineWarp Node).
add key button under Source Grid. This saves the current grid as a key shape.
2. Move to a new frame and adjust the source grid accordingly. A new key shape is set automatically.
3. Repeat the previous step as necessary. If you need to delete a key shape, scrub to the frame
where you set it and click delete key under Source Grid.
4. Hide the source grid and display the destination grid.
5. While viewing the output of the GridWarp node, adjust the destination grid until you are happy
with the warp.
If autokey is enabled, key frames are added every time you adjust the grid. Otherwise, click the
add key button under Destination Grid. This saves the current grid as a key shape. Click the
set button under Destination Grid. The current grid is saved as a key shape.
6. Move to a new frame and adjust the destination grid again. The modified grid is automatically set
as a key shape.
7. Repeat the previous step until you are happy with the animated warp.
add key button with A warped selected. This saves the current shape as a key frame.
2. Move to a new frame and adjust the shapes accordingly. New key shapes are set automatically.
USER GUIDE
696
Transforming and Animating Warps and Morphs | Animating Warps
Repeat the previous step as necessary. If you need to delete a key shape, scrub to the frame
where you set it and click delete key with A warped selected.
You can link all transform types associated with the source shape or be selective, such as all but
extra matrix.
3. In the example, any scale keyframes added to the l_left_nose shape are applied equally to the l_
head shape.
4. If you want to remove a link, click the transform linked toggle for the required shape, select the
link, and click remove link.
USER GUIDE
697
Temporal Operations
This chapter explains the temporal or time-based operations in Nuke. Learn how to distort time (that
is, slow down, speed up, or reverse clips), apply motion blur, and perform editorial operations like
slips, cuts, splices, and freeze frames.
Quick Start
Here's a quick overview of the workflow:
1. If you want to speed up or slow down your clip:
• You can use the Retime node (Time > Retime). If you want, you can also add a FrameBlend
(Time > FrameBlend) node before your retime to create smoother retiming results. For more
information, see Simple Retiming and Interpolation.
• For more advanced retiming operations and adding motion blur, you can use the OFlow node
(Time > OFlow), or if you have a license for NukeX, the Kronos node (Time > Kronos). For more
information, see OFlow Retiming and Kronos.
• Sometimes you’ll want to create speed-up and slow motion within a clip without altering its
actual length. This is called warping and you can use the Retime node (Time > Retime) to do it.
For more information, see Warping Clips.
After retiming your clip, you may need to adjust the script’s global frame range and playback
speed (frames-per-second). For more information, see Global Frame Range and Speed .
2. If necessary, you can use the TimeBlur node to apply motion blur to garbage masks that are
tracked to a fast moving feature. For more information, see Applying a TimeBlur Filter.
3. If you're looking to perform editorial operations:
• You can use the TimeOffset (Time > TimeOffset) and TimeClip (Time > TimeClip) nodes to slip
clips. For more information, see Offsetting and Slipping Clips.
• The FrameRange (Time > FrameRange) node allows you to cut clips. For more information, see
Cutting Clips.
• You can use the AppendClip (Time > AppendClip) node to splice your clips. For more
information, see Splicing Clips.
• Using the FrameHold (Time > FrameHold) node allows you to set the output of a clip or scene to
a particular frame or frame interval. For more information, see Freeze Framing Clips.
USER GUIDE
698
Temporal Operations |
Note: Most temporal operations in Nuke can only be applied to 2D compositions, but the
FrameRange, TimeOffset, and FrameHold nodes are applicable to 3D nodes, such as
geometry.
USER GUIDE
699
Distorting Time |
Distorting Time
Time distortion changes the length of time required to playback a clip in your composite. These
operations generally fall under one of two categories: retiming and warping.
Retiming is the process of slowing playback by adding frames, or accelerating playback by subtracting
frames.
Warping is the process of slowing down, speeding up, or even reversing playback on a clip without
necessarily altering the overall length.
Tip: When working with temporal operations, it helps to attach a Viewer to the retiming or
warping node so you can see the effect of your changes.
USER GUIDE
700
Simple Retiming | To Retime All Frames in a Clip
Simple Retiming
Nuke’s Retime node lets you change the playback time for all the frames in a clip or for range of
frames within the clip. You can also use it to reverse the clip playback. It does this by dropping or
duplicating frames. For higher quality retiming see OFlow Retiming.
For example, if your original clip is 50 frames, but you want to only retime the last half, you would
input 25 for the in point and leave the out point at 50.
3. Check the box for output range and enter the “in” and “out” frames to retime to a specific clip
length.
or
Enter a factor in the speed parameter and Nuke calculates the output range for you. Values
higher than 1 increase playback speed; values less than 1 decrease playback speed.
4. Check the reverse box to invert the selected frame range.
5. Increase the shutter parameter to enable frame-blending.
USER GUIDE
701
Interpolation | Frame-Blending
Interpolation
Time distortions that slow down a clip require the creation of additional, or interpolated, frames. For
example, suppose you want to slow down the collision, shown in the clip below, by a factor of two.
This requires the creation of one interpolated frame for every existing frame in the clip.
Interpolating frames.
The simplest way for Nuke to interpolate is to duplicate existing frames and increase the length of the
clip - this is the default method of interpolation. However, this method can create jittery playback,
especially when the image depicts very fast motion and the clip is retimed to be considerably longer
than its original length. For such cases, Nuke provides different nodes for smoothly interpolating the
frames.
Frame-Blending
The FrameBlend node interpolates frames by generating an additive composite of the frames that
precede and follow it, rather than creating mere copies between the existing frames.
USER GUIDE
702
Interpolation | To Insert a FrameBlend Node
Here is an example of the difference between frame-copy and frame-blend interpolation. In the first
frame of the figure below, you see a copy of the preceding frame. In the second frame, you see a new
image generated by blending the previous and subsequent frames.
The latter method creates “ghosting” around all fast moving features (the window frame and the
pages on the desk, for example). This may look odd when viewed as part of a still frame, but
contributes to smoother motion during actual playback.
You can enable frame-blending by manipulating the shutter value of a retiming node. Higher shutter
values generate more frame-blending. Or, you can insert a FrameBlend node before the temporal
effect you want to influence. The below figure shows an example of frame-blending with the Retime
node.
USER GUIDE
703
Interpolation | To Insert a FrameBlend Node
The output Image count to option saves a floating point alpha image to a channel you specify; the
result indicates the number of images that contributed to each pixel of the matte. To normalize the
alpha, divide the number 1 by the number of frames averaged, and then multiply the alpha channel
by this result. You can also use the inverse of this matte for additional degraining.
USER GUIDE
704
OFlow Retiming | To Retime with OFlow
OFlow Retiming
The OFlow node generates high-quality retiming operations analyzing the movement of all pixels in
the frames and then rendering new “in-between” images based on that analysis. This node can also
add motion blur or enhance the existing motion blur in the image.
Tip: We recommend using NukeX's Kronos node instead, as it includes an improved motion
estimation algorithm. For more information, see Kronos.
USER GUIDE
705
OFlow Retiming | Refining the Results
Tip: Some Nuke users may remember nodes called OpticalFlow and OptiFlow. OFlow
replaces these nodes. It can be used for retiming and adding motion blur, but it does not
have the capability to output motion vectors. To output motion vectors, you could use
VectorGenerator (included in NukeX and Nuke).
For retiming and motionblur, we recommend using the Kronos node instead of OFlow. For
more information, see Kronos.
Note: Motion vectors displayed in the Viewer are added to your output if you don’t turn off
the overlay before rendering.
2. To set the spacing between motion vectors displayed on the Viewer, adjust Vector Spacing. The
default value of 20 means every 20th vector is drawn. Note that Vector Spacing only affects the
Viewer overlay rather than the retimed result.
USER GUIDE
706
OFlow Retiming | Refining the Results
USER GUIDE
707
OFlow Retiming | Refining the Results
USER GUIDE
708
Warping Clips | Refining the Results
Warping Clips
Warping refers to slowing down, speeding up, or even reversing select frames in a clip without
necessarily altering its overall length. Otherwise stated, warps add, subtract, or reverse the temporal
detail in a range of frames within a clip. For example, the figure below depicts a snowmobile clip
(down-sampled to just ten frames for easy representation) that we might want to warp.
One way - in fact, kind of the classic way - to warp this clip would be to play the frames just prior to
the collision at their original rate, the frames involving the collision in slow motion, and the frames
after the collision in fast motion.
You could achieve such a warp by sculpting the curve in Nuke’s TimeWarp curve, which is a part of the
Retime node’s parameters, to look something like the one depicted below.
USER GUIDE
709
Warping Clips | To Warp a Clip
The basic “rules” for editing the warp curve are as follows:
• To slow down motion, decrease the slope of the curve.
• To speed up motion, increase the slope of the curve.
• To reverse motion, create a downward sloping portion on the curve (a dip, in other words).
To Warp a Clip
1. Click Time > Retime to insert a Retime node into your script.
2. Click the TimeWarp tab to reveal the TimeWarp curve.
3. Attach a Viewer to this node, so you can see the effect of your changes.
4. Sculpt the TimeWarp curve according to the rules above. (Ctrl/Cmd+Alt click to insert keyframe
knots on the curve; Ctrl/Cmd+drag to reposition keyframe knots; Ctrl/Cmd+drag to rotate a
keyframe knot control handles.)
5. If you want to enable frame blending on the output, either input a value larger than one in the
Retime node’s shutter parameter, or insert a FrameBlend node prior to the Retime node.
USER GUIDE
710
Global Frame Range and Speed | To Warp a Clip
After you retime a clip in your compositing script, you may need to adjust the script’s global frame
range and playback speed (frames-per-second), to account for the retiming operations.
Select Edit > Project Settings (or press S over the Nuke window) and then enter the new frame
range and fps in the Project settings properties panel.
USER GUIDE
711
Applying a TimeBlur Filter | Applying Motion Blur to a Clip
Time blur is commonly applied to garbage masks that are tracked to a fast moving feature. The time
blur averages the incoming mask image over the shutter period, to better match the motion blur in
the original image and creating a more convincing integration.
Tip: You can also use the Roto and RotoPaint Global Blur controls to achieve the same
results. See Adding Motion Blur for more information on Roto and RotoPaint motion blur.
Tip: You may find that using TimeBlur on all the upstream nodes in your composition can
be unnecessary and very time consuming. In these cases, you can use NoTimeBlur node to
limit the number of nodes to which you’re applying TimeBlur. Just insert the NoTimeBlur
node in your node tree above the TimeBlur and any nodes you want the TimeBlur node to
process.
USER GUIDE
712
Editing Clips | Offsetting and Slipping Clips
Editing Clips
As a node-based system, Nuke doesn’t have a timeline. Nevertheless, you can still perform editorial
operations that you might associate with a timeline. You can slip clips (move them forward or
backward in time), cut them, or splice them to other clips.
Unlike TimeClip, the TimeOffset node can also be used with 3D nodes, for example, if you want to
offset camera times.
Note: It’s not mandatory that you adjust the script’s frame range after slipping the clip. If
you don’t, the Viewer fills the empty frames at the tail of the clip by holding on the last
frame.
Tip: If you are using 3D nodes, such as cards, spheres, or cubes, together with a TimeOffset
node, you can view the object in just a specified frame range by setting the frame range
control for the object, and attaching a Viewer node to the TimeOffset node. Be sure to set
the timeline range to Input to view the offset.
USER GUIDE
713
Editing Clips | Offsetting and Slipping Clips
Tip: Using TimeOffset, you can also offset clips directly in the Dope Sheet. See Animating
Parameters for more information.
Slipping a clip refers to changing the content of the clip that is seen, but not the position or duration.
In Nuke, you can slip clips using the TimeClip node.
Just like TimeOffset, the TimeClip node also lets you move clips forwards or backwards in time and
reverse the order of frames in a clip. In addition to this basic functionality, you can set the frame
range for the clip, set what happens to frames outside of this frame range, fade the clip to or from
black, and set expressions to adjust the node’s behavior. Using TimeClip, you can also slip the clip
directly in the DopeSheet, which can be handy if you prefer editing clips on a timeline.
USER GUIDE
714
Editing Clips | Offsetting and Slipping Clips
Tip: Using TimeClip, you can also offset, trim, and slip clips directly in the Dope Sheet. See
Animating Parameters for more information.
USER GUIDE
715
Editing Clips | Cutting Clips
Cutting Clips
The FrameRange node allows you to set a frame range for a clip. This controls which frames a
downstream AppendClip node uses from the input, which frames are displayed in the Viewer when
the timeline range dropdown menu is set to Input, and which frames are sent to the flipbook.
To make an edit, first use this node to cut portions out of input sequences and then append the
results together using the AppendClip node.
To Cut a Clip
1. Click Time > FrameRange to insert a FrameRange node into your script.
2. Attach a Viewer to this node, so you can see the effect of your changes.
3. In the frame range fields, then enter the appropriate in and out point values.
For example, if your original clip is 50 frames but you want to use only the last 25 frames in your
composite, you would enter 25 as the In point and leave the Out point at 50.
4. Adjust the script length for the new output range. Select Edit > Project Settings, and enter frame
range values that match the output range you specified.
Note: It’s not mandatory that you adjust the script’s frame range after cutting the clip.
Tip: Using FrameRange, you can also set the frame range for a clip directly in the Dope
Sheet. See Animating Parameters for more information.
Splicing Clips
Splicing refers to joining clips head-to-tail, thus allowing action to flow from one shot to the next.
When you splice clips, you have options for:
• Fading to or from black.
• Dissolving from the first to second clip.
• Slipping the combined clip in time.
To Splice Slips
1. Click Time > AppendClip to insert an AppendClip node into your script.
USER GUIDE
716
Editing Clips | Splicing Clips
2. Attach its 1 and 2 inputs to the clips you want to join. (The clip attached to input 1 precedes the
one attached to input 2.)
3. Attach a Viewer to this node, so you can see the effect of your changes.
4. If necessary, expand the script length to accommodate the total length of the newly merged clip:
• Click Edit > Project Settings. The project settings properties panel appears.
• Enter frame range values that matches the total length.
5. In the Fade In and Fade Out fields of the AppendClip properties panel, type the number of
frames, if any, you want to fade to or from black.
For example, typing a 5 in the Fade In field would result in the following effect at the head of the
merged clip.
(The inverse of this effect would occur at the tail of the merged clip were you type 5 in the Fade
Out field.)
6. In the Cross Dissolve field, type the number of frames, if any, of overlap you want between the
first and second clip.
For example, leaving Cross Dissolve at the default of 0 creates a simple cut - the transition from
the first to second clip is instantaneous. Typing in a 5 creates a time span of five frames in which
the first clip’s gain ramps downward to zero, while the second’s ramps upward to 100%.
Dissolve.
Cut.
7. In the First Frame field, type the number of frames, if any, by which you want to slip the clip.
Enter a negative value to subtract frames from the head of the merged clip. Enter a positive value
to add frames to the head of the clip.
8. Slipping the merged clips may create empty black frames at its head or tail. As appropriate, select
First frame or Last frame if you want these empty frames to appear as copies of the first or last
frame.
USER GUIDE
717
Editing Clips | Freeze Framing Clips
Note: The first frame control defaults to 0, setting the freeze frame as the first frame of the
clip, regardless of the actual frame number.
USER GUIDE
718
Working with Color
These pages explain how to use Nuke’s color correction nodes and tools to adjust the appearance of
the images in your composites. When starting out, this information provides a good overview of
Nuke’s scopes and color-correction nodes, however not all options are covered here.
USER GUIDE
719
Using Scopes | Histogram
Using Scopes
Nuke provides scopes to help you evaluate your footage. Scopes are accessed from the contents
menu, Windows > New Scope sub-menu.
There are a number of global controls (Preferences > Panels > Scopes) that affect how the Scopes
display information:
• black point - sets the black out of range warning level.
• white point - sets the white out of range warning level.
• luma/chroma encoding - sets the video standard to use when converting RGB to luma or chroma
values in the scope displays, either REC601 or REC709.
• Include viewer color transforms - when enabled, scope data includes the applied Viewer color
transforms (gain, gamma, and LUT). When disabled, scope data does not include the applied Viewer
color transforms. This may slow down rendering, as it may require image calculation.
• Force full frame - When enabled, scopes display data for the full frame, regardless of what portion
of that frame is displayed in the Viewer. When disabled, scopes only display data for the current
area requested by the Viewer rather than the full frame.
Histogram
The content menu Windows > New Scope > Histogram provides three color channel and luma
channel information that describes the distribution of red, green, blue, and luma pixels throughout
the current frame.
The Histogram graphs the number of pixels at each brightness level, and from left to right, the areas
of the Histogram represent shadow, mid tones, and highlights.
USER GUIDE
720
Using Scopes | Histogram
Tip: You can pan the view area by holding Alt, or the middle mouse button, and dragging in
the panel.
The default value, ActiveViewer, automatically displays details on the last Viewer you selected.
• Channel selection - select the channels to output. The default setting displays RGB, but you can
also view channels separately.
• Mode selection - select the mode to output. The default setting displays ganged RGB, but you can
also view the channels separately by checking Parade.
• Current View - describes the view currently displayed in the scope, whether it's the A or B buffer
and the view. The view defaults to main, unless main has been replaced in multi-view scripts or
projects.
Depending on which Viewer tools and views you have active, you can have up to four scopes
displayed at once.
For example, with two stereo Read nodes, one in each input buffer, and wipe and Anaglyph active,
the scopes display something like this:
The scopes feature global customizable guides to help you view data. Navigate to Preferences >
Panels > Scopes and enter values between 0 and 1 for Blackpoint and Whitepoint.
The guides at the edges of the Histogram turn red to warn you when the distribution is out of range:
USER GUIDE
721
Using Scopes | Using the Histogram Node
USER GUIDE
722
Using Scopes | Waveform
Waveform
The content menu Windows > New Scope > Waveform scope provides information on luminance,
or brightness, which you can use to decide whether the footage is over or under exposed. The
information represents luminance values from 0 - 100% (black through the spectrum to white). The
higher the waveform, the brighter the image in the Viewer.
Tip: You can pan the view area by holding Alt, or the middle mouse button, and dragging in
the panel.
The upper white marker is used to measure when over exposure could be a problem. If your
waveform has a lot of traces over the white marker, you could consider reducing the brightness of the
image. The opposite is true of the lower black marker.
There are also Viewer and Channel selection controls on the Waveform tab:
• Viewer selection - if you have multiple Viewers open, use the dropdown menu to associate
Waveform output to the required Viewer.
The default value, Active Viewer, automatically displays details on the last Viewer you selected.
• Channel selection - select the channels to output. The default setting displays RGB, but you can
also view channels separately.
• Mode selection - select the mode to output. The default setting displays ganged RGB, but you can
also view the channels separately by checking Parade.
• Current View - describes the view currently displayed in the scope, whether it's the A or B buffer
and the view. The view defaults to main, unless main has been replaced in multi-view scripts or
projects.
USER GUIDE
723
Using Scopes | Vectorscope
Depending on which Viewer tools and views you have active, you can have up to four scopes
displayed at once.
For example, with two stereo Read nodes, one in each input buffer, and wipe and Anaglyph active,
the scopes display something like this:
The scopes feature global customizable guides to help you view your data. Navigate to Preferences >
Panels > Scopes and enter values between 0 and 1 for Blackpoint and Whitepoint.
The guides at the top and bottom of the Waveform turn red to warn you when the distribution is out
of range:
Vectorscope
The content menu Windows > New Scope > Vector display color, saturation, and hue information
for the current frame. Similar to color wheels, vector scopes display information radially, from the
center outward. The farther from the center the data spans, the more saturation is represented.
In the image on the left, you can see that the frame represented contains mostly yellows and reds,
but the values are not oversaturated. The image on the right represents a badly saturated frame.
USER GUIDE
724
Using Scopes | Vectorscope
Notice the spill of red traces distributed toward the edge of the scope pass the target (the highlighted
square).
Tip: You can pan the view area by holding Alt, or the middle mouse button, and dragging in
the panel.
The default value, ActiveViewer, automatically displays details on the last Viewer you selected.
• Current View - describes the view currently displayed in the scope, whether it's the A or B buffer
and the view. The view defaults to main, unless main has been replaced in multi-view scripts or
projects.
Depending on which Viewer tools and views you have active, you can have up to four scopes
displayed at once.
For example, with two stereo Read nodes, one in each input buffer, and wipe and Side by Side
active, the scopes display something like this:
USER GUIDE
725
Using Scopes | Vectorscope
USER GUIDE
726
Using the Pixel Analyzer | Vectorscope
By default, full frame samples the visible region of the Viewer. As a result, actions that change the
visible area, such as zooming in and out, alter the available color values.
Note: The Preferences >Panels > Scopes > Include Viewer color transforms control
does not affect the Pixel Analyzer.
USER GUIDE
727
Using the Pixel Analyzer | Analyzing Pixel Selections
Note: If rgba channels are not present, the first four available channel values are written
into the Pixel Analyzer’s rgba controls.
Note: The color swatches may not update immediately if you select a layer from the sample
dropdown that is not currently visible in the Viewer, because the new layer must be
rendered in the background before the swatch is calculated.
Alternatively, you can select a named layer from the dropdown. When switching between
Viewers, the Pixel Analyzer attempts to match the selected layer in the new Viewer. If that layer
doesn't exist, the default current layer is displayed.
Tip: You can use the layer dropdown to sample a layer that is not displayed in the Viewer,
allowing you to compare position and color values between layers.
USER GUIDE
728
Using the Pixel Analyzer | Analyzing Pixel Selections
• multiple - hold Ctrl/Cmd and click-and-drag in the Viewer to select multiple pixels as you move
the pointer.
• region - hold Ctrl/Cmd+Shift and click-and-drag in the Viewer to create a Region of Interest.
Adjust or move the ROI using the Viewer handles.
Tip: To deselect all pixels, hold Ctrl/Cmd and right-click in the Viewer.
With multiple selections in the Viewer, the color swatches provide the following information:
• current - the color value of the last pixel selected.
• min/max - the darkest and brightest color values from the selection.
• average - the mean average color value from the selection.
• median - the mid-point color between the darkest and brightest colors in the selection.
You can enable live median update to calculate the median swatch dynamically, rather than at
pen-up.
Note: In single mode, all swatches show identical information and in region mode, the
current swatch is disabled.
7. Click on the swatches to display rgba and hsvl color values for the selected swatch.
The Pixel Analyzer also detects inf (infinite) and nan (not a number) color values. The ! point in
the swatch indicates inf/nan values.
8. You can reset the swatches at any time by clicking clear selection, except when full frame mode
is enabled, in which case the button is grayed out.
9. Use the range dropdown to select the color bit-depth you intend to display. For example,
selecting 8-bit limits your color values to 255.
10. Set the min/max channel you want to use to calculate the min/max color swatches.
USER GUIDE
729
Using the Pixel Analyzer | Analyzing Full Frames
This control defaults to luminance (l), but if you wanted to display the minimum values in only the
red channel, for example, you could set min/max to red (r).
Note: Enabling full frame processing forces the Pixel Analyzer to analyze the entire frame,
regardless of the portion of the Viewer currently visible.
1. Connect a Viewer to the output you intend to analyze. You can connect multiple Viewers to a
single output, and vice-versa, for comparison.
2. Click the contents menu and select Pixel Analyzer.
The Pixel Analyzer panel displays.
3. Use the sample dropdowns to control which Viewer and layer provides the swatch information:
• viewer - the default, current viewer, always samples the active Viewer if there is more than
one. Selecting pixels in a Viewer or clicking on a Viewer’s tab causes the Viewer to become the
active or current Viewer. Alternatively, you can select a named Viewer from the dropdown when
more than one is open.
• layer - the default, current layer, displays the layer(s) specified in the Viewer channels
dropdown.
Note: If rgba channels are not present, the first four available channel values are written
into the Pixel Analyzer’s rgba controls.
Note: The color swatches may not update immediately if you select a layer from the sample
dropdown that is not currently visible in the Viewer, because the new layer must be
rendered in the background before the swatch is calculated.
Alternatively, you can select a named layer from the dropdown. When switching between
Viewers, the Pixel Analyzer attempts to match the selected layer in the new Viewer. If that layer
doesn't exist, the default current layer is displayed.
USER GUIDE
730
Using the Pixel Analyzer | Applying Analysis Data
Tip: You can use the layer dropdown to sample a layer that is not displayed in the Viewer,
allowing you to compare position and color values between layers.
6. Use the range dropdown to select the color bit-depth you intend to display. For example,
selecting 8-bit limits your color values to 255.
7. Set the min/max channel you want to use to calculate the min/max color swatches.
This control defaults to luminance (l), but if you wanted to display the minimum values in only the
red channel, for example, you could set min/max to red (r).
USER GUIDE
731
Using the Pixel Analyzer | Applying Analysis Data
USER GUIDE
732
Making Tonal Adjustments | Sampling White and Black Points
Several of Nuke’s color correction effects offer tonal adjustment tools. Of these, Grade and Histogram
are probably the most intuitive to operate.
USER GUIDE
733
Making Tonal Adjustments | Making Basic Corrections
USER GUIDE
734
Making Tonal Adjustments | Using ColorCorrect Sliders
Remember too that you can use the color sliders to apply any of the corrections on a per channel
basis.
5. On the Ranges tab, enable test to show what is considered to be in the shadows, midtones, or
highlights.
This overlays the output with black (for shadows), gray (for midtones), or white (for highlights).
Green and magenta indicate a mixture of ranges.
USER GUIDE
735
Making Tonal Adjustments | Using ColorCorrect Sliders
Warning: Do not adjust the midtone curve. Midtones are always equal to 1 minus the other
two curves.
7. To control how much of the original luminance is preserved after the color correction, enable and
adjust mix luminance. A value of 0 means the altered luminance is used in the output image. A
value of 1 produces a luminance value close to that of the original input image.
Original image.
Note: When mix luminance is set to 1, the resulting luminance value is close to the original
luminance, but not exactly the same. The difference may vary depending on the color
corrections applied to the source image.
USER GUIDE
736
Making Tonal Adjustments | Adjusting Black Levels with the Toe Node
USER GUIDE
737
Making Tonal Adjustments | Using ColorLookup Curves
As Figure shows, you can edit the ColorLookup node’s color curves to make all of the types of
corrections that are possible through the ColorCorrect node - and you can generally make these
corrections with more flexibility and precision than is possible with sliders.
USER GUIDE
738
Making Tonal Adjustments | Using ColorLookup Curves
4. To speed up the color calculation, the ColorLookup node uses a precomputed lookup table
between 0 and the value specified in the range field. You can adjust the range value, or uncheck
the use precomputed table box if necessary to tell ColorLookup to not use a precomputed table.
5. In the Viewer, drag the cursor over the pixels you want to sample for the correction. In the
ColorLookup properties panel, press Ctrl+Alt (Cmd+Alt on a Mac) while clicking on the curve to
set points at the places where the red, green, and blue lines intersect with the color curve.
USER GUIDE
739
Making Hue, Saturation, and Value Adjustments | Using ColorLookup Curves
Nuke offers effects that allow you to correct the hue, saturation, and value components individually
or collectively.
USER GUIDE
740
Making Hue, Saturation, and Value Adjustments | Correcting HSV
Correcting HSV
Nuke’s HSVTool node lets you simultaneously adjust hue, saturation, and value components from a
single properties panel. It also features a color replacement tool. The main strength of this node is
the precision it offers in limiting corrections to a narrow swath of colors.
For example, suppose you wanted to add a bit more punch to the waterfront scene by diversifying the
rooftop hues. To do so, you could limit the correction to the rooftop’s ochre-colored hues by
sampling a few pixels, then shift their values. Because you limited the color range, the surrounding
image would be generally unaffected by the shift.
• The Range sliders on Hue, Saturation, and Brightness clamp to the sampled range.
• For any color component, drag on the Range sliders to expand the color range as necessary.
• For any color component, drag on the Range Rolloff slider to fine tune the color range. Doing
so, adjusts the amount of falloff allowed past the limits defined by the Range sliders.
4. Make the necessary HSV corrections:
USER GUIDE
741
Making Hue, Saturation, and Value Adjustments | Correcting Hue Only
• For hue corrections, drag on the Rotation slider to input color wheel value between 0 and 360.
• For saturation corrections, drag on the Saturation Adjustment slider to input values between -
1 (completely desaturated to some shade of gray) and 1 (completely saturated).
• For value corrections, drag on the Brightness Adjustment slider to input values between -1
(black) and 1 (white).
You can also make color replacements using the srccolor and dstcolor parameters: First sample the
color you wish to replace with the srccolor color swath, then sample the color which you wish to use
as the replacement with the dstcolor color swath. The color in dstcolor replaces the color in srccolor
throughout the image.
Also, keep in mind that the HSVTool node makes an excellent keyer. You can use its Hue, Saturation,
and Brightness range sliders to precisely select a range of colors, then use the channel output
dropdown at the bottom of the dialog to output this selection as a matte channel. This dropdown lets
you specify which color components (hue, saturation, value, etc.) are added to the matte.
By selecting which curve you edit and how much of that curve you alter, you can precisely limit the
influence of the effect.
USER GUIDE
742
Making Hue, Saturation, and Value Adjustments | Correcting Hue Only
Suppressing spill
For the compositor, HueCorrect is obviously of greatest use in diminishing green, blue, or redscreen
spill.
1. Click Color > HueCorrect to insert a node at the appropriate place in your script.
2. Connect a Viewer to the output of the HueCorrect node so you can see the effect of your changes.
3. In the HueCorrect properties panel, select the channels you want to influence:
• Click sat to influence all channels (red, green, blue, and alpha) equally.
• Click lum to influence all channels, but with luminance weighting in effect (meaning that the red
channel receives approximately 30% of the effect; the green, 60%; and the blue, 10%).
• Click red to apply the curve as a lookup on the red channel only, looking up the pixel's hue on
the curve and then multiplying the red value in the pixel by the lookup result.
• Click green to apply the curve as a lookup on the green channel only, looking up the pixel's hue
on the curve and then multiplying the green value in the pixel by the lookup result.
• Click blue to apply the curve as a lookup on the blue channel only, looking up the pixel's hue on
the curve and then multiplying the blue value in the pixel by the lookup result.
• Click r_sup to apply a suppression function to reduce the level of the red channel. While the red
curve is used to directly multiply the red channel by the curve value, the r_sup curve is used to
control the amount that the red channel is suppressed.
• Click g_sup to apply a suppression function to reduce the level of the green channel. While the
green curve is used to directly multiply the green channel by the curve value, the g_sup curve is
used to control the amount that the green channel is suppressed.
• Click b_sup apply a suppression function to reduce the level of the blue channel. While the blue
curve is used to directly multiply the blue channel by the curve value, the b_sup curve is used to
control the amount that the blue channel is suppressed.
Note that you can select multiple curves in order to edit one curve with reference to another.
4. If necessary, drag the cursor over the Viewer to sample the image pixels that are representative of
the part of the image you want to correct. Then, in the HueCorrect properties panel, press Ctrl+Alt
(Cmd+Alt on a Mac) while clicking on the curve to plot a particular pixel’s value on the curve. This
lets you see what portion of the curve you want to edit.
5. Edit the curve as necessary - typically this means dragging down on control points in the hue
region that you wish to suppress.
USER GUIDE
743
Making Hue, Saturation, and Value Adjustments | Correcting Saturation Only
6. To control how much of the original luminance is preserved after the color correction, enable and
adjust mix luminance. A value of 0 means the altered luminance is used in the output image. A
value of 1 produces a luminance value close to that of the original input image.
Original image.
Note: When mix luminance is set to 1, the resulting luminance value is close to the original
luminance, but not exactly the same. The difference may vary depending on the color
corrections applied to the source image.
USER GUIDE
744
Masking Color Corrections | To Mask a Color Correction
You could create a garbage mask that covers the river, then boost the red channel’s gamma in the
area of the frame that underlies the mask.
Typically, mask controls are located toward the bottom of the properties panel. However, in the case
of multi-purpose effects like HSVTool, there may be multiple mask controls, so that you can limit
each type of correction with a different mask.
USER GUIDE
745
Masking Color Corrections | To Mask a Color Correction
2. Select the channel you wish to use as the mask from the dropdown menu.
3. If you check inject in the mask controls, the mask from the mask input is copied into the
predefined mask.a channel. This way, you can use the last mask input again downstream. You
can also set a stream of nodes to use mask.a as the mask, and then change the masking of all of
them by simply connecting a new mask into the mask input connector of the first node.
4. If necessary, check the invert box to reverse the mask.
5. To blur the edges of the mask, check fringe.
6. If the overall effect of the node is too harsh, you can blend back in some of the input image by
dragging on the mix slider.
7. If you want to output only the portion of the frame underlying the mask, check the (un)premult
by box.
USER GUIDE
746
Applying Grain | Using Synthetic Grain
Applying Grain
Grain matching - ensuring that all of the elements in a composite, including those which were digitally
generated, look like they were shot on the same film stock - is often one of the final steps in achieving
a convincing integration of all of a composite’s elements. Nuke offers effects for synthetically creating
grain and for reading in practically-created grain (grain derived from actual film stock).
Grain includes presets for matching film stock and a means for controlling the mix between the
generated grain and the backplate. ScannedGrain offers film stock presets, plus synthetic grain
controls for applying practical grain.
F_ReGrain, for NukeX, is designed to sample an area of grain from one image and then to generate
unlimited amounts of this grain with exactly the same statistics as the original. This new grain can
then be applied to another image. See Using F_ReGrain for more information.
USER GUIDE
747
Applying Grain | Using Practical Grain
3. From the presets dropdown menu, select one of the film stock you want to match.
4. Adjust the Size sliders for the red, green, and blue channels to shrink or enlarge the granules.
5. Adjust the Irregularity sliders to increase or decrease the random quality of the grain, according
to the different channels.
6. Adjust the Intensity sliders to increase or decrease the contrast of the grain against the original
image.
USER GUIDE
748
Applying Grain | Using Practical Grain
6. Select Color > Math > Add to insert an Add node after the minus node. In the Add node controls,
enter 0.5 in the value field. This adds a value of 0.5 to all channels.
This step is necessary, because the ScannedGrain node subtracts 0.5 from the channels when it
reads the grain file (the subtraction is needed to store negative numbers in most file formats).
7. Select Image > Write to insert a Write node after the Add node. Render the output. Any file
format will do (for example, we have used the .rgb extension in the grain files on our website).
Now you’re ready to fine-tune the blending between the grain and backplate.
USER GUIDE
749
Applying Grain | Using Practical Grain
USER GUIDE
750
Applying Mathematical Operations | Clamping Channel Values
Applying Mathematical
Operations
Nuke’s Color icon in the Toolbar houses a number of nodes which are designed to apply common
mathematical operations to channels. These operations include clamps, offsets, inversions,
multiplications, and expressions.
USER GUIDE
751
Applying Mathematical Operations | Offsetting Channel Values
USER GUIDE
752
Applying Mathematical Operations | Multiplying Channel Values
3. In the Invert properties panel, use the channels field to select the channel you wish to invert.
USER GUIDE
753
Applying Mathematical Operations | Applying Expressions to Channel Values
5. If necessary, you can apply different expressions to different sets of channels by repeating the
above steps for the other channel dropdown menus and buttons.
6. If you need to use a long expression in several fields, you can use the fields on top of the
properties panel for assigning the expression temporarily to a variable. Enter your variable on the
left side of the = sign, and the expression on the right. You can then use the variable to represent
the expression in the = fields next to the channels.
USER GUIDE
754
Transforming the Color Space | Applying Expressions to Channel Values
The reverse of this conversion, called a lin-to-log conversion, also automatically takes place when you
write the processed element back out of the script - that is, Nuke automatically converts it back into a
Cineon element.
USER GUIDE
755
Overriding the Default Cineon Conversion | To Override the Default Cineon Conversions Using Log2Lin
USER GUIDE
756
Overriding the Default Cineon Conversion | To Create a 3D LUT in Log Color Space (for example
3. In the operation dropdown, select the operation you want PLogLin to perform. Select log to lin to
convert from logarithmic to linear, and lin to log to do the reverse.
4. Adjust the linear reference value slider to the linear value that corresponds with the logarithmic
reference value and the log reference value slider to the value that corresponds with the linear
reference value.
5. You can also adjust the film response gamma value in the negative gamma field, and use the
density per code value field to tell PLogLin what type of change occurs in the negative gamma
for each log space code value when converting.
6. If you need to, you can pick a channel in the (un)premult by dropdown to divide the image first
with that channel and then multiply it again afterward. Doing this can sometimes improve your
color correction results on anti-aliased edges.
7. You can also use the mix control to dissolve between the original input (value 0) and the full effect
of the PLogLin node (value 1). If you only want to use one channel for mixing, you can specify that
using the mask control.
Tip: To reproduce the grade, set a Vectorfield node to Cineon for both the colorspace in
and colorspace out controls.
USER GUIDE
757
Making Other Colorspace Conversions | To Convert an Element in Nuke’s Native Color Space into
USER GUIDE
758
Making Other Colorspace Conversions | Converting Color Spaces with the OCIOColorSpace Node
For more information on the OCIOColorSpace node, and other nodes based on the OpenColorIO
library, see Color Nodes in the Nuke Online Help for more information.
Note: Nuke is bundled with a pre-compiled version of the OpenColorIO library and a suite
of OCIO nodes. If you already have a pre-built version of the OCIO library on your system and
your environment is not set up correctly for Nuke, you may encounter problems. For OCIO
to work correctly, Nuke requires the compiled versions of PyOpenColorIO and
libOpenColorIO to match. To override Nuke's pre-packaged version with your own custom
version, follow the steps below:
• Linux:
Manually replace the Nuke packaged versions of libOpenColorIO.so and
PyOpenColorIO.so with your custom versions of these files. These can be found in the
<NukeInstall> and <NukeInstall>/plugins directories respectively.
• Mac:
Set your NUKE_PATH to the location of PyOpenColorIO.so and your DYLD_LIBRARY_PATH
to the location of OpenColorIO.so. For example:
export NUKE_PATH="/myOCIOLibraryLocation/"
export DYLD_LIBRARY_PATH="/myOCIOLibraryLocation/"
NOTE: Due to an Apple security update in Mac OS X 10.7 (Lion), DYLD variables can't be
loaded from the environment.plist. See http://support.apple.com/kb/TS4267 for more
information.
• Windows:
Both OpenColorIO.dll and PyOpenColorIO.pyd must be in the same directory. You then
need to set your NUKE_PATH to this directory. For example:
set NUKE_PATH=\myOCIOLibraryLocation\
• All Platforms:
In addition to the steps above, you need to set the OCIO environment variable to point to
your OCIO configuration file. This overrides the configuration file specified in Nuke’s
preferences (see Setting Preferences). For example:
export OCIO="/myOCIOConfigLocation/config.ocio"
The OCIO nodes in Nuke are compiled against a specific version of the OCIO libraries (for
the current version, see Third-Party Libraries and Fonts). If you’re using your own custom
libraries, recompile the OCIO nodes against your versions of the libraries. Failure to follow
these steps may result in errors when adding OCIO nodes or modifying OCIO options in the
preferences.
USER GUIDE
759
Changing the Viewer Color Space | Adding Context Viewer Processes
Select the desired color space from the viewer process dropdown menu.
In this example, the variable is called SHOT. If you intend to use the same name, make sure that
SHOT is not assigned as an environment variable.
USER GUIDE
760
Changing the Viewer Color Space | Adding Context Viewer Processes
Note: Viewer processes are display-only LUTs and do not affect rendered output.
USER GUIDE
761
Filtering and Spatial Effects
This chapter explains how to create custom filter effects using the Convolve node (see Applying
Convolves) and how to simulate depth-of-field (DOF) blurring using the ZDefocus node (see
Simulating Depth-of-Field Blurring).
Applying Convolves
The Convolve node lets you create custom filter effects by supplying your own filter image. This image
is used as the convolution matrix. In other words, the new value of a pixel is calculated by centering
the filter image on the pixel, examining its neighbors, multiplying each pixel value by the
corresponding pixel values in the filter image, and then adding the results together. This allows you
to defocus a clip and create lens blur effects (bokeh) in the shape of the filter image (also see
Simulating Depth-of-Field Blurring).
The result.
USER GUIDE
762
Filtering and Spatial Effects |
1. Click Filter > Convolve to insert a Convolve node after the image you want to receive the
convolution filter effect (the image input).
2. Attach a Viewer to the output of the Convolve node.
An error appears in the Viewer because we haven’t connected the filter input yet.
3. Connect a filter image to the filter input. This image represents the shape and size of the camera
aperture used to shoot the image input. It can be any shape you like, for example, a pentagon or
a hexagon.
If you don’t have a filter image, you can create one using the Roto node (Draw > Roto) or the Flare
node (Draw > Flare).
USER GUIDE
763
Filtering and Spatial Effects |
• format - the filter input’s format. In this case, Convolve uses the entire format area, allowing
you to offset the filter image within the format.
8. If you want to mask the convolve effect, check mask and select a mask channel using the controls
on the right. For example, you can select a depth channel as a mask to simulate depth-of-field
blurring.
Tip: You can check Use GPU if available to have the node run on the graphics processing
unit (GPU) rather than the central processing unit (CPU).
For more information on the minimum requirements, please see Windows, Mac OS X and
macOS, or Linux or refer to the Nuke Release Notes available in Help > Release Notes.
You can select the GPU to use in the Preferences. Press Shift+S to open the Preferences
dialog, make sure you’re viewing the Preferences > Performance > Hardware tab, and set
default blink device to the device you want to use. You must restart Nuke for the change to
take effect.
If you are using a render license of Nuke, you need to add --gpu on the command line.
USER GUIDE
764
Simulating Depth-of-Field Blurring |
Simulating Depth-of-Field
Blurring
The ZDefocus node blurs the image according to a depth map channel. This allows you to simulate
depth-of-field (DOF) blurring.
USER GUIDE
765
Simulating Depth-of-Field Blurring | Quick Start
In order to defocus the image, ZDefocus splits the image up into layers, each of which is assigned the
same depth value everywhere and processed with a single blur size. After ZDefocus has processed all
the layers, it blends them together from the back to the front of the image, with each new layer going
over the top of the previous ones. This allows it to preserve the ordering of objects in the image.
Quick Start
Here's a quick overview of the workflow:
1. Create a ZDefocus node and connect it to your script.
See Connecting ZDefocus.
2. Adjust the blur settings.
See Adjusting Blur Settings.
3. Adjust the shape of any out-of-focus highlights.
See Adjusting the Shape of Out-of-Focus Highlights.
4. If necessary, enhance the highlights to make lens shape effects more visible.
See Enhancing Out-of-Focus Highlights.
5. If necessary, mask the blur effect.
See Masking Blur Effects.
Tip: You can check Use GPU if available to have the node run on the graphics processing
unit (GPU) rather than the central processing unit (CPU).
For more information on the minimum requirements, please see Windows, Mac OS X and
macOS, or Linux or refer to the Nuke Release Notes available in Help > Release Notes.
You can select the GPU to use in the Preferences. Press Shift+S to open the Preferences
dialog, make sure you’re viewing the Preferences > Performance > Hardware tab, and set
default blink device to the device you want to use. You must restart Nuke for the change to
take effect.
If you are using a render license of Nuke, you need to add --gpu on the command line.
Connecting ZDefocus
To connect ZDefocus:
1. Create a ZDefocus node by clicking Filter > ZDefocus.
USER GUIDE
766
Simulating Depth-of-Field Blurring | Connecting ZDefocus
2. Connect the ZDefocus node’s image input to the image you want to blur.
Note that this image also needs to contain a depth map channel. If your depth channel and rgba
channels exist in two different files, you can use a ShuffleCopy node to combine them.
3. Use the channels dropdown menu to select the channels you want to blur.
4. Set depth channel to the channel in the image input that contains the depth map. By default, the
depth information is taken from depth.Z.
Note that the depth map should not be anti-aliased. If it is, pixels along an edge between two
objects can be assigned a depth that is in-between the depth of the front object and back objects.
This looks wrong, as it suggests that those edge pixels are floating somewhere between the
objects.
5. If you want to use your own filter image (rather than the predefined disc or bladed images),
connect that to the ZDefocus node’s filter input and set filter type to image in the node’s
properties.
The filter image represents the shape and size of the camera aperture used to shoot the input
footage. As the clip in the image input is blurred, any highlights in the clip bloom in the shape of
the filter image, creating a bokeh effect.
Note: Loading scripts from pre-Nuke 8.0v7 enables the legacy resize mode checkbox
automatically, for backward compatibilty, and uses the filter bounds dropdown to
determine how images used in filtering are resized.
Adding new ZDefocus nodes hides the legacy resize mode checkbox and allows you to use
the image filter dropdown to give you more flexibility when calculating blur.
See Using a Custom Filter Image for more information.
You can create a filter image using the Roto node (Draw > Roto) or the Flare node (Draw > Flare),
for example.
Note that you don’t necessarily need to crop the filter image to a smaller size, as fast Fourier
transforms are used to speed up convolutions with large filter images.
6. Attach a Viewer to the ZDefocus node.
USER GUIDE
767
Simulating Depth-of-Field Blurring | Adjusting Blur Settings
A ZDefocus script.
7. Proceed to Adjusting the Shape of Out-of-Focus Highlights below.
USER GUIDE
768
Simulating Depth-of-Field Blurring | Adjusting Blur Settings
Tip: The fill foreground control, enabled by default, attempts to compensate for missing
information by filling regions in the foreground which are revealed when the foreground
goes out of focus. However, because the true image information isn't available in these
regions, fill foreground can sometimes introduce undesirable artefacts by adding things
which aren't there.
If you see blurry artefacts in the foreground, rather than sharp edge artefacts, try disabling
this control.
To better see the effect of your changes, you can also set output to focal plane setup. ZDefocus
now displays depth-of-field (DOF) info in the rgb channels:
• red - Less than DOF (in front of the area that’s in focus).
USER GUIDE
769
Simulating Depth-of-Field Blurring | Adjusting Blur Settings
• green - Inside DOF (in focus). Note that if depth of field is set to 0, nothing is displayed in
green.
• blue - Greater than DOF (behind the area that’s in focus).
When show image is enabled, this information is overlaid upon the input image.
USER GUIDE
770
Simulating Depth-of-Field Blurring | Adjusting Blur Settings
To visualize the layers, you can set output to layer setup. This is like focal plane setup, but
displays depth-of-field (DOF) information after the depth has been divided into layers.
USER GUIDE
771
Simulating Depth-of-Field Blurring | Adjusting the Shape of Out-of-Focus Highlights
USER GUIDE
772
Simulating Depth-of-Field Blurring | Adjusting the Shape of Out-of-Focus Highlights
USER GUIDE
773
Simulating Depth-of-Field Blurring | Adjusting the Shape of Out-of-Focus Highlights
6. Use the aspect ratio control to set the filter aspect ratio, which is 1:1 by default. Values less than
1 squeeze the filter on the x axis, and values larger than 1 squeeze it on the y axis.
This allows you to simulate the cat's eye effect, caused by vignetting inherent within some lens
designs.
USER GUIDE
774
Simulating Depth-of-Field Blurring | Adjusting the Shape of Out-of-Focus Highlights
USER GUIDE
775
Simulating Depth-of-Field Blurring | Enhancing Out-of-Focus Highlights
Note: Loading scripts from pre-Nuke 9.0v2 enables the legacy resize mode checkbox
automatically, for backward compatibilty, and uses the filter bounds dropdown to
determine how images used in filtering are resized.
Adding new ZDefocus nodes hides the legacy resize mode checkbox and allows you to use
the image filter dropdown to give you more flexibility when calculating blur.
3. To select what channel to use from the filter input, do one of the following:
• Set the filter channel dropdown menu to the channel you want to use. By default, this menu is
set to rgba.alpha.
• To use the same channels from the filter input as the image input (that is, whatever channels is
set to), check use input channels.
4. In newer Nuke scripts, use the image filter dropdown to select the required filter. See Choosing a
Filtering Algorithm for more information on the available filters.
Note: When using filters that employ sharpening, such as Rifman and Lanczos, you may
see a haloing effect. If necessary, check clamp image filter to correct this problem.
In older Nuke scripts with legacy resize mode enabled, use the filter bounds dropdown to select
whether you want to limit the filter image to:
• shape - the filter input’s bounding box. In this case, ZDefocus only uses the bounding box area,
and the center of the filter is the center of the bounding box. This is the default value. You may
want to use it, for example, if your filter input is a roto shape with a small bounding box that
doesn’t fill the entire format area.
• format - the filter input’s format. In this case, ZDefocus uses the entire format area, allowing
you to offset the filter image within the format.
5. Proceed to Enhancing Out-of-Focus Highlights.
USER GUIDE
776
Simulating Depth-of-Field Blurring | Masking Blur Effects
USER GUIDE
777
Simulating Depth-of-Field Blurring | Masking Blur Effects
5. To dissolve between the original image (at 0) and the full ZDefocus effect (at 1), adjust the mix
slider. A small light-gray square appears on the node in the Node Graph to indicate that the full
effect is not used.
USER GUIDE
778
Creating Effects
Several nodes in Nuke let you create various effects on your input images. In this chapter, we describe
three of these nodes: LightWrap, Glint, and Text.
Quick Start
Here's a quick overview of the workflow:
1. To adjust the soft edges and light spills that occur in the border between your foreground and
background, you can use the LightWrap node (Draw > LightWrap). For more information, see
Background Reflections on Foreground Elements.
2. With the Glint node you can add star-shaped glints on your image. See Creating Star Filter Effects
on Image Highlights.
3. Using the Text node, you can add text elements, such as credits, to your footage. For more
information, see Creating Text Overlays.
USER GUIDE
779
Background Reflections on Foreground Elements |
Background Reflections on
Foreground Elements
You can use the LightWrap node to create background reflections on foreground elements. The node
creates a reflection of light around the edges of your foreground element by blending in whatever is
in the background.
The composite without the LightWrap The composite with the LightWrap effect.
effect.
You may have noticed that objects filmed in front of very bright backgrounds have the appearance of
softened edges as the light spills round from the background. When adding foreground layers onto a
background plate, using the LightWrap node can dramatically improve the quality of your composite.
The composite without the LightWrap The composite with the LightWrap effect.
effect. Note how the foreground fits better into
Note the hard edges around the the background.
trailing hand and the bottom of the skirt.
If you want to use LightWrap, you should apply it on your foreground element before you composite
the foreground over the background with the Merge node.
USER GUIDE
780
Background Reflections on Foreground Elements | Using the LightWrap Node
USER GUIDE
781
Background Reflections on Foreground Elements | Using the LightWrap Node
7. By default, the LightWrap effect is only applied inside the foreground element’s alpha. If you want
to extend the effect outside it, making the element seem to glow, check Enable Glow.
8. On the Tweaks tab, you can also adjust the following controls:
• FGBlur to determine how much the foreground matte is blurred. The more blur, the more of
the background is added to the foreground.
• BGBlur to control how much the background is blurred before it is merged with the foreground
element.
• Saturation to adjust the saturation of the effect.
• Luma Tolerance to increase or decrease the luminance values of the effect.
• Highlight Merge to control how the foreground element is merged with the background. The
default merge operation, called plus, adds the elements together, producing a glow effect.
• Check Use constant highlight to use a constant color of your choice rather than the
background in the LightWrap effect. Select the color using the controls next to Constant
Highlights Color.
9. On the CCorrect tab, you can color correct the LightWrap effect produced.
USER GUIDE
782
Creating Star Filter Effects on Image Highlights | Using the Glint Node
USER GUIDE
783
Creating Star Filter Effects on Image Highlights | Using the Glint Node
6. To determine how many steps the rays are formed of, enter a value in the steps field. The more
steps you use and the shorter the rays are, the smoother the rays become.
USER GUIDE
784
Creating Star Filter Effects on Image Highlights | Using the Glint Node
USER GUIDE
785
Creating Text Overlays | Preparing a Text Overlay
See Entering Text for a list of Tcl expressions, Tcl variables, HMTL named entities, hex entities, and
decimal entities you can use in the Text node.
Text overlays can also be animated using animation layers so that their properties, such as position,
size, and color, change over time. These features make the Text node useful, for example, for
creating slates or scrolling credits.
USER GUIDE
786
Creating Text Overlays | Preparing a Text Overlay
OR
• Draw a box in the Viewer to contain your text.
Tip: The cursor appears as in the Viewer when you initially add the Text node.
Text entered in a custom box is limited by the boxx, r, and t boundaries on the Transform tab,
but the y boundary can be overstepped.
Tip: You can adjust the box at any time using the boxxyrt controls or by dragging the Viewer
handles.
8. If you want to mask out part of the image, see Masking Regions of the Viewer
9. Once you're happy with the cursor position, proceed to Entering Text.
USER GUIDE
787
Entering Text | Example Variables and Entities
Entering Text
The message field in the properties panel is used to enter the text, Tcl expressions, Tcl variables, or a
combination of these that you want to display in your output. For some examples of these formats,
see the table below.
Text entry behaves much the same as regular text editors, but there are a few rules to observe:
• The edit text control above the Viewer must be enabled if you want to type directly in the Viewer,
though you can enter text in the message field at any time.
• Press Return to begin a new line in both the Viewer and the message field.
• Navigate around the Viewer or message field using the arrow keys.
• Tcl expressions must be placed in square brackets, such as [date].
• To display special Unicode characters, such as foreign language characters and copyright signs, you
can:
• Use HTML named entities, such as < to display <, or © to display ©.
• Use hex entities, such as < to display <, or © to display ©.
• Use decimal entities, such as < to display <, or © to display ©.
• Type Unicode characters, such as < or ©, on your keyboard or cut and paste them from other
applications. UTF-8 character encoding is used to store them in the control's value and in the
saved Nuke script.
These special characters only work if the font you are using supports the required character.
Note: We recommend using the above entities rather than typing <, for example. This is
because future versions of the Text node may interpret HTML mark-up. In HTML, some
characters, such as the greater than and less than signs, are reserved. If you used these signs
within your text now, future versions could mistake them for HTML mark-up.
USER GUIDE
788
Entering Text | Example Variables and Entities
Message Prints
Tcl expressions
[date] Week day, day, month, hh:mm:ss, and time zone. For example, Thu Jan 15
14:22:20 GMT.
USER GUIDE
789
Entering Text | Example Variables and Entities
Message Prints
[metadata values] List all of the keys and values in the incoming metadata.
[metadata key] Value of the key in the incoming metadata. Replace key with the name of the
key whose value you want to display. For example, you may be able to use
[metadata input/filename] to display the name and location of the image
file, or [metadata input/ctime] to display the timestamp for an input file.
[value root.name] Script directory path and script name. For example, Users/john/Nuke_
scripts/myscript.nk.
Tcl variables
& &
' '
Å Å
Á Á
 Â
Æ Æ
À À
Ç Ç
USER GUIDE
790
Entering Text | Example Variables and Entities
Message Prints
© ©
é é
ê ê
è è
ë ë
€ €
> >
< <
Ñ Ñ
ø ø
õ õ
Ö Ö
ö ö
" "
® ®
ß ß
Ü Ü
ü ü
hex entities
# #
% %
& &
* *
USER GUIDE
791
Entering Text | Example Variables and Entities
Message Prints
@ @
™ ™
œ œ
š š
< <
> >
© ©
é é
decimal entities
£ £
© ©
® ®
¿ ¿
ê ê
ß ß
à à
Tip: To get a list of all the Tcl expressions you can use with date, type x on the Node Graph,
set the script command dialog that opens to Tcl, enter date -h, and click OK.
USER GUIDE
792
Fonts and Font Properties | Example Variables and Entities
Note: See Environment Variables for more information on setting environment variables.
Note: The font cache file is not used when rendering and is not required on a render farm.
Nuke retrieves the fonts available in the Text node from various locations in a set order, before
caching them:
1. The location specified in the Project Settings > Font > project font path control.
2. The .nuke/fonts directory and all other plug-in folders.
3. The location specified by the NUKE_FONT_PATH environment variable.
Note: Locations 1 and 3 allow you to specify multiple paths using the OS standard syntax.
On Windows, for example, you could specify "c:\windows\font1;c:\windows\font2;..."
Note: If several locations contain the same font, Nuke uses the font from the first directory
it finds it in.
In general, there is no guarantee that a font family and style, such as {Arial : Regular}, will render
identically cross-platform. To avoid this, Nuke ships with several fonts common to all platforms. If
you disable Project Settings > Font > include system fonts, only the fonts that ship with Nuke are
available in the font controls.
See Third-Party Libraries and Fonts for a list of fonts that ship with Nuke.
USER GUIDE
793
Fonts and Font Properties | Selecting a Font
Note: Only fonts that are physically stored in a file are available in the font controls. As a
result, the list of system fonts available in Nuke may be different to that available in other
software applications on the same machine.
Selecting a Font
1. Highlight the text you want to affect in the message field or Viewer.
2. In the Text properties panel, click the font family dropdown to select the required family.
3. Select the required font style from the dropdown.
4. Click the information icon to display the location of the selected font. For example:
The font family and style used are saved in the Nuke script, along with some extra information, in
order to make sure the same family and style are used if the script is opened on a different machine
or operating system. If the font family and style are not the same, Nuke displays a warning message.
USER GUIDE
794
Fonts and Font Properties | Adjusting Font Size and Spacing
Tip: Use the global font scale control to adjust the scale multiplier for all characters in the
current Text node, regardless of the font size specified for individual characters.
3. You can adjust fonts asymmetrically using the font width and font height controls.
You can also use the controls above the Viewer to adjust font size.
4. To increase or decrease the spacing between individual characters, adjust the kerning slider. By
using negative values, you can make the letters overlap.
Note: If you select more than one character or the last character in a group, the kerning
control is disabled.
You can also use the control above the Viewer to adjust kerning.
5. To increase or decrease the space between each character and the previous character adjust the
tracking control. Negative values move characters towards the preceding character.
You can also use the control above the Viewer to adjust tracking.
6. To adjust the selected text's height above the baseline, in screen space, use the baseline shift
control. The baseline is the imaginary line upon which most letters rest. This control allows you to
reliably line up the baseline of different fonts.
You can also use the control above the Viewer to adjust baseline.
7. If your text overlay contains several lines of text, you can adjust the spacing between each line by
using the leading slider. By using negative values, you can make the letters overlap.
USER GUIDE
795
Fonts and Font Properties | Justifying Fonts
Note: Unlike the baseline shift control, leading affects all text within the bounding box
regardless of selection.
Justifying Fonts
The justify controls affect the positioning of the text within the bounding box on the x and y axes.
1. Use the xjustify dropdown to control how you want to align the text horizontally:
• left - align the text along the left edge of the on-screen text box. This leaves the right edge of the
text ragged.
• center - align the text from the center of the on-screen text box. This leaves both edges of the
text ragged.
• right - align the text along the right edge of the on-screen text box. This leaves the left edge of
the text ragged.
USER GUIDE
796
Fonts and Font Properties | Justifying Fonts
• justify - align the text both along the left and the right edge of the on-screen text box. This
leaves no ragged edges. The justification is done by expanding the spaces between letters. If
there are no spaces or the spaces get more than about three times wider than they were, letters
are expanded.
2. Use the yjustify dropdown to control how you want to align the text vertically:
• top - align the text against the top edge of the on-screen text box.
• center - align the text from the center of the on-screen text box.
USER GUIDE
797
Fonts and Font Properties | Justifying Fonts
• bottom - align the text against the bottom edge of the on-screen text box.
USER GUIDE
798
Updating the Font Cache | Justifying Fonts
Go to Help > Documentation > Python Developer's Guide for more information on Python
commands relating the font cache.
USER GUIDE
799
Transforming Text | Transforming Selections
Transforming Text
The Text node allows you to transform selections in the Viewer or create groups of selections in the
animation layers table and transform them together. Both methods support animation using
keyframes.
Transforming Selections
Selections in the Viewer are transformed by hand, that is, by manipulating handles drawn on your
selections.
1. Enable transform in the controls above the Viewer.
2. Select the required character(s) in the Viewer to enable the transform handles.
3. If you hover the cursor over a selection, the cursor changes to show the handle's function
depending on position.
4. Translate, rotate, and scale your selections by dragging the required handles.
If you want to animate your changes, see Animating Transforms for more information.
Tip: By default, scaling is done uniformly around the center of your selections. To scale
relative to the opposite corner or side instead, hold down Ctrl/Cmd while dragging the
transform handles.
USER GUIDE
800
Transforming Text | Transforming Groups
Transforming Groups
The Group tab saves group selections in the animation layer table allowing you to affect layers
separately using the transform controls.
1. Open the properties and click the Group tab to display the transform controls and animation
layers table.
2. Select the required character(s) in the Viewer, or message field, and then click the + button to
create an animation layer, or click create group above the Viewer.
You can create as many animation layers as required, each one is named according to the
selections you made in the Viewer.
3. Select an animation layer and use the transform controls on the Group tab to transform your
selection.
If you want to animate your changes, see Animating Transforms for more information.
4. Click the - button to remove an animation layer.
USER GUIDE
801
Animating Transforms | Animating Selections
Animating Transforms
The Text node supports animation in a similar way to most other Nuke nodes, in that you can
animate individual controls in the properties panel, but the Group tab animation layer table enables
you to visualize your animations more easily.
Animating Selections
1. Set the starting position for the selection(s) using the Viewer handles as described in
Transforming Text.
Animating Groups
1. Set the starting position for the groups using the transform controls as described in Transforming
Text.
2. Select a group in the animation layers table and then click the button above the Viewer to add
a starting keyframe.
3. Move the playhead to a new frame and transform the group using the transform controls or the
handles in the Viewer.
A keyframe is added automatically on the new frame.
4. Repeat the process to produce the required animation.
USER GUIDE
802
Changing the Text Color | Animating Groups
2. Adjust the color parameter or click on the color picker button to select a color for the text.
3. If you want to create a color gradient across the text, select anything other than none from the
ramp:
• linear - the ramp changes linearly from one color into another.
• smooth0 - the ramp color gradually eases into the point 0 end. This means colors in the point 0
end are spread wider than colors in the point 1 end.
• smooth1 - the ramp color eases into the point 1 end. This means colors in the point 1 end are
spread wider than colors in the point 0 end.
• smooth - the ramp color gradually eases into both ends. This means colors in the point 0 and
point 1 ends are spread wider than colors in the center of the ramp.
USER GUIDE
803
Masking Regions of the Viewer | Animating Groups
USER GUIDE
804
Adding Shadows to Text | Animating Groups
To add a shadow to your text, simply select the Shadows tab and check enable drop shadows.
If you want the drop shadow to be the same color as the input image, enable inherit input color.
Otherwise, use the color controls to select a color for the drop shadow.
Use opacity to adjust the opacity of the drop shadow relative to the input's alpha channel.
To adjust the direction of the shadow, use the angle slider. A value of 0 or 360 equals left direction.
USER GUIDE
805
Adding Shadows to Text | Animating Groups
Use distance to set the distance of the shadow from the input content.
If necessary, set the shrink/expand slider to a negative value to erode the shadow or a positive value
to dilate it.
USER GUIDE
806
Adding Shadows to Text | Animating Groups
USER GUIDE
807
Adding a Drop Shadow | Animating Groups
USER GUIDE
808
Adding a Drop Shadow | Animating Groups
6. To adjust the direction of the shadow, use the angle slider. A value of 0 or 360 equals left
direction.
Shrink/expand Shrink/expand
set to 0 set to 3.5
USER GUIDE
809
Adding a Drop Shadow | Animating Groups
10. Use the input [operation] bg dropdown menu to select how you want to combine the input and
bg inputs.
USER GUIDE
810
Analyzing and Matching Clips
This chapter concentrates on the CurveTool node. The node analyzes an aspect of a frame sequence
and creates an animation curve based on the analysis. You can then use the curve data to drive
effects elsewhere. For instance, you can add matching flicker to a CG render.
Introduction
You can use the CurveTool node to analyze four different aspects of your frame sequence, depending
on which curve type you select in the node controls:
• AutoCrop finds black regions (or any color you pick) around the edges of the frame sequence and
tracks their size and position over time. This is useful for running a Crop node to remove
unnecessary outer pixels and speed up the calculation. For more information, see Cropping Black
Edges .
• Avg Intensities is useful for obtaining the average pixel values in a frame sequence and then
matching that intensity elsewhere. It takes the first value in the frame range and the next value
selected, adds them together and divides by two, returning the average between the two. You might
want to use it to match the background plate’s fire flicker in the smoke in the foreground plate, for
example. For more information, see Analyzing the Intensity of a Frame Sequence and Removing
Flicker .
• Exposure Difference analyzes the exposure changes in the frame sequence. It takes the first value
in the frame range and the next value selected, and returns the difference between the two. You can
use the results to match the same exposure elsewhere. For more information, see Analyzing
Exposure Differences.
• Max Luma Pixel tracks the brightest and dimmest pixels in the frame sequence. This can be useful
in the following case, for example. Let’s say you have a night-time sequence depicting a person
moving inside a dark house holding a flashlight, and want to add lens flare on the moving flashlight.
Knowing where the brightest pixel is located over time allows you to match-move the lens flare and
position it correctly without having to manually animate it. For more information, see Tracking the
Brightest and Darkest Pixels .
USER GUIDE
811
Analyzing and Matching Clips |
Tip: If you are familiar with Shake, you may have used the PixelAnalyzer node. The
CurveTool node is the Nuke equivalent of PixelAnalyzer.
USER GUIDE
812
Cropping Black Edges |
Once Nuke has created the animation curve, you can copy the animation or any of its values into a
Crop node, for example, to match the analyzed crop area there. Ctrl/Cmd+click on the animation
button and drag and drop it to another parameter to create an expression linking the two.
USER GUIDE
813
Analyzing the Intensity of a Frame Sequence |
Once Nuke has created the animation curve, you can copy the animation or any of its values into a
color correction node, for example, to match the analyzed intensity there. Ctrl/Cmd+click on the
animation button and drag and drop it to another parameter to create an expression linking the two.
USER GUIDE
814
Removing Flicker |
Removing Flicker
You can also use the CurveTool to stabilize flickering in your footage. To do this:
1. Connect a CurveTool node to your footage.
2. In the Curve Type dropdown, select Avg Intensities.
3. If necessary, select the channels you want analyzed in the channels controls, and adjust the region
of interest (ROI) box in the Viewer to cover your analysis area.
4. When you’re ready, click Go! and specify a frame range in the Frames to Execute dialog that
opens. CurveTool analyzes your footage, and the resulting values appear on the IntensityData
tab.
5. Create a Grade node (Color > Grade) and connect it to your footage.
6. From the CurveTool’s IntensityData tab, Ctrl/Cmd+drag the analysis result to the multiply field in
the Grade node controls.
7. Right-click on the multiply field, and select Edit expression, or press the equals (=) button with the
field selected.
8. In the dialog that appears, add 1/ in front of the Expression field entry. This inverts the brightness
values detected by the CurveTool node, and enables the Grade tool to stabilize brightness
changes causing flickering in your footage.
USER GUIDE
815
Analyzing Exposure Differences |
Once Nuke has created the animation curve, you can copy the animation or any of its values into a
color correction node, for example, to match the analyzed exposure there. Ctrl/Cmd+click on the
animation button and drag and drop it to another parameter to create an expression linking the two.
USER GUIDE
816
Tracking the Brightest and Darkest Pixels |
Once Nuke has created the animation curve, you can copy the animation or any of its values into
another node to match that node’s effect with the brightest or darkest pixels in the frame sequence.
Ctrl/Cmd+click on the animation button and drag and drop it to another parameter to create an
expression linking the two.
USER GUIDE
817
3D Compositing
Nuke’s 3D workspace allows you to set up a 3D composite for camera moves, set replacement, and
other applications where you need to simulate a "real" dimensional environment.
Overview
This chapter explains how to set up a 3D scene in Nuke, and how to add objects and cameras in the
3D workspace. You’ll also see how to texture objects, transform objects and cameras, and render out
scenes for use in other areas of your script.
Although the 3D workspace has many potential uses, you’re most likely to use it - at least initially - to
create pan-and-tile scenes. These are scenes with 2D image planes arranged into a curved shape, and
then rendered out through an animated camera to give the illusion of a seamless environment.
The 3D objects in Nuke appear as round shapes to differentiate them from objects that perform 2D
operations. As shown above, you can mix 2D and 3D objects together in the node tree. For example,
you can texture a 3D object with a 2D clip, or take the rendered output from a 3D scene and use it as
a 2D background.
USER GUIDE
818
3D Compositing |
USER GUIDE
819
Setting Up a Scene | The Scene Node
Setting Up a Scene
Each 3D scene includes the following objects: a Scene node, a Camera node, one or more geometry
nodes (i.e., card, sphere, obj), and a ScanlineRender node. Examples of 3D scenes are shown in
Overview and the figure below. In the example, the Scene node receives the output from the
geometry nodes and sends the composite of those objects to the ScanlineRender node, where the
output is converted back to 2D.
Your script may contain multiple Scene nodes, cameras, and 3D render nodes. All 3D objects loaded
in the Properties Bin appear in the 3D Viewer, regardless of whether they are connected to the same
Scene node.
USER GUIDE
820
Setting Up a Scene | The ScanlineRender Node
When an image is connected to the bg input, its resolution becomes the output resolution for the
ScanlineRender node.
When connecting cameras for the 3D scene, the camera you want to use for rendering should be
connected to the ScanlineRender node, like this:
USER GUIDE
821
Setting Up a Scene | The Camera Node
Any additional cameras should be connected to the Scene node. When you have multiple cameras
associated with a 3D scene, you can switch between them by selecting the viewing camera from the
dropdown menu at the top of the Viewer. See the next section, Using the 3D Viewer, for more
information.
USER GUIDE
822
Using the 3D Viewer | Switching to the 3D Viewer
The 3D Viewer.
When you do not have a Camera node in your script, the 3D Viewer uses default views (see the figure
below for the list of options). These views are similar to different cameras that you can look though,
but they don’t appear as objects that you can manipulate in the scene.
USER GUIDE
823
Using the 3D Viewer | To Navigate in the 3D Viewer
The “built-in” views give you different perspectives on your 3D scene. You can quickly switch between
the views by pressing the keyboard shortcuts for right view (X), left view (Shift+X), top view (C), bottom
(Shift+C), front (Z), back (Shift+Z), and three-quarter perspective (V).
USER GUIDE
824
Using the 3D Viewer | To Look Through a Camera
3D Viewer properties.
2. Make the desired changes to the 3D bg and fg colors.
3. From the 3D control type dropdown menu, select the navigation control scheme you want to use
(Nuke, Maya, Houdini, Lightwave, or Modo).
4. Click OK.
Note: The 3D control type also affects the mouse button assignments for panning and
zooming in the node graph and 2D Viewers.
USER GUIDE
825
Using the 3D Viewer | To Lock the 3D Camera View
Note: This selection does not change the camera used for rendering. This changes only the
camera to “look through” for the current 3D Viewer.
Cameras in the current data stream automatically appear in the dropdown menu of cameras you can
select. To select a camera that doesn’t appear in the menu, double-click the camera node to open its
panel, and it is added to the menu.
When the interactive mode is on, you can use the plus (+) and the minus (-) keys to change the
translate values of the camera or light you’ve selected. When the interactive mode is off, these keys
zoom your view in and out.
USER GUIDE
826
3D Scene Geometry | To Use the Interactive 3D Camera View Mode
3D Scene Geometry
There are several options for inserting 3D geometry into your scenes. You can:
• create primitive shapes: cards, cubes, cylinders, and spheres. See Using Built-in Primitive Geometry.
• import models and point clouds created in other 3D applications and exported into OBJ
(Wavefront), FBX, or Alembic files. See Importing Geometry and Point Clouds from Other
Applications.
• create your own geometry and point clouds from scratch. See Creating Point Clouds and Geometry
from Scratch on page 841
Once you've inserted a 3D geometry object into your scene, you can:
• adjust how the object is displayed in the Viewer. See Object Display Properties on page 848.
• select entire objects, as well as vertices or faces on objects. See 3D Selection Tools on page 850.
• merge objects together. See Merging Objects on page 855.
• modify object shapes. See Modifying Object Shapes on page 856.
USER GUIDE
827
Using Built-in Primitive Geometry | Working with Cards
A card object.
A card object may be deformed as a bilinear or bicubic object with controls contained in the card’s
parameters. You can also insert other 3D nodes, such as ProceduralNoise or RadialDistort, to change
the card geometry.
Card nodes have extended bicubics (bicubics with more control points). They allow you to subdivide a
card, giving you finer control for warping an area. You can subdivide the card into an evenly spaced
grid or pick a location to add a row, column, or both.
USER GUIDE
828
Using Built-in Primitive Geometry | Working with Cards
4. Use the card object’s transform controls to manipulate the position, scale, and rotation of the
card in 3D space. For more information, see Transforming from the Node Properties Panel.
A bicubic deformation offers the greatest degree of surface elasticity. You can add any number of
control points on the card and translate these points and their tangents in any direction. The control
point tangents exert a magnetic-like influence over the objects surface.
3. By default, the card has three control points on the x axis, and three on the y axis. To add more
control points, do any of the following:
• Enter new values in the x/y points fields and click the new shape button. For example, to create
a shape with 4 points on the x axis and 6 on the y axis, change the x points value to 4 and the y
points value to 6, and click new shape.
USER GUIDE
829
Using Built-in Primitive Geometry | Working with Cards
• To evenly subdivide the current shape in the x or y directions, click the x subdivide or y
subdivide buttons. This adds one control point between every existing control point in the
selected direction. The x/y points fields are also updated to reflect the current number of
control points.
• To add one row or column of control points, adjust the u or v slider. The u slider specifies the
position of new columns, and the v slider the position of rows. In the Viewer, a yellow cross
marker indicates the position of the new row or column. You can also move the cross marker by
dragging it to a new position in the Viewer. The u and v sliders’ values are updated as you move
the marker. When you are happy with the position, click the uv subdivide button. A row or
column is added in the position you specified. Clicking the button again has no effect, because
there is already a subdivision at the specified position.
4. If you selected bicubic under type, you can adjust the way control point tangents behave when
you are making your changes to the card. Do any of the following:
• To have the original tangents adjusted to create a more uniform subdivision when you are using
x subdivide, y subdivide, or uv subdivide, check uniform subdivision. If you do not check this,
Nuke maintains the original tangents.
• You can move the tangents in the Viewer by clicking and dragging. If you want to move a tangent
together with the opposite tangent so that the two tangents form a continuous line, check
smooth tangent. To break the tangent from the opposite tangent and move the tangent alone,
uncheck smooth tangent.
• To change the length of the opposite tangent to always match the length of the tangent you are
moving, check mirror tangent. If you do not check this, the opposite tangent length is not
changed.
5. Drag the points displayed in the mesh to deform the card.
USER GUIDE
830
Using Built-in Primitive Geometry | Working with Cubes
• Increment or decrement the numbered x, y, and z fields. For each control point, the controls for
translating the point itself are shown on top of the controls for translating the tangents.
• Or drag on any control point or tangent to translate it relative to the current angle of view.
A cube object.
To Add a Cube
1. Click 3D > Geometry > Cube to insert a Cube node.
2. Drag the Cube node’s img pipe to the Read node containing the clip you want to use as a texture.
3. Drag one of the Scene node’s numbered pipes to the Cube node to place the cube in the scene.
4. Use the cube object’s transform controls to manipulate the position, scale, and rotation of the
cube in 3D space. For more information, see Transforming from the Node Properties Panel.
5. Translate any of the cube’s sides to alter its shape.
USER GUIDE
831
Using Built-in Primitive Geometry | Working with Cylinders
A cylinder object.
To Add a Cylinder
1. Click 3D > Geometry > Cylinder to insert a Cylinder node.
2. Drag the Cylinder node’s img pipe to Read node containing the clip you want to use as a texture.
3. Drag one of the Scene node’s numbered pipes to the Cylinder node to place the cylinder in the
scene.
4. Use the cylinder object’s transform controls to manipulate the position, scale, and rotation of the
cylinder in 3D space. For more information, see Transforming from the Node Properties Panel.
USER GUIDE
832
Using Built-in Primitive Geometry | Working with Spheres
A low-resolution cylinder.
A sphere object.
To Add a Sphere
1. Click 3D > Geometry > Sphere to insert a Sphere node.
2. Drag the Sphere node’s img pipe to Read node containing the clip you want to use as a texture.
USER GUIDE
833
Using Built-in Primitive Geometry | Working with Spheres
3. Drag one of the Scene node’s numbered pipes to the Sphere node to place the sphere in the
scene.
4. Use the sphere object’s transform controls to manipulate the position, scale, and rotation of the
sphere in 3D space. For more information, see Transforming from the Node Properties Panel.
USER GUIDE
834
Importing Geometry and Point Clouds from Other Applications | Importing Geometry from OBJ Files
USER GUIDE
835
Importing Geometry and Point Clouds from Other Applications | Importing Geometry and Point Clouds
3. Navigate to the OBJ file, then click Open. Nuke reads in the OBJ file.
4. Drag the ReadGeo node’s img pipe to the Read node containing the clip you want to use as a
texture.
5. Drag one of the Scene node’s numbered pipes to the ReadGeo node to place the OBJ object in the
scene.
Note: For the FBX SDK version used in Nuke, see Third-Party Library Versions.
Tip: If you have trouble with .fbx files, it may be because they were written with an older
version of FBX. If they load very slowly, it is also possible that they are ASCII rather than
binary. To get around these problems, you can use the FBX converter on the Autodesk
website (http://usa.autodesk.com/fbx/download/). It converts between various different
formats, including older FBX versions, ASCII, and binary, and is available on Windows, Mac,
and Linux.
The mesh’s vertices, normals, UVs, and vertex colors are read on a per frame basis or at frame 0. If
there are any shape or cluster deformers, they are applied to the vertices. Materials or textures are
not read in.
USER GUIDE
836
Importing Geometry and Point Clouds from Other Applications | Importing Geometry and Point Clouds
2. In the ReadGeo controls, click the folder icon next to the file field and navigate to the .fbx file that
contains the mesh you want to import. Click Open.
3. From the animation stack dropdown menu, select the take you want to use. FBX files support
multiple takes. Usually, one of them is a default take that contains no animation.
4. From the node name dropdown menu, select the mesh you want to import from the .fbx file.
5. To adjust the frame rate used to sample the animation curves, enter a new value (frames per
second) in the frame rate field. The frame rate you enter is only used if you check use frame
rate. Otherwise, the frame rate from the .fbx file is used.
6. If you want to import all the meshes in the .fbx file rather than just one, check all objects. This
overrides whatever you have selected under node name. If the objects are animated, check read
on each frame. This bakes each object's transform into the mesh points and preserves the
animation.
7. If you want to modify the transform properties imported from the .fbx file, uncheck read
transform from file and make the necessary modifications. As long as read transform from file
is unchecked, your changes are kept.
8. To reload the transform properties from the .fbx file, click the Reload button.
USER GUIDE
837
Importing Geometry and Point Clouds from Other Applications | Importing Geometry and Point Clouds
Tip: In addition to meshes and point clouds, you can also import cameras and transforms
from Alembic files.
To learn how to export files in the Alembic (.abc) format, refer to Exporting Geometry,
Cameras, Lights, Axes, or Point Clouds for more information.
USER GUIDE
838
Importing Geometry and Point Clouds from Other Applications | Importing Geometry and Point Clouds
Selected parent items are indicated by a yellow circle, and selected child items by a yellow bar
(these turn orange when you select them in the list). Unselected items do not have an indicator
next to them.
3. To import specific items, you must first deselect the root item by clicking on the yellow circle. This
de-selects the root and any child items. Then, select specific items in the scenegraph by clicking
on the blank space where the circles had been, as shown below:
Tip: If you always want .abc files to import all-in-one without displaying the import
scenegraph, enable Preferences > Behaviors > File Handling > always load abc files as
all-in-one.
Nuke creates ReadGeo, Camera, and Axis nodes as necessary, depending on what you selected to
import from the scene.
5. On ReadGeo nodes, you can adjust the following:
• If the objects you imported are animated, make sure read on each frame is checked. This
preserves the animation. When read on each frame is disabled, use lock frame to select the
frame the object is loaded at.
• If you don’t want to render motion blur, disable sub frame for faster UI interactions.
• In the frame rate field, define a frame rate (frames per second) to sample the animation curves.
• Use render points as to determine how point primitives are rendered: either as Nuke point
clouds or Nuke particles.
USER GUIDE
839
Importing Geometry and Point Clouds from Other Applications | Importing Geometry and Point Clouds
• Enable use geometry colors to apply geometry color attributes read from .abc files and apply
them to the Nuke geometry.
Note: When disabled, this control can cause differences in rendered output when
compared to previous versions of Nuke. If this occurs, enable use geometry colors in the
ReadGeo properties panel.
• Any mesh items imported are listed on the Scenegraph tab of the ReadGeo node. To display all
items that exist in the Alembic file in the list, check view entire scenegraph. This allows you to
add items to the list or remove them from it by clicking on the yellow and blank indicators on
the right.
Tip: To load specific items from an Alembic file, you can also create a ReadGeo, Camera, or
Axis node, check read from file, and click the folder icon on the File tab to browse to an
.abc file.
USER GUIDE
840
Creating Point Clouds and Geometry from Scratch | Importing Geometry and Point Clouds from
This section focuses on creating point clouds using the DepthToPosition, PositionToPoints, and
DepthToPoints nodes available in Nuke. However, if you have a NukeX license, you can also use the
CameraTracker and PointCloudGenerator nodes to create point clouds or the ModelBuilder node to
build 3D models for 2D shots. See Creating Dense Point Clouds and Using ModelBuilder for more
details.
USER GUIDE
841
Creating a Position Pass Using the DepthToPosition Node | To Create a Position Pass using
4. In the DepthToPosition tab of the DepthToPosition node, select the depth channel from the
depth dropdown menu. You should now see a position pass in the Viewer.
USER GUIDE
842
Creating a Position Pass Using the DepthToPosition Node | To Create a Position Pass using
5. If you want to change the output channel, select the channel you would like, or create your own,
from the output dropdown menu.
6. Set the far control value to specify at what distance from the camera the depth values are
ignored. This prevents large depth values from creating unwanted banding caused by the
precision of the floating math calculations.
The DepthToPosition node allows you to create a position pass from an image’s depth pass, and feed
that into PositionToPoints to ultimately create a point cloud. In fact the three nodes,
DepthToPosition, PositionToPoints, and DepthToPoints can be used together, as DepthToPoints is a
gizmo that contains the DepthToPosition and PositionToPoints nodes.
To learn more about generating depth maps, please refer to Generating Depth Maps.
USER GUIDE
843
Creating a Dense Point Cloud Using the PositionToPoints Node | To Create a Point Cloud Using
USER GUIDE
844
Creating a Dense Point Cloud Using the PositionToPoints Node | To Create a Point Cloud Using
USER GUIDE
845
Creating a Point Cloud Using the DepthToPoints Node | To Create a Point Cloud Using DepthToPoints
4. In the DepthToPoints User tab, select the depth channel from the depth dropdown menu. If your
channel contains a normal channel, select this from the surface normal dropdown menu, or
connect an image containing normal data to the norm input of the node. You should now see the
point cloud in the 3D Viewer.
5. To change the number of points, adjust the point detail slider. A value of 0 means no points are
displayed. A value of 1 displays all available points.
6. To change the size of the points, adjust the point size slider.
USER GUIDE
846
Creating a Point Cloud Using the DepthToPoints Node | To Create a Point Cloud Using DepthToPoints
Tip: If you are having trouble viewing the image and point cloud, ensure that your image’s
alpha is not set to black.
USER GUIDE
847
Object Display Properties | To Edit an Object’s Display Attributes
• solid+wireframe displays the geometry as solid color with the object’s geometry outlines.
USER GUIDE
848
Object Display Properties | To Edit an Object’s Display Attributes
USER GUIDE
849
3D Selection Tools | Selection Modes
3D Selection Tools
Using the 3D selection tools in the top right corner of the Viewer, you can select nodes, vertices and
faces on a 3D object. Additionally, you can select individual 3D objects in the 3D view, which is handy
when you have more than one object in a node.
Selection Modes
Nuke features three selection modes, Rectangle, Ellipse, and Lasso. Selection modes work the same
in all Viewer contexts, whether you're selecting vertices, faces, or objects. The selection mode
dropdown is located above the Viewer at the top-right.
USER GUIDE
850
3D Selection Tools | Selecting Nodes
• Alt + Shift - subtractive selection. Holding Alt + Shift and selecting vertices, faces, or objects
removes the selection from any existing selection.
Selecting Nodes
You can select nodes with the Node selection tool . This is the default selection tool, and
corresponds to the familiar way of selecting 3D object nodes in the Viewer.
USER GUIDE
851
3D Selection Tools | To Save or Restore Selected Vertices Using the GeoSelect Node
Note: The selection mode is set by the Viewer - changing geometry nodes translates your
selections to the new object.
You can also use the Vertex selection tool to edit geometry using the EditGeo node. See Modifying
Objects Using the EditGeo Node.
5. You can also include hidden items by selecting the occlusion test button . Deselect it if you
don’t want to include occluded vertices in your selection. Select if you want to select both visible
and occluded vertices.
USER GUIDE
852
3D Selection Tools | Selecting Faces on a 3D Object
5. In the GeoSelect properties panel, you can also uncheck the selectable box to freeze your
selection so it can’t be changed. Checking the box again enables selection again and you can
continue selecting vertices as normal.
6. With the display and render controls you can select the display option you want for your object.
For more information on these controls, see Object Display Properties.
7. When you’re happy with your selection, click save selection to store the vertices in the GeoSelect
node.
8. The vertices are saved by the GeoSelect node and can be restored by clicking restore selection.
You can also use the Face selection tool to edit geometry using the EditGeo node. See Modifying
Objects Using the EditGeo Node.
1. Click the Face selection tool to activate it. It is disabled by default.
2. Select faces on the object by dragging a marquee over the faces you want to select.
3. By default, a new selection replaces an existing one, but you can also add and remove from
existing selection:
• To add to existing selection, hold down Shift while selecting.
• To remove from existing selection, hold down Shift+Alt while selecting.
USER GUIDE
853
3D Selection Tools | Selecting 3D Objects
Selecting 3D Objects
When you have more than one 3D object in one node (such as in a case when you’re reading in a .fbx
file with multiple objects), you can use the Object selection tool to select them. To select objects,
activate the Object selection tool and click on the object you want to select in the 3D view.
1. Click the snap dropdown menu on the properties panel of the 3D object you want to move
and select Match selection position. The object is now positioned to match the selected vertices.
2. If you select snap > Match selection position, orientation, your 3D object is positioned and
aligned according to the 3D vertex selection.
3. If you select snap > Match selection position, orientation, size, your 3D object is positioned,
aligned, and scaled according to the selected vertices.
USER GUIDE
854
Merging Objects | To Merge Your 3D Objects
Merging Objects
With the MergeGeo node, you can merge your 3D objects together to process all of them at the same
time. For example, after merging your objects, you can use a Transform node to move the objects
together, or add an ApplyMaterial node to apply a global material to them (note that this overrides
any individual materials applied to the geometry before it was merged).
USER GUIDE
855
Modifying Object Shapes | Modifying Objects Using the EditGeo Node
You can modify 3D objects by selecting vertices or faces in the Viewer using the EditGeo node or by
using lookup curves, power functions, images, a Perlin noise function, a distortion function, or
trilinear interpolation.
Tip: If you don’t have an image or texture associated with your geometry, you may find that
enabling the headlamp control in the Viewer properties improves visibility.
Press S in the Viewer to display the Viewer properties, then enable the 3D > headlamp
checkbox.
4. Set the Viewer selection mode using the 3D selection tools in the top right corner of the Viewer:
• Vertex selection - allows you to select individual vertices on geometry, giving you fine control
while editing. You can also marquee select multiple vertices or use additive selection by holding
down Shift.
• Face selection - allows you to select individual faces on geometry. You can also marquee select
multiple faces or use additive selection by holding down Shift.
USER GUIDE
856
Modifying Object Shapes | Modifying Objects Using the EditGeo Node
Note: You can turn off occlusion testing by clicking the disable icon in the Viewer to allow
you to select vertices and
faces that are hidden from the view point.
For example, selecting faces on the “front” of a cube with occlusion testing disabled also
selects faces on the opposite, hidden side of the cube.
Tip: Holding Ctrl/Cmd+Alt allows you to drag the center of the axis across the surface of the
geometry, with the orientation set to the nearest face's normal.
USER GUIDE
857
Modifying Object Shapes | Modifying Objects Using the EditGeo Node
6. Make vertex or face selections in the Viewer as required. Hold Shift to add to a selection or
Alt+Shift to remove selections.
7. When you’re satisfied with your selections, drag the axis associated with the selection to a new
position to edit the geometry.
To Animate Edits
1. Set the Viewer selection mode using the 3D selection tools in the top right corner of the Viewer:
• Vertex selection - allows you to select individual vertices on geometry, giving you fine control
while editing. You can also marquee select multiple vertices or use additive selection by holding
down Shift.
• Face selection - allows you to select individual faces on geometry. You can also marquee select
multiple faces or use additive selection by holding down Shift.
2. Make selections in the Viewer and then click in the properties panel.
3. Scrub the playhead to the required frame and transform the geometry using the handles in the
Viewer.
A keyframe is added automatically on the new frame.
4. Repeat the process to produce the required animation.
USER GUIDE
858
Modifying Objects Using Lookup Curves | Modifying Objects Using the EditGeo Node
You change the different vertex values (x, y, or z) by modifying their associated 2D curves in lookup
tables (LUTs). The x axis in the LUT represents the current vertex value, and the y axis the new vertex
value.
By default, the curve is a diagonal line where all the points in the curve have the same value on the y
axis (the new value) as they do on the x axis (the current value). Because both x and y values are the
same, there is no change in the object’s shape.
By modifying, for example, the CrosstalkGeo node’s y LUT the following way, you can set some of the
vertex y values of a sphere to 0 to squash its bottom half:
With the CrosstalkGeo node, you can also use one of the vertex x, y, and z values to evaluate the
lookup curve and then add the result to another vertex value. For example, you could modify the x->y
curve, using the vertex x value to find the new value on the curve, and then add that to the vertex y
value. This way, you can modulate the y values by another channel.
By default, these curves are horizontal lines at y=0. They produce no change, because the value added
to the vertex (the new value on the y axis) is 0.
USER GUIDE
859
Modifying Objects Using Lookup Curves | To Modify Objects Using Lookup Curves
USER GUIDE
860
Modifying Objects Using a Power Function | To Modify Objects Using a Power Function
Tip: If you set the log x, y, and z values to 1 and check swap, the LogGeo node produces no
change in the incoming geometry. If you want to try out how the node works, this is a good
place to start as you can then gradually adjust the values from there.
The following images illustrate the effect of the LogGeo node on the default Nuke cylinder and sphere
when swap is checked in the LogGeo controls. Notice that if these objects were not positioned in the
default location (centered around 0,0,0), the results would be different.
USER GUIDE
861
Modifying Objects Using a Power Function | To Modify Objects Using a Power Function
USER GUIDE
862
Modifying Objects Using an Image - Method 1 | To Modify Objects Using an Image
The following image illustrates the principle behind the DisplaceGeo node. A Card node is modified
to resemble the pattern of a Checkerboard image.
USER GUIDE
863
Modifying Objects Using an Image - Method 1 | To Modify Objects Using an Image
3. In the node’s controls, use the display dropdown menu to select how you want to view your object
in the Viewer while making changes to it.
4. Read in your image map and connect it to the DisplaceGeo node’s displace input.
5. Adjust the following controls:
• From the channels dropdown menu and check boxes, select the channels to use for the
displacement value.
• From the source dropdown menu, select the source for the displace value. For example, if you
selected rgb or rgba from the channels dropdown menu, you can use the red, green, blue, or
alpha channel or the pixel luminance as the source. You can also select rgb relative to move the
vertices on the x, y, and z axes by the amounts in rgb, or rgb absolute to move the vertices to
the values in rgb.
• To define the scale of the displacement, adjust the scale slider. The higher the value, the bigger
the displacement.
• To give x, y, and z different weightings, enter new weights the weight fields. By default, each
weighting is set to 1. If you don’t want to make changes to a value, set its weight to 0.
• To offset x, y, and z values, enter the value by which you want to offset them in the offset fields.
For example, if you enter 0.5 in the y offset field, 0.5 is added to the y value.
• To change the size of the filtering applied to the image before the displacement, adjust the filter
size slider.
• To select the filtering algorithm applied to the image before the displacement, select an
algorithm from the filter dropdown menu. For more information, see Choosing a Filtering
Algorithm.
• To change the name of the attribute that’s used as the vertex’s UV coordinates to find the image
pixel, enter a name in the attrib name field.
• Usually, the normals aren’t correct after the vertices have been moved. To recalculate them after
the displacement, check recalculate normals.
USER GUIDE
864
Modifying Objects Using an Image - Method 2 | Connecting the Displacement Node
Displacement mapping is a technique for adding geometric detail to object surfaces as you render
them. Unlike the DisplaceGeo node, The Displacement node does this on the fly, only displacing
those parts of the geometry that are visible at any given moment. Displacement considers the point
of view of camera to determine which parts of the displacement need rendering, thus saving render
time. It’s also possible to optimize the level of tessellation to be the level that you need for an object
at a certain distance.
USER GUIDE
865
Modifying Objects Using an Image - Method 2 | Adjusting Displacement Controls for Rendering
5. Use the filter dropdown menu to select a filtering algorithm. For more information, see Choosing
a Filtering Algorithm.
6. If you want to automatically calculate normals after the displacement, check build normals.
Uncheck this, if you want the normals calculated from the normals input.
7. Proceed to Adjusting Displacement Controls for Rendering below.
Note: Using a high number of geometry and Displacement subdivisions is likely to slow
down rendering so far it becomes unusable - A 10x10 card with max subdivisions set to 4
generates 51200 triangles!
2. Set the mode dropdown menu to the mode used in polygon subdivision:
• uniform - uniform polygon tessellation. This is a good option mainly for testing your result, and
only in rare occasions the best option to actually use for a displacement render.
• screen - tessellation is determined by the screen size. This is the default and often the best
mode option. The tessellation is determined by the size of the tessellate polygons on the screen.
This mode ensures that no new polygons are created once a particular polygon edge screen
length is reached.
USER GUIDE
866
Modifying Objects Using an Image - Method 2 | Adjusting Displacement Controls for Rendering
Note: Keep in mind that applying the Displacement shader to a very complex high
resolution geometry can be very slow.
USER GUIDE
867
Modifying Objects Using a Perlin Noise Function | To Modify Objects Using a Perlin Noise Function
You can select the type of noise and control its look in the ProcGeo node’s parameters.
USER GUIDE
868
Modifying Objects Using a Perlin Noise Function | To Modify Objects Using a Perlin Noise Function
USER GUIDE
869
Modifying Objects Using a Distortion Function | To Modify Objects Using a Distortion Function
USER GUIDE
870
Modifying Objects Using a Distortion Function | To Modify Objects Using a Distortion Function
4. To select whether the distortion is a barrel or pin-cushion, adjust the distortion slider. Values
below 0 produce a barrel distortion, whereas values above 0 produce a pin-cushion distortion. If
you set the value to 0, the 3D object is not distorted.
5. To control the magnitude of the distortion, adjust the power bias slider. The higher the value, the
more distorted the object becomes.
6. To move the center point of the distortion, enter new coordinates in the rotation center fields.
7. To control the amount of distortion in each of the x, y, or z directions, adjust the values in the
scale fields.
8. To keep the object’s center in its original place in the 3D space, check preserve center.
USER GUIDE
871
Modifying Objects Using a Trilinear Interpolation | To Modify Objects Using a Trilinear Interpolation
USER GUIDE
872
Materials and Textures | To Modify Objects Using a Trilinear Interpolation
USER GUIDE
873
Object Material Properties | To Modify Objects Using a Trilinear Interpolation
You can also add several Shader nodes one after the other to produce more complex effects. For this,
you should use the unlabeled inputs on the Shader nodes.
The material property settings you apply affect the render output of the scene.
You can insert 3D shader nodes in the following places in your scripts:
• between the 2D image you’re using for the surface texture and the 3D object node that creates the
surface, or
• after the 3D object nodes using the ApplyMaterial node. This is a good way to apply a global
material to all objects. See Applying a Material Using the ApplyMaterial Node.
You can use the map connectors to input a mask image to limit the effect of the material change.
Note: You can only see the effect of your changes to an object’s material properties in the
2D view.
USER GUIDE
874
Object Material Properties | Applying a Material Using the ApplyMaterial Node
Tip: If you want to apply a global material to several objects, you can also connect the
unnamed input to a MergeGeo node. This overrides any materials applied to the individual
geometry nodes before they were merged.
3. Connect your materials (for example, a 2D texture image, a BasicMaterial node, or a Wireframe
node) to the ApplyMaterial node’s mat input.
USER GUIDE
875
Object Material Properties | Applying a Material Using the ApplyMaterial Node
By default, ApplyMaterial applies the material from the mat input onto all incoming geometry
objects.
4. If you created your geometry using ModelBuilder or imported an Alembic file using ReadGeo, you
can choose to only apply the material onto a particular object in the incoming geometry. To do so,
open the ApplyMaterial properties and set filter to name. This allows you to tell ApplyMaterial to
ignore any geometry that doesn't match the filter on the right.
Note: You can also limit a material to a particular object if your geometry was created or
imported using a third-party plug-in that adds a name attribute for the geometry objects.
5. To set how to filter the incoming geometry objects, set the dropdown menu next to name to:
• equals - set the material on any objects whose name matches the string in the filter name field
exactly.
• doesn't equal - set the material on any objects whose name does not match the string in the
filter name field exactly.
• contains - set the material for any objects whose name contains the string in the filter name
field.
This can be useful when you have some structure to your object names. For example, if you
have objects like /Root/Chair/Seat, /Root/Chair/Back, and /Root/Table, you can select contains
and set the filter name field to Chair to apply the material to all parts of the chair while leaving
the table alone.
• doesn't contain - set the material for any objects whose name does not contain the string in
the filter name field.
USER GUIDE
876
Object Material Properties | Adjusting the Diffuse Color
6. To set the filter name, type the name directly into the text entry field or use the choose button to
open the Object Name Chooser dialog and select a filter name from a list of incoming geometry
objects.
Tip: You can also Ctrl/Cmd+click or Shift+click in the Object Name Chooser dialog to select
multiple objects.
USER GUIDE
877
Object Material Properties | Adjusting Specular Highlights
USER GUIDE
878
Object Material Properties | Simulating Materials That Emit Light
6. If necessary, adjust shininess channel to control how the input channels are used to map the
black and white values to the min shininess and max shininess parameters when a mapSh input
is connected. Select red to use the red channel for the mapping, green to use the green channel,
blue to use the blue channel, luminance to use the luminance, or average rgb to use the
average of the red, green, and blue channels.
USER GUIDE
879
Object Material Properties | Simulating Smooth, Regular Surfaces
8. Adjust min shininess and max shininess to set the minimum and maximum shininess values. If
you haven’t connected an image to the mapSh input of the node, the average of these values is
used as the shininess value for the material.
9. Select a shininess channel to control how the input channels are used to map the black and
white values to the minShininess and maxShininess parameters when a mapSh input is
connected. Select red to use the red channel for the mapping, green to use the green channel,
blue to use the blue channel, luminance to use the luminance, or average rgb to use the
average of the red, green, and blue channels.
USER GUIDE
880
Object Material Properties | Rendering a Wireframe Overlay on Your Geometry
Note: The Wireframe node currently only works if you are rendering your 3D scene using
ScanlineRender, RayRender and PrmanRender do not support the Wireframe shader.
1. Select 3D > Shader > Wireframe to insert a Wireframe node into your script.
2. Place the Wireframe node between your 2D texture image and your 3D object node, or connect it
to an ApplyMaterial node’s mat input.
USER GUIDE
881
Object Material Properties | Rendering a Wireframe Overlay on Your Geometry
3. In the Wireframe properties, use the channels dropdown menu to select the channels you wish
to process.
4. From the operation dropdown, select how to apply the wireframe overlay to your geometry:
• opaque - display the wireframe on fully opaque black input geometry.
USER GUIDE
882
Object Material Properties | Rendering a Wireframe Overlay on Your Geometry
• multiply - multiply the wireframe by the input shader or texture and display it on fully
transparent geometry.
• modulate - apply standard diffuse shading to the wireframe and display it on top of the input
shader or texture. This takes into account any lights in the scene.
5. To set the width of the wireframe lines (in pixels), adjust line width.
USER GUIDE
883
Object Material Properties | Rendering a Wireframe Overlay on Your Geometry
USER GUIDE
884
Merging Two Shader Nodes | To Merge Two Shaders
4. From the operation dropdown menu, select how you want to composite the results of the two
shader nodes together:
• to only use input B in the composite, select none.
• to only use input A in the composite, select replace.
USER GUIDE
885
Merging Two Shader Nodes | To Merge Two Shaders
USER GUIDE
886
Merging a Material with the Objects Behind | To Merge a Material with the Objects Behind
USER GUIDE
887
Merging a Material with the Objects Behind | To Merge a Material with the Objects Behind
3. From the channels dropdown menu, select the channels you want to affect.
4. From the operation dropdown menu, select how you want to composite the BlendMat node’s
input material and the background pixels together:
• to set the material to black, select none.
• to show the material where the material and the background overlap, select replace.
• to composite the material over the background pixels according to the material’s alpha, select
over.
USER GUIDE
888
Merging a Material with the Objects Behind | To Merge a Material with the Objects Behind
• to show the background pixels where the material’s alpha is black, select stencil. Where the
material’s alpha is white, the material is set to black.
For this to work, the BlendMat node needs to process the alpha channel, so set channels to
rgba.
This operation is the opposite of mask.
• to show the background pixels where the material’s alpha is white, select mask. Where the
material’s alpha is black, the material is also set to black.
For this to work, the BlendMat node needs to process the alpha channel, so set channels to
rgba.
This operation is the opposite of stencil.
USER GUIDE
889
Merging a Material with the Objects Behind | To Merge a Material with the Objects Behind
• to use the material if its pixel values are greater than the background pixels or else use the
background pixels, select max.
• to use the material if its pixel values are less than the background pixels or else use the
background pixels, select min.
USER GUIDE
890
Replacing Material Channels with a Constant Color | To Merge a Material with the Objects Behind
This is similar to using a black Constant node as the input texture. However, the advantage of using
the FillMat node is that you can easily apply it to the alpha channel in addition to the rgb channels.
Another advantage is that the FillMat node doesn’t break the shading sequence, so you can insert it
after other material nodes in your node tree.
1. Select 3D > Shader > FillMat to insert a FillMat node between the 2D image you’re using for the
surface texture and the 3D object node that creates the surface.
USER GUIDE
891
Replacing Material Channels with a Constant Color | To Merge a Material with the Objects Behind
2. In the FillMat controls, use the channels controls to select the channels you want to replace with
a constant color.
3. Use the color control to select the constant color. By default, this is set to black (0).
USER GUIDE
892
Projecting Textures onto Objects | Projecting Textures with the UVProject Node
The UVProject node changes the uv values of the vertices whereas the Project3D node is a material
shader.
USER GUIDE
893
Projecting Textures onto Objects | Projecting Textures with the Project3D Node
• To scale (stretch or squash) the texture UV coordinates in the horizontal direction, adjust the u
scale slider. To scale them in the vertical direction, adjust the v scale slider. The higher the
value, the more the texture is stretched.
• To change the name of the attribute that’s used as the vertex’s UV coordinates to find the image
pixel, enter a name in the attrib name field.
USER GUIDE
894
Importing UDIM Patches | Projecting Textures with the Project3D Node
For example, the texture for the region (1,0) - (2,1) would have UDIM 1003, and the texture for (0,1) -
(1,2) would have UDIM 1011. A set of patches following the UDIM scheme might look like this:
• color.1001.tif
• color.1002.tif
• color.1003.tif
• color.1004.tif
• color.1005.tif
Where color is the channel name and 1001, 1002, ... is the UDIM value for each patch in UDIM space.
In Nuke, you can import a set of patches following the UDIM scheme and quickly apply them to the
surface of a 3D object. To do this:
1. Select Image > UDIM Import from the Toolbar.
2. Select the UDIM image or sequence to import and click Open.
USER GUIDE
895
Importing UDIM Patches | Projecting Textures with the Project3D Node
Note: If there’s a conflict between the patches that you’ve added, a notification appears
underneath the Add Files button describing the conflict.
A typical conflict would be if you attempted to import multiple files sharing the same UDIM
value.
5. Check the postage stamp checkbox to enable a thumbnail view of the patch on the Read node.
6. Check the group nodes checkbox to place the Read nodes for each individual patch into a Group
node. The name of the Group node is based on the name of the image or sequence.
7. Click Ok to import the files.
This creates a Read node for every patch in the sequence and appends a UVTile node (which allows
you to modify a patch’s coordinates in UV space) to each one.
Note: If you checked group nodes in the UDIM import dialog, highlight the Group node
and press Ctrl+Return (Cmd+Return on a Mac) to view the contents.
The UDIM value for each patch is inserted into the udim field in the UVTile node. This value is
important as it offsets every Read node (and therefore, patch) to the correct UDIM space. A number of
MergeMat nodes are used to combine the Read/UVTile node combinations.
Note: The MultiTexture node at the end of the tree optimizes rendering when multiple
MergeMat nodes are chained together. It uses the default Iop vertex shader and only
handles multi-texturing. This node has no fields or knobs and is intended for use only with
the UDIM Import operation.
To apply these patches to a 3D object in your scene, simply connect the output of the last node in the
tree to the img input of a ReadGeo node.
To move a patch to a different point in UV space, in the UVTile control panel enter a different UDIM
value or disable the udim field and enter values in the u and v fields.
USER GUIDE
896
Importing UDIM Patches | Projecting Textures with the Project3D Node
Note: By default the UDIM Import operation parses the file name based on the UDIM
number. It is possible, however, to create a custom parsing function to work with your own
naming conventions. Please refer to the Python Developers Guide for details on how to do
this.
USER GUIDE
897
Lighting | Projecting Textures with the Project3D Node
Lighting
The nodes under the Lights menu let you control the lighting in your scene. Using these nodes, you
can bring objects out or push them back, create an illusion of depth, simulate the conditions in the
real world, or simply alter the feeling of the scene.
Nuke features four types of light you can use in your 3D scenes: direct light, point light, spot light, and
environment light. You can add these using the DirectLight, Point, Spotlight, and Environment nodes.
In addition to these, there is a Light node, which lets you create direct, point, and spot lights, as well
as read in lights from .fbx files. For more information, see Working with Lights.
The Light, DirectLight, Point, and Spotlight nodes all have controls that you can use to adjust how the
lights cast shadows in your 3D scene. See Casting Shadows.
Lighting is also affected by the 3D object normals, which are used to determine how the light should
bounce off a surface at any particular point. In Nuke, the Normals node allows you to manipulate
object normals in order to control the diffuse and specular light contributions. See Manipulating
Object Normals.
There’s also a Relight node, which takes a 2D image containing normal and point position passes and
lets you relight it using 3D lights. See Relighting a 2D Image Using 3D Lights.
USER GUIDE
898
Working with Lights | Inserting Direct Lights
• To adjust the settings for shadows, change values for the controls on the Shadows tab. For
more information on these controls, see Casting Shadows.
USER GUIDE
899
Working with Lights | Inserting Spot Lights
USER GUIDE
900
Working with Lights | Inserting Environment Lights
• To adjust the settings for shadows, change values for the controls on the Shadows tab. For
more information on these controls, see Casting Shadows.
To use environment light, you first need to shoot a real life environment as an HDR image. Using the
SphericalTransform node, you then convert this image into a spherical mapped image. The sphere is
used to surround the 3D objects, so that the mapped image color illuminates them.
Environment light only works with shiny object materials that can reflect the mapped image. It results
in a very realistic lighting that makes it easier to integrate the objects into the environment.
1. Read an HDR image of the environment into your script.
2. Select Transform > SphericalTransform to insert a SphericalTransform node after the HDR
image. You use this node to convert the HDR image into a spherical mapped image. In the node’s
controls, select the Input Type and the Output Type (in this case, Sphere).
3. Select 3D > Lights > Environment to insert an Environment node in your script. Connect the
SphericalTransform node to the Environment node’s map input, and the Environment node to the
Scene node.
USER GUIDE
901
Working with Lights | Inserting Environment Lights
USER GUIDE
902
Working with Lights | Inserting Direct Lights, Point Lights, or Spot Lights
Tip: The node can also be used to import lights from .fbx files. This is described under
Importing Lights from FBX Files.
1. Select 3D > Lights > Light to insert a Light node into your script.
2. In the Light controls, select the light type you want to use: point, directional, or spot. The
controls are enabled and disabled according to the light type you select. For example, if you chose
directional light, you get the same controls that appear on the DirectLight node.
3. Adjust the controls as necessary. For information on the functions of the controls, refer to the
following:
• If you selected point as the light type, see Inserting Point Lights.
• If you selected directional as the light type, see Working with Lights.
• If you selected spot as the light type, see Inserting Spot Lights.
USER GUIDE
903
Working with Lights | Inserting Direct Lights, Point Lights, or Spot Lights
If you animate a card to move along the x axis, you can attach a Camera and a Light node with the
look inputs so that they automatically rotate and face the card as it moves. To do this, complete the
following steps:
1. After animating your card, insert an Axis node.
2. Expression link the Axis node to the Card node by holding Ctrl, clicking on the translate
animation button in the Card node's properties, and dragging it to the translate animation
button in the Axis node's properties. The expression link is displayed as a green line with an arrow
denoting the direction of the expression. See Linking Expressions for more information.
3. Insert a Camera node and either drag the camera to the required position in the Viewer, or use
the Camera node properties to adjust the position of the camera.
USER GUIDE
904
Working with Lights | Inserting Direct Lights, Point Lights, or Spot Lights
5. Insert a Light node and drag the light to required position in the Viewer, or use the Light node
properties to adjust the position of the camera.
USER GUIDE
905
Working with Lights | Inserting Direct Lights, Point Lights, or Spot Lights
USER GUIDE
906
Working with Lights | Importing Lights from FBX Files
7. Playback your animated card and notice that the Camera and Light follow the animated card.
Note: For the FBX SDK version used in Nuke, see Third-Party Library Versions.
Tip: If you have trouble with .fbx files, it may be because they were written with an older
version of FBX. If they load very slowly, it is also possible that they are ASCII rather than
binary. To get around these problems, you can use the FBX converter on the Autodesk
website (http://usa.autodesk.com/fbx/download/). It converts between various different
formats, including older FBX versions, ASCII, and binary, and is available on Windows, Mac,
and Linux.
You can use the Light node to read in directional, point, and spot lights from FBX scene files (for
more information on these three light types, refer to Lighting). One Light node only reads in one light.
Therefore, if your .fbx file contains three lights and you want to import all of them into Nuke, you
need to use three Light nodes.
USER GUIDE
907
Working with Lights | Importing Lights from FBX Files
2. In the Light controls, check read from file. This enables the controls on the File tab, allowing you
to read in lights from an .fbx file. It also disables all controls whose values are filled from the .fbx
file. You can still view these values and use them in expressions, but you cannot modify them,
because they are read from the .fbx file. Any changes you make in the .fbx file are reflected in
these values of the Light node.
3. On the File tab, click the folder icon and browse to the .fbx file that contains the light you want to
use. Click Open.
4. From the animation stack dropdown menu, select the take you want to use from the .fbx file.
FBX files support multiple takes in the same file. One of the takes is usually a default take without
any animation.
5. From the node name dropdown menu, select the light node you want to import from the .fbx
file.
6. If you want to override the frame rate used in the .fbx file to sample the animation curves, enter a
new frame rate (frames per second) in the frame rate field. Check use frame rate to use the rate
you entered (rather than the one in the .fbx file).
7. To scale the intensity channel values read from the .fbx file, adjust the intensity scale slider. If
the light is too dark, increase this value.
8. If you want to modify the light properties imported from the .fbx file, uncheck read from file on
the Light tab and make the necessary modifications. As long as read from file is unchecked, your
changes are kept.
9. To reload the light properties from the .fbx file, make sure read from file is checked and click the
reload button on the File tab.
USER GUIDE
908
Casting Shadows | Importing Lights from FBX Files
Casting Shadows
The Light, Point, DirectLight, and Spotlight nodes all have controls that you can use to adjust how the
lights cast shadows in your 3D scene. The following geometry nodes also have controls that allow you
to select whether they receive shadows cast by the lights and whether they themselves cast shadows
on other objects:
• Card
• Cube
• Cylinder
• Sphere
• MergeGeo
• ModelBuilder
• PointCloudGenerator
• PositionToPoints
• ReadGeo
• Scene
Note: The method used to create shadows varies between different render nodes:
• ScanlineRender uses depth mapping to create shadows. It first renders a depth map for each
light that casts a shadow. The depth map is rendered from the light’s point of view, and each pixel in
the depth map represents the distance from the light to the nearest surface the light illuminates in a
specific direction. The depth map is then compared to the render from the point of view of the
camera. If a point is farther away in the image that the camera sees than in the depth map, then that
point is considered to be in shadow.
Depth map shadows are often faster to render than raytraced shadows, but may not appear as
realistic.
USER GUIDE
909
Casting Shadows | To Cast Shadows:
• PrmanRender creates shadows through raytracing. It fires individual light rays from the camera
into the scene for each pixel. When a light ray hits a surface in the scene, PrmanRender traces so
called shadow rays between the intersection point and every light source in the scene. If there are
obstacles between the intersection point and the light sources, the intersection point is considered
to be in shadow.
The advantage of raytracing is that it can be used to create more accurate shadows and shadows
that have soft edges, much like those in the real world. However, compared to creating shadows
using depth mapping, raytracing can take much longer to render.
To Cast Shadows:
1. Open the properties panels for the 3D objects in your scene.
2. Check the cast shadow or receive shadow box, or both.
Cast shadow tells objects in a light’s path to cast shadows onto other objects in the scene.
Receive shadow tells objects to display shadows cast by other objects in the scene. This is useful
for showing occlusion in a scene.
You can also use a Scene node to define these settings for all 3D objects connected to it. In the
Scene properties, set shadow to override inputs and use the cast shadow and receive shadow
controls to override the corresponding controls on the individual 3D objects.
USER GUIDE
910
Casting Shadows | Adjusting Shadows When Using ScanlineRender
3. Make sure you’ve got a Shader node attached to any 3D objects that you want to receive shadows.
4. Attach a light to your scene, and check the cast shadows box on the Shadows tab.
In our example node tree below, we are using a ScanlineRender node, but you could use a
PrmanRender node instead.
Note: If you are using a point light, casting shadows is not supported in the ScanlineRender
node.
USER GUIDE
911
Casting Shadows | Adjusting Shadows When Using ScanlineRender
Note: You can also fix crunchy edges by increasing the number of samples instead of
increasing the depth map resolution.
• samples - this sets the number of samples for the light when generating soft shadows. If soft
shadows in your scene appear dotty or noisy, try increasing this value. The higher the value, the
smoother the soft the shadows become.
USER GUIDE
912
Casting Shadows | Adjusting Shadows When Using ScanlineRender
• jitter scale - the amount of jitter used when doing percentage-closer filtering (PCF) for soft
shadows. A larger jitter scale value results in softer, more perceptually accurate shadows.
PCF works by sampling the depth map at many different positions around the same spot. The
final shadow value for that spot is an average of how many of the samples were occluded or
visible from point of view of the light.
• bias - this is a constant offset that moves the surface sample point away from surface, towards
the light that is casting the shadow. If self-shadowing artifacts appear in the image, you may
want to increase this value. Note, however, that if you increase the value too much, some
shadows may start moving away from the base of the objects that cast them.
USER GUIDE
913
Casting Shadows | Adjusting Shadows When Using PrmanRender
Tip: To generate accurate shadows from a Direct light, view the scene through the light
(using the Viewer's camera dropdown menu) and adjust the Direct light's scale control so
that the part of the scene that should cast shadows fits within the view. This ensures that
none of the shadow-casting geometry is missed by the depth map.
USER GUIDE
914
Casting Shadows | Adjusting Shadows When Using PrmanRender
USER GUIDE
915
Manipulating Object Normals | To Manipulate Object Normals
USER GUIDE
916
Relighting a 2D Image Using 3D Lights | To Relight a 2D Image Using Relight
Relight works by applying a 3D shader to a 2D image using the normal and point position passes
stored in separate image channels, and lets you attach and manipulate a 3D point light (or multiple
lights via a Scene node).
Note: Relight only works with Light nodes set to light type > point.
Tip: If the position pass and normal vectors are contained in separate images, they can be
combined using a ShuffleCopy node, which connects to Relight through the color input.
You can create normal and point position passes using the DepthGenerator node in NukeX, for
example. See Generating Depth Maps.
3. In the Relight properties panel, select the channel containing the normal data from the normal
vectors dropdown menu.
4. Select the channel containing the point position information from the point positions dropdown
menu.
USER GUIDE
917
Relighting a 2D Image Using 3D Lights | To Relight a 2D Image Using Relight
5. Connect a Light node with light type > point to the lights input, or multiple lights via a Scene
node.
6. Connect the camera that was used to render the original scene to the cam input.
7. Attach a shader (a Phong node, for example) to the material input. Depending on the type of
shader you attach, ensure that you've defined the necessary properties for it. For information on
defining material properties, refer to Object Material Properties.
Note: The camera input does not appear until the light inputs have been connected to a
light or scene node, and the material inputs do not appear until the camera input has been
connected.
USER GUIDE
918
Cameras | To Relight a 2D Image Using Relight
Cameras
Nuke supports multiple cameras in a scene, with each providing a unique perspective.
Cameras in a scene.
For details on how to add a camera, look through it, and edit its lens characteristics, see Working with
Cameras.
In addition to using cameras to view and render 3D scenes, you can also set up cameras that project
2D images onto geometry in your scene. For more information, see Projection Cameras.
If you have created a camera in a third-party 3D application (such as Maya) and want to use it in Nuke,
you can export it from your 3D application in the FBX or Alembic format and then import it into
Nuke. See Importing Cameras from FBX Files and Importing Cameras from Alembic Files.
If your camera was created in Boujou, you can also use the import_boujou.tcl script to import it into
Nuke. See Importing Cameras from Boujou.
You can extrapolate a 3D point's position from imported camera data using the PointsTo3D node,
which can help you position geometry in a scene. See <xref> for more information.
Tip: NukeX and Nuke Studio include CameraTracker which creates animated cameras
without resorting to third-party applications. See Camera Tracking for more information.
USER GUIDE
919
Working with Cameras | To Add a Camera
To Add a Camera
1. Click 3D > Camera to insert a Camera node.
OR
In the 3D Viewer, select create camera to place a new camera at the current position and
orientation in 3D space.
2. To setup the rendering camera, drag a connector from the new Camera node to the
ScanlineRender node.
OR
To setup an additional scene camera for viewing, drag a connector from the new Camera node to
the Scene node.
USER GUIDE
920
Working with Cameras | To Lock the 3D Camera View
Note: This selection does not change the camera used for rendering. This changes only the
camera to “look through” for the current 3D Viewer.
Cameras in the current data stream automatically appear in the dropdown menu of cameras you can
select. To select a camera that doesn’t appear in menu, double-click the Camera node to open its
panel and add it to the menu.
When the interactive mode is on, you can use the plus (+) and minus (-) keys to change the translate
values of the camera or light you’ve selected. When the interactive mode is off, these keys zoom your
view in and out.
USER GUIDE
921
Working with Cameras | Using the Look Input
Note: The value for the near clipping plane must always be positive to produce a sensible
result.
5. Drag the far slider to edit the position of the camera’s rearward clipping plane. Objects farther
from the camera than this plane are not rendered.
6. Increment the window translate u (horizontal axis) and v (vertical axis) sliders to translate the
camera’s output along either axis.
7. Increment the window scale u (horizontal axis) and v (vertical axis) sliders to scale the camera’s
output on either axis.
8. Drag the window roll slider to rotate the camera’s output on z.
If you animate a card to move along the x axis, you can attach a Camera and a Light node with the
look inputs so that they automatically rotate and face the card as it moves. To do this, complete the
following steps:
1. After animating your card, insert an Axis node.
2. Expression link the Axis node to the Card node by holding Ctrl, clicking on the translate
animation button in the Card node's properties, and dragging it to the translate animation
button in the Axis node's properties. The expression link is displayed as a green line with an arrow
denoting the direction of the expression. See Linking Expressions for more information.
3. Insert a Camera node and either drag the camera to the required position in the Viewer, or use
the Camera node properties to adjust the position of the camera.
USER GUIDE
922
Working with Cameras | Using the Look Input
5. Insert a Light node and drag the light to required position in the Viewer, or use the Light node
properties to adjust the position of the camera.
USER GUIDE
923
Working with Cameras | Using the Look Input
7. Playback your animated card and notice that the Camera and Light follow the animated card.
USER GUIDE
924
Working with Cameras | Using the Look Input
USER GUIDE
925
Projection Cameras | First a Little Math...
Projection Cameras
In addition to viewing and rendering a 3D scene, cameras can also project a 2D still image or image
sequence onto geometry in the scene. This is similar to the front-projection systems used in practical
photography, where a background image or other element is projected onto the stage and
photographed with other elements.
In Nuke, a projection camera can receive camera data tracked from the original shot - or another shot
- to setup a projection that is match-moved to another source.
This setup requires these nodes: a projection camera, a Scene node, a Project3D node, a geometry
object node (what you’ll be projecting onto), and a 2D node with the image that you want to project.
After you have this information, you need to do these calculations to get the horizontal and vertical
aperture settings for the projection setup:
horiz. res. / scanner pitch = horizontal aperture
vertical res. / scanner pitch = vertical aperture
So, for example, if your image resolution is 720 x 486 and the scanner pitch is 20, then these are the
results:
720 / 20 = horizontal aperture = 36
486 / 20 = vertical aperture = 24.3
Generally, for most professional projects, you can get the lens focal length from the camera report
for the shot(s). If that is not available, you may be able to extrapolate lens information by running the
shot through a 3D tracking application, such as Boujou, Syntheyes, or RealViz.
USER GUIDE
926
Projection Cameras | Setting Up the Projection Camera Script
7. Click the Projection tab in the camera’s panel and then enter the information you gathered for
focal length, horiz aperture, and vert aperture.
USER GUIDE
927
Projection Cameras | To View a 3D Scene over a 2D Background Image
When you are finished, view the 3D scene to check the placement of the projection. The next section
explains how to preview the 2D and 3D elements together to check the results of the composite.
This last step superimposes the two elements in the Viewer. The crosshair (shown below) is the
control that lets you adjust the location and angle of the wipe for the comparison.
USER GUIDE
928
Projection Cameras | To View a 3D Scene over a 2D Background Image
USER GUIDE
929
Importing Cameras from FBX Files | Importing Cameras from an FBX File
Note: For the FBX SDK version used in Nuke, see Third-Party Library Versions.
Tip: If you have trouble with .fbx files, it may be because they were written with an older
version of FBX. If they load very slowly, it is also possible that they are ASCII rather than
binary. To get around these problems, you can use the FBX converter on the Autodesk
website (http://usa.autodesk.com/fbx/download/). It converts between various different
formats, including older FBX versions, ASCII, and binary, and is available on Windows, Mac,
and Linux.
Using one Camera node, you can only import one camera from a .fbx file. If you need to import
several cameras, you need to use one Camera node per camera.
1. Select 3D > Camera to insert a Camera node in the place where you want to add the camera in
your script.
2. In the Camera controls, check read from file. When this is checked, the controls on the File tab
are enabled, and you can use them to read in a camera from an .fbx file. Any controls whose
values are read in from the .fbx file are disabled. You can still view these values and use them in
expressions but, as long as read from file is checked, you cannot modify them. Modifying the
USER GUIDE
930
Importing Cameras from FBX Files | Importing Cameras from an FBX File
values in the .fbx file, however, affect the disabled values in the Camera controls, because these
are reloaded from the .fbx file every time the node is instantiated.
3. To read in a camera from an .fbx file, click the folder icon on the File tab. Navigate to the .fbx file
and select Open.
4. From the animation stack dropdown menu, select the take you want to use from the .fbx file.
FBX files support multiple takes in one file. Usually, one of the takes is a default take with no
animation.
5. From the node name dropdown menu, select the camera node you want to import from the .fbx
file.
6. In the frame rate field, define a frame rate (frames per second) to sample the animation curves.
To use this rate rather than the one defined in the .fbx file, check use frame rate.
7. To have the camera rotation values calculated using the look up vector and look at position, check
compute rotation. If you don’t check this, Nuke uses the rotation channel from the .fbx file
instead of computing a new one. The rotation values are always computed when there is a look at
target.
8. If you want to modify the camera properties imported from the .fbx file, uncheck read from file
on the Camera tab and make the necessary modifications. As long as read from file is
unchecked, your changes are kept.
9. To reload the camera properties from the .fbx file, make sure read from file is checked and click
the reload button on the File tab.
USER GUIDE
931
Importing Cameras from Alembic Files | To Import Cameras from an Alembic File:
Tip: In addition to cameras, you can also import meshes (or NURBS curves/patch surfaces
converted to meshes), point clouds, and transforms from Alembic files.
To learn how to export files in the Alembic (.abc) format, refer to Exporting Geometry,
Cameras, Lights, Axes, or Point Clouds for more information.
Selected parent items are indicated by a yellow circle, and selected child items by a yellow bar
(these turn orange when you select them in the list). Unselected items do not have an indicator
next to them.
3. To import specific items, you must first deselect the root item by clicking on the yellow circle. This
de-selects the root and any child items. Then, select specific items in the scenegraph by clicking
on the blank space where the circles had been, as shown below:
USER GUIDE
932
Importing Cameras from Alembic Files | To Import Cameras from an Alembic File:
Tip: To load specific items from an Alembic file, you can also create a ReadGeo, Camera, or
Axis node, check read from file, and click the folder icon on the File tab to browse to an
.abc file.
USER GUIDE
933
Importing Cameras from Boujou | To Import a Camera from Boujou:
3. In the input pane of the Script Editor (that is, the lower pane), enter nuke.tcl("import_boujou").
Click the Run the current script button on the top of the Editor, or press Ctrl+Return
(Cmd+Return on a Mac).
4. In the File Browser that opens, navigate to the .txt file you saved in step 1.
A Camera, a ScanlineRender, and a Group node are loaded into Nuke. The Group node contains
cylinders to represent points from Boujou.
Tip: You can also open Nuke’s Boujou Text File Browser by doing the following:
1. Press x on the Node Graph to open the Nuke script command dialog.
2. In the dialog, check Tcl (if it’s not already checked).
3. In the command field, enter import_boujou.
4. Click OK.
These steps can be used to replace the first three steps in the above instructions.
USER GUIDE
934
Locating a 3D Point from an Animated Camera | Connecting the PointsTo3D Node
Tip: NukeX and Nuke Studio include CameraTracker, which creates animated cameras
without resorting to third-party applications. See Camera Tracking for more information.
3. In the toolbar on the left of the interface, navigate to Transform > PointsTo3D to add a
PointsTo3D node.
4. Connect the image sequence and Camera to the PointsTo3D node and then connect the Viewer.
USER GUIDE
935
Locating a 3D Point from an Animated Camera | Calculating the 3D Position
2. Scrub through the sequence and pick out three frames where the feature is clearly visible.
3. Scrub to the first reference frame where your feature is visible and then drag the pointA Viewer
widget from the bottom-left of the Viewer to the feature's location.
4. Click set frame.
The 2D coordinates and reference frame number are inserted into the Point A controls.
Tip: You can adjust the 2D point using the x and y controls in the properties for pixel-
perfect positioning.
5. Scrub to the second reference frame where your feature is visible and then drag the pointB
Viewer widget from the bottom-left of the Viewer to the feature's location.
6. Click set frame.
7. Scrub to the third reference frame where your feature is visible and then drag the pointC Viewer
widget from the bottom-left of the Viewer to the feature's location.
8. Click set frame.
You can now see coordinate and frame information for all three reference frames in the
properties.
USER GUIDE
936
Locating a 3D Point from an Animated Camera | Calculating the 3D Position
Nuke runs through the sequence, tracking the 2D position against the three reference frames to
determine the corresponding 3D point.
Once the calculation is complete, the point2d Viewer widget is placed on the tracked point in 2D
space.
6. Press Tab in the Viewer to switch to the 3D perspective view. The calculated 3D point is
highlighted in 3D space.
The 2D points used to calculate the The resulting position in the 3D Viewer.
3D position.
You can use the calculated 3D point to help you place elements in the scene, or click generate axis to
add an Axis node to control all elements in the scene together. See Parenting to Axis Objects for more
information on axes.
USER GUIDE
937
Transforming Geometry, Cameras, and Lights | Calculating the 3D Position
Transforming Geometry,
Cameras, and Lights
Transform operations include moving, scaling, rotating the objects in your 3D scene. When an object
node is active, you can enter specific transform settings in the node parameters (see Transforming
from the Node Properties Panel), or directly manipulate the object with the transform handles
displayed in the 3D Viewer (see Using the Transform Handles). Transformations occur from the
location of the object’s pivot point (see Transformations and the Pivot Point).
Nuke allows you to transform several objects together or have one object always face another (see
Parenting to Axis Objects and Using the TransformGeo Node).
You can also link transform parameters to imported track or camera data (see Applying Tracks to an
Object), or control the transforms with animation curves.
Using FBX or Alembic files, you can import transforms from third-party 3D applications, such as Maya
(see Importing Transforms from FBX Files and Importing Transforms from Alembic Files).
USER GUIDE
938
Using the Transform Handles | To Move an Object with the Transform Handles
• Click on a specific axis ring and drag to constrain the rotation to one axis.
USER GUIDE
939
Using the Transform Handles | To Scale an Object with the Transform Handles
• Ctrl+Shift+click (Mac users Cmd+Shift+click) and drag on a single axis square to scale on that
axis.
USER GUIDE
940
Transforming from the Node Properties Panel | To Set Transformation Options
The following assumes you’ve already loaded the object’s parameters into the Properties Bin.
USER GUIDE
941
Transformations and the Pivot Point | To Move the Pivot Point
You can offset the pivot point and move it anywhere you like - you can even move it outside of the
object. Subsequent local transformations then occur relative to the new pivot point location.
The object’s graphical overlay points to the location of the pivot point with a line. All subsequent local
transformations occur relative to this pivot point.
Once you’ve defined the location of an object’s pivot point, you can use the object’s transform
parameters to translate, rotate, scale, and skew the object relative to the pivot point.
USER GUIDE
942
Parenting to Axis Objects | To Add an Axis Object
For example, the Axis node has been parented to the other objects in the scenes (the two image
planes and the camera). The result is an axis object that globally controls the scene. Rotating it, for
example, rotates all objects in the scene, as the figure below shows.
Tip: To move several objects together, you can also merge them using a MergeGeo node
(see Merging Objects) and then control them using a TransformGeo node (see Using the
TransformGeo Node).
USER GUIDE
943
Parenting to Axis Objects | To Add an Axis Object
To create a nested transformational hierarchy, chain additional Axis nodes to the first one you
inserted. For example, you could create a hierarchy of three Axis nodes to control rotation, scale, and
transform.
In the above example, Axis3 (rotation) is connected to Axis2 (scale). Axis2 is connected to Axis1
(transform), and Axis1 is connected to the TransformGeo node(s) that you want to affect. With the
Axis nodes connected in this manner, their transformation data ripples down the chain and is added
to the settings of the TransformGeo node.
USER GUIDE
944
Parenting to Axis Objects | Using the Look Input
USER GUIDE
945
Using the TransformGeo Node | To Have One 3D Object Always Face Another
Another use of the TransformGeo node is to have the rotation of one object depend on the position
of another so that the first object is always rotated to face or “look at” the second one. For example,
you can have a sphere object always facing a cylinder object, regardless of the cylinder’s position.
When the cylinder is moved to a new position, the sphere is automatically rotated to face it.
USER GUIDE
946
Using the TransformGeo Node | To Have One 3D Object Always Face Another
5. Open the controls of the first TransformGeo node and go to the Look tab.
6. From the look axis dropdown menu, select the axis around which the object rotates to face the
other object:
+Z +Y
+X -Z
USER GUIDE
947
Using the TransformGeo Node | To Have One 3D Object Always Face Another
-Y -X
7. Use the rotate X, rotate Y, and rotate Z check boxes to select the axes the object rotates around.
For the first object to truly face the second, you need to check all three check boxes.
8. Adjust the look strength slider to define the extend of the rotation. The smaller the value, the
less the object is rotated. Setting the value to 0 produces no rotation.
9. If you want to use an alternate scheme to calculate the rotation, check use quaternions. This may
be useful for smoothing out erratic rotations along the selected look axis.
If you now adjust the second TransformGeo node’s transform controls, you’ll notice that the first
object automatically rotates to face the second object. For more information on how to adjust the
transform controls, see Using the Transform Handles and Transforming from the Node Properties
Panel.
USER GUIDE
948
Applying Tracks to an Object | To apply a channel file to an object
Channel files contain a set of Cartesian coordinates for every frame of animation in a given shot. This
information is calculated by 3D tracking software, such as 3D-Equalizer, Maya, or Boujou, and then
exported as channel files.
Note: You can use the export chan file button to export as a chan file any animated
translation parameters which you’ve applied to given object. This is a useful method of
sharing setups between artists.
Tip: You can also use channel files to import cameras created in other applications into
Nuke. However, as the chan file format is not a standard file format, you may need a file
format converter to export chan files from other applications.
USER GUIDE
949
Importing Transforms from FBX Files | Importing Transforms from an FBX File
Note: For the FBX SDK version used in Nuke, see Third-Party Library Versions on page 2021.
Tip: If you have trouble with .fbx files, it may be because they were written with an older
version of FBX. If they load very slowly, it is also possible that they are ASCII rather than
binary. To get around these problems, you can use the FBX converter on the Autodesk
website (http://usa.autodesk.com/fbx/download/). It converts between various different
formats, including older FBX versions, ASCII, and binary, and is available on Windows, Mac,
and Linux.
USER GUIDE
950
Importing Transforms from FBX Files | Importing Transforms from an FBX File
3. On the File tab, click the folder icon to open the File Browser. Navigate to the .fbx file that
contains the transform you want to use. Click Open.
4. From the animation stack dropdown menu, select the take you want to use from the .fbx file.
FBX files support multiple takes, one of which is usually a default take with no animation.
5. From the node name dropdown menu, select the transform, marker, or null you want to import
from the .fbx file.
6. If you do not want to use the frame rate from the .fbx file for sampling the animation curves, in
the frame rate field, enter a new value (frames per second). To override the frame rate defined in
the .fbx file and use the one you defined here, check use frame rate.
7. If you want to modify the transform properties imported from the .fbx file, uncheck read from
file on the Axis tab and make the necessary modifications. As long as read from file is
unchecked, your changes are kept.
8. To reload the transform properties from the .fbx file, make sure read from file is checked and
click the reload button on the File tab.
USER GUIDE
951
Importing Transforms from Alembic Files | To Import Transforms from an Alembic file:
Tip: In addition to transforms, you can also import meshes (or NURBS curves/patch surfaces
converted to meshes), point clouds, and cameras from Alembic files.
To learn how to export files in the Alembic (.abc) format, refer to Exporting Geometry,
Cameras, Lights, Axes, or Point Clouds for more information.
Selected parent items are indicated by a yellow circle, and selected child items by a yellow bar
(these turn orange when you select them in the list). Unselected items do not have an indicator
next to them.
3. To import specific items, you must first deselect the root item by clicking on the yellow circle. This
de-selects the root and any child items. Then, select specific items in the scenegraph by clicking
on the blank space where the circles had been, as shown below:
USER GUIDE
952
Importing Transforms from Alembic Files | To Import Transforms from an Alembic file:
Tip: To load specific items from an Alembic file, you can also create a ReadGeo, Camera, or
Axis node, check read from file, and click the folder icon on the File tab to browse to an
.abc file.
USER GUIDE
953
Adding Motion Blur to the 3D Scene | To Import Transforms from an Alembic file:
USER GUIDE
954
Adding Motion Blur Using a Renderer | To Import Transforms from an Alembic file:
USER GUIDE
955
Adding Motion Blur Using a Renderer | To Import Transforms from an Alembic file:
• end - to close the shutter at the current frame. For example, if you set the shutter value to 1 and
your current frame is 30, the shutter stays open from frame 29 to 30.
• custom - to open the shutter at the time you specify. In the field next to the dropdown menu,
enter a value (in frames) you want to add to the current frame. To open the shutter before the
current frame, enter a negative value. For example, a value of -0.5 would open the shutter half a
frame before the current frame.
5. If you're using ScanlineRender, you can add randomness to the distribution of samples in time so
they don’t produce regularly spaced images, by adjusting randomize time. This affects all
samples except the first and the last one. The larger the value, the larger the time difference
between the samples.
6. If you're using ScanlineRender, set sample diameter to the diameter of the circle that the
samples for each pixel are placed in for antialiasing. The larger the value, the more pixels are
jittered.
7. If you're using ScanlineRender, adjust the focus diameter to randomly orbit the camera about a
point at the focal distance in front of it for each sample to produce depth-of-field effects from
multiple samples.
Note: The focal distance is set in the Camera node's controls, in the Projection tab.
8. If rendering has become very slow, you can approximate multi-sample rendering and reduce
render times by using stochastic samples. This sets the number of samples, per pixel, to use in
stochastic estimation (0 is disabled). Lower values result in faster renders, while higher values
improve the quality of the final image.
Note that rather than setting stochastic samples to a very large value, you may want to leave it at
a relatively low value and increase samples instead.
Stochastic sampling is based on Robert L. Cook’s Stochastic Sampling in Computer Graphics,
available in ACM Transactions on Graphics, Volume 6, Number 1, January 1996.
USER GUIDE
956
Adding Motion Blur Using a Renderer | To Import Transforms from an Alembic file:
9. To distribute the samples uniformly over the shutter time, enable uniform distribution. This
gives the same importance to all samples over the shutter time, and produces more accurate
results for stochastic multi-sampling.
For more information on the ScanlineRender and RayRender nodes, see Rendering a 3D Scene.
USER GUIDE
957
Adding Motion Blur Using VectorBlur | To use VectorBlur with ScanlineRender
You can create the necessary motion vectors for use with VectorBlur in several ways:
• Use the ScanlineRender or RayRender nodes. This is usually more accurate than using a
MotionBlur3D node (described below), and works well with both static and moving cameras as well
as both linear and non-linear camera movement. See To use VectorBlur with ScanlineRender or To
use VectorBlur with RayRender.
• Alternatively, if your 3D scene is static or nearly so and the camera movement over the shutter time
is nearly linear, you can also use the Filter > MotionBlur3D node. However, note that MotionBlur3D
only uses camera information to produce motion vectors. If you have moving objects in your scene
but the camera is static, MotionBlur3D isn’t able to produce any output. See To use VectorBlur with
MotionBlur3D.
• Several third-party 3D applications can also produce motion vector information as two-channel,
floating point images that you can use with VectorBlur. If possible, you should unpremultiply these
images. See To use VectorBlur with Third-Party Motion Vectors.
USER GUIDE
958
Adding Motion Blur Using VectorBlur | To use VectorBlur with ScanlineRender
If you view the channels you selected, you should see they now contain motion vectors.
USER GUIDE
959
Adding Motion Blur Using VectorBlur | To use VectorBlur with RayRender
• linear - applies a linearly-weighted blur to blend between regions with different motion. This
has a stronger effect than the uniform option.
Tip: The uniform option can be used to create blur similar to pre-Nuke 10 results.
10. Set shutter offset to 0. This means the shutter opens at the current frame.
11. Select the blur type using the dropdown.
12. To adjust the amount of blur, adjust the motion blur controls.
USER GUIDE
960
Adding Motion Blur Using VectorBlur | To use VectorBlur with RayRender
Tip: The uniform option can be used to create blur similar to pre-Nuke 10 results.
9. Set shutter offset to 0. This means the shutter opens at the current frame.
10. Select the blur type using the dropdown.
11. To adjust the amount of blur, adjust the motion blur controls.
USER GUIDE
961
Adding Motion Blur Using VectorBlur | To use VectorBlur with MotionBlur3D
USER GUIDE
962
Adding Motion Blur Using VectorBlur | To use VectorBlur with MotionBlur3D
Tip: The uniform option can be used to create blur similar to pre-Nuke 10 results.
USER GUIDE
963
Adding Motion Blur Using VectorBlur | To use VectorBlur with Third-Party Motion Vectors
USER GUIDE
964
Exporting Geometry, Cameras, Lights, Axes, or Point Clouds | To use VectorBlur with Third-Party
USER GUIDE
965
Rendering a 3D Scene | Choosing a Render Node
Rendering a 3D Scene
The 3D Viewer displays the scene using an OpenGL hardware render. When you build a scene, Nuke
renders high-quality output from the perspective of the camera connected to the render node. The
rendered 2D image is then passed along to the next node in the compositing tree, and you can use
the result as an input to other nodes in the script.
Note: NukeX and Nuke Studio also include Pixar’s PhotoRealistic RenderMan®, another ray
renderer. See PrmanRender for more information.
The ScanlineRender and RayRender nodes have the same inputs and share some of the same
controls in their respective Properties panels, but they both have different strengths and
weaknesses:
• ScanlineRender generally produces faster results, but is less accurate with reflection and refraction.
• ScanlineRender supports Deep workflows downstream by injecting a deep channel into the node
tree. See Using ScanlineRender to Generate Deep Data.
• RayRender generally produces very accurate reflection, but at the cost of processing time.
• RayRender does not currently support Deep workflows or render sprite-based particles from
NukeX's Particles system.
As a general rule, if you can afford to wait for a render and don't need Deep data or particles that rely
on sprites, use RayRender.
USER GUIDE
966
Rendering a 3D Scene | To Add Motion Blur to the 3D Scene
2. Add a render node and connect the scene to the obj/scn input.
3. Make sure the render camera is connected to the render node's cam input. See Cameras for more
information.
4. Add a background to the bg input, if required. You can use the bg input to composite a
background image into the scene and to determine the output resolution.
Note: If the bg input is not used, the render node output defaults to the root.format or
root.proxy_format defined in the Project Settings.
USER GUIDE
967
Stereoscopic Scripts
The title of this chapter is slightly misleading, as Nuke isn’t actually limited to stereoscopic views, but
rather provides multi-view support for as many views as you need. The views do not have to be stereo
pairs, but since that is the most obvious application, this chapter mainly deals with stereoscopic
projects.
Quick Start
In many ways, Nuke lets you work on stereoscopic material just like you would on any other images.
However, there are also a few stereo-specific settings and nodes that you need to be aware of when
compositing stereoscopic material. The following teaches you how to set up your stereo project, read
in and view your images, use the stereo nodes, and render the final output.
USER GUIDE
968
Stereoscopic Scripts |
7. Sometimes you need to re-adjust the convergence, or the inward rotation of your left and right
view cameras. This changes the point in the image that appears at screen depth when viewed with
3D glasses. For more information, see Changing Convergence.
8. Finally, you can preview a view of your stereo project by flipbooking it and rendering it out. For
more information, see Previewing Stereoscopic Images.
USER GUIDE
969
Setting Up Views for the Script | Creating Views Automatically
If you are likely to need the same views in several projects, you may want to save the views you
created in a template.nk script file. For more information on how to do this, see Template Scripts.
Note: Automatic view creation is not implemented for multi-view .mov files. See Creating
and Managing Views Manually for information on how to create the views.
USER GUIDE
970
Setting Up Views for the Script | Creating and Managing Views Manually
3. If you want to remove the view called main and add views called left and right, click the Set up
views for stereo button.
Note: If the script is already set up for multiple views, Set up view for mono is displayed.
Clicking Set up view for mono deletes all existing views and adds a single main view.
The two new views are assigned colors, red and green by default. To change the colors, double-
click on the color field and select another color from the color picker.
If you check Use colors in UI?, these colors are used in Node Graph connections, split views
indicators on nodes, and Viewer and ShuffleViews node controls to make it easier to differentiate
between views.
USER GUIDE
971
Setting Up Views for the Script | Creating and Managing Views Manually
7. To delete an unnecessary view, select the view from the list and click the - button.
8. To move a view around in the list of views, click the up and down arrows above the views panel.
9. To select the view that’s displayed whenever you load the project, set the hero dropdown to the
appropriate view.
You can now access the views in your project from the view dropdown menu of certain nodes’
controls. You’ll also notice that each view has its own button in the Viewer controls.
USER GUIDE
972
Setting Up Views for the Script | Creating and Managing Views Manually
If you created many views, you may want them to appear in a dropdown menu rather than as
separate buttons in the Viewer and node controls. To switch to using dropdown menus, disable View
selection uses buttons? on the Views tab of the Project Settings panel.
USER GUIDE
973
Loading Multi-View Images | To Read Images in
If you are using .exr files, your files can contain both the input for the left eye and the input for the
right eye, as .exr files support multiple views in a single file. With any other file types, you need to
have separate files for the left and right inputs.
To Read Images in
1. Select Image > Read.
2. Navigate to the files containing the images intended for either the left or right eye (or in the case
of .exr and .mov images, both eyes), and select Open.
3. Do one of the following:
• If the images you want to read in contain a view name or the initial letter of one (for example,
left, right, l or r) in their file names, replace this with the variable %V or %v in the file field of
the Read node’s controls. Use %V to replace an entire view name (for example, left or right),
and %v to replace an initial letter (for example, l or r). When a variable is used, Nuke reads in
the missing inputs and combines all inputs into a single output.
For example, if you read in image.left.cin and changed the name to image.%V.cin, Nuke would
read in both image.left.cin and image.right.cin with the same Read node, provided that views
called left and right existed in your project settings. Both input images would be combined into
a single output.
Note: Mac and Linux operating systems can be case-sensitive or case-insensitive. If your OS
is case-sensitive, you'll need to make sure you use the correct case when naming your left
and right views, as the %v variable can only retrieve the case used in the view name.
You can also use the %V and %v variables at a directory level. For example, let’s say you have set
up views called testleft, testmiddle and testright, and you have the following directories and
files:
mydirectory/testleft/image.testleft.cin
mydirectory/testmiddle/image.testmiddle.cin
mydirectory/testright/image.testright.cin
If you now read in image.testleft.cin and changed the pathname to
mydirectory/%V/image.%V.cin, all three inputs would be read in with the same Read node.
USER GUIDE
974
Loading Multi-View Images | Combining Views from Different Files into a Single Output
• If the images you want to read in do NOT contain a view name or the initial letter of one (for
example, left, right, l or r) in the file names and are not stereo .exr files, insert a Read node for
each input and combine them into a single output using the JoinViews node (see below for
instructions on how to do that).
• If the images you want to read in are in the stereo .exr file format, you do not need to do
anything. However, remember that not all .exr files contain multiple views. If you are using files
that are not, follow the instructions in the first two points.
• If the images you want to read in are in the multi-view .mov file format, you need to open the
Read node's properties and disable First track only.
You'll notice that the .mov Read node in the Node Graph is now marked with to denote
multiple views. You can now switch between views using the buttons above the compositing
Viewer.
USER GUIDE
975
Loading Multi-View Images | Combining Views from Different Files into a Single Output
USER GUIDE
976
Displaying Views in the Viewer | To Display a Particular View
• If you haven’t checked View selection uses buttons? in the project settings, select the view you
want to display from the dropdown menu.
Note: Nuke lists the views in .exr files in the order they appear in the clip's header, so a
view named 'left' may not always be the first view displayed above the Viewer.
If your views do not appear in the correct order, you can rearrange them in the Project
Settings > Views tab. See Setting Up Views for the Script for more information.
Tip: You can also press the ; (semicolon) and ’ (forward single quote) keys to move between
different views in the Viewer.
USER GUIDE
977
Displaying Views in the Viewer | To Display Two Views Next to Each Other
USER GUIDE
978
Displaying Views in the Viewer | To Display a Blend Between Two Views
5. To control the blend between the views, adjust the mix slider. Setting the slider to 0 or 1 displays
only one of the views. Values between 0 and 1 produce different blends between the views.
USER GUIDE
979
Selecting Which Views Display Changes | Splitting Views Off
These methods are useful, for example, when you want to perform the same operation on both views
but use different values for each.
4. Click the view button next to the control you want to adjust. From the menu that opens,
select Split off [view name]. For example, to apply changes to a view called left, select Split off
left. You can also split all the node’s controls by selecting Split all knobs from the right-click
menu.
USER GUIDE
980
Selecting Which Views Display Changes | To Show Separate Values for Each View
An eye appears on the view button and the node gets a small green dot on it in the Node
Graph to indicate that views have been split off.
If you have assigned colors to the views and checked Use colors in UI? in your project settings,
dots also appear on the node to indicate which views have been split off. For example, if you are
using red for the left view and split off that view, a red dot appears on the node.
Any changes you now make using the control in question are only applied to the view you chose to
split off. Changes to controls that have not been split off are still applied to all views.
Adjusting the split control for only the current view and for
all views separately.
USER GUIDE
981
Selecting Which Views Display Changes | To Unsplit Views
To Unsplit Views
1. In the node’s controls, click the view button .
2. From the menu that opens, select Unsplit [view]. For example, to unsplit a view called left, you’d
select Unsplit left.
3. Repeat step 2 for all views you want to unsplit.
The view is unsplit, and all changes you made after splitting it off are lost.
USER GUIDE
982
Performing Different Actions on Different Views | To Extract a View for Processing
All views are extracted, and any changes you make are only applied to the view you selected
(regardless of which view you are displaying in the Viewer).
To make changes to a different view, select it from the OneView node’s view dropdown menu.
To merge views from two separate streams, select Views > JoinViews to combine the views (or delete
the OneView node from your script).
If you need to extract all views, process them individually, and then merge them together, use the
Split and Join menu item. This menu item is actually a combination of the OneView and JoinViews
nodes. It first extracts all the views you have set up in your project settings and then merges them
back together. It’s no different to using several OneView nodes together with a JoinViews node, but
speeds up work, because you don’t need to add each node in a separate go. To use the menu item,
select Views > Split and Join.
For example, if you have created views called left and right in your project settings and use a Split
and Join menu item after your Read node, you get the following node tree:
USER GUIDE
983
Performing Different Actions on Different Views | To Extract a View for Processing
You can then add any necessary nodes, such as color corrections, between the OneView and
JoinViews nodes.
USER GUIDE
984
Reproducing Changes Made to One View | Reproducing X and Y Values
To reproduce changes made with the above nodes, groups, or gizmos, you need a disparity field that
maps the location of a pixel in one view to the location of its corresponding pixel in the other view.
You can create a disparity field using the O_DisparityGenerator plug-in, which is included in the Ocula
plug-in set, or a 3D application. Once you have the disparity field, you can store it in the channels of
an .exr file or use the ShuffleCopy node to add the disparity channels in the data stream where you
need them.
For more information on reproducing paint strokes, Bezier shapes, or B-spline shapes, see
Reproducing Strokes/Shapes in Other Views.
USER GUIDE
985
Reproducing Changes Made to One View | Reproducing X and Y Values
If you have Foundry’s Ocula plug-ins installed, you can also select Correlate [view] from [view]
with Ocula. This way, extra refinements are made when creating the corresponding x and y
values, and the results may be more accurate.
5. If you want to adjust the x and y values further, you need to adjust both views independently.
Adjustments you make to one view are not automatically generated for the other.
USER GUIDE
986
Swapping Views | To Rearrange Views
Swapping Views
You can rearrange the views in your script using the ShuffleViews node. For example, you can swap
the left and right views around in the pipeline, so that Nuke uses the left input for the right eye and
vice versa.
To Rearrange Views
1. Select Views > ShuffleViews to insert a ShuffleViews node in an appropriate place in your script.
2. In the ShuffleViews controls, click add as necessary.
3. Use the buttons or dropdown menus to select which view to replace with which. For example, to
swap the left and right views around, you need to make the following selections:
• On one row, select left under get, and right under from (“get left from right”). The left view is
now replaced with the right view.
• On another row, select right under get, and left under from (“get right from left”).
The right view is replaced with the left view.
If there aren’t enough rows of buttons or dropdown menus on the ShuffleViews node’s properties
panel, click the add button to add a row.
To remove unnecessary rows in the ShuffleViews node’s controls, click the delete button next to
the row you want to remove.
USER GUIDE
987
Converting Images into Anaglyph | To Convert Your Images into Anaglyph
3. To add color into the images, drag right on the amtcolor slider, or insert a value between 0
(grayscale) and 1 (colored) into the amtcolor input field.
If the images include areas that are very red, green, or blue, adding more color into them may not
produce the best possible results.
USER GUIDE
988
Converting Images into Anaglyph | To Convert Your Images into Anaglyph
4. To invert the colors and use the red channel from the right input and the blue and green channels
from the left, check the (right=red) box.
5. To control where the images appear in relation to the screen when viewed with anaglyph glasses,
enter a value in the horizontal offset input field. To have the images appear in front of the
screen, you would usually enter a negative value. To have the images appear further away, you
would usually enter a positive value. (This is not the case if you have swapped the left and right
views around.)
Tip: If you like, you can register the Anaglyph node as a Viewer Process. This way, you always
have it as a viewing option in the Viewer’s Viewer Process dropdown menu and can apply it
to the current Viewer without having to insert the node in the Node Graph. Do the following:
1. Create a file called menu.py in your plug-in path directory if one doesn’t already exist. For
more information on plug-in path directories, see Loading Gizmos, NDK Plug-ins, and
Python and Tcl Scripts.
2. To register the Anaglyph node as a Viewer Process, save the following in your menu.py:
nuke.ViewerProcess.register("Anaglyph", nuke.createNode, ("Anaglyph",
""))
3. Restart Nuke.
4. To apply the Anaglyph Viewer Process, select it from the Viewer Process dropdown menu
in the Viewer controls.
5. To adjust the Anaglyph Viewer Process controls, select show panel from the Viewer
Process dropdown menu.
For more information on Viewer Processes, see Using the Viewer Controls.
USER GUIDE
989
Changing Convergence | To Convert Your Images into Anaglyph
Changing Convergence
The ReConverge node lets you shift convergence (the inward rotation of the eyes or cameras) so that
any selected point in the image appears at screen depth when viewed with 3D glasses. This point is
called the convergence point. It is the point where the lines of sight from the two cameras meet.
Changing convergence moves the point where the lines of sight from
the two cameras meet.
At the convergence point, the different views in the image are aligned and appear at screen depth
when viewed with 3D glasses. Anything behind the convergence point appears behind the screen,
while anything in front of it seems to pop out of the screen. This is illustrated in the figure below.
USER GUIDE
990
Changing Convergence | To Change the Convergence Point of a Stereo Image
Changing convergence changes the perceived depth of the images. It moves all the elements in the
image backwards or forwards a fixed distance while keeping the distance between them the same.
This is illustrated in the figure below, where the gray rectangles represent elements depicted in a
stereo image.
Often, the element of an image that appears closest to the audience is used as the convergence point.
However, to make an element in your image jump out of the screen, you need to converge on
something behind this element.
To calculate the convergence shift, the ReConverge node needs a disparity field that maps the
location of a pixel in one view to the location of its corresponding pixel in the other view. To create
the disparity field, you can use the O_DisparityGenerator plug-in, which is part of the Ocula plug-in
set. Alternatively, you can create the disparity field in a 3D application. Once you have the disparity
field, you can store it in the channels of an .exr file or use the ShuffleCopy node to add the disparity
channels in the data stream where you need them.
Note that the ReConverge node only shifts views horizontally, not vertically.
USER GUIDE
991
Changing Convergence | Using the Same Convergence Point Throughout a Sequence
5. Make sure the ReConverge properties panel is open. You should see the convergence point
overlay in the Viewer. Drag the point on top of the point you want to appear at screen level when
viewed with 3D glasses. The convergence shifts to this location.
You can also move the convergence point by entering the point’s x and y coordinates in the
Convergence upon fields.
6. By default, the ReConverge node moves the right view to achieve the convergence shift. However,
if you like, you can use the Mode dropdown menu in the ReConverge controls to move the left
view instead (select shift left) or move both views equally (select shift both).
7. If necessary, adjust the offset for convergence (in pixels) in the ReConverge controls. To bring all
elements of your image forward from the screen level, enter a positive value in the Convergence
offset field. To move all elements further away, enter a negative value.
It is also possible to use the same element as the convergence point throughout the image sequence.
You can, for example, have the same actor always appear at screen depth. To converge on the same
element throughout the sequence, link the ReConverge node with a Tracker node.
USER GUIDE
992
Changing Convergence | Using the Same Convergence Point Throughout a Sequence
2. Track the point that you want to appear at screen level throughout the sequence. For more
information on how to use the Tracker node, refer to Tracking and Stabilizing .
3. When you have the track animation data, apply it to the ReConverge node’s Converge upon
control via a linking expression. The easiest way to do this is to Ctrl/Cmd+drag the animation
button next to the tracks list to the animation button next to the Converge upon control.
USER GUIDE
993
Previewing Stereoscopic Images | Previewing Using the Viewer Stereo Modes
Note: OpenGL Stereo mode is not supported on Mac due to limitations in macOS and not
supported with AMD GPUs on Linux.
USER GUIDE
994
Previewing Stereoscopic Images | Displaying OpenGL Stereo in Comp Viewers
Windows
To enable NVIDIA GPU stereo output:
1. Right-click on the desktop and select NVIDIA Control Panel.
2. Navigate to 3D Settings > Manage 3D Settings > Stereo - Enable.
USER GUIDE
995
Previewing Stereoscopic Images | Displaying OpenGL Stereo in Comp Viewers
Linux
To enable NVIDIA GPU stereo output:
1. Open a command prompt and enter:
nvidia-xconfig --stereo=3
Tip: For more information on the nvidia-xconfig utility, please see the man page: man
nvidia-xconfig
Note: OpenGL Stereo mode is not supported with AMD GPUs on Linux.
USER GUIDE
996
Previewing Stereoscopic Images | Flipbooking Stereo Sequences
The first time you select OpenGL Stereo, a warning message is displayed.
Tip: You can disable the warning by enabling Don't show again and clicking OK.
USER GUIDE
997
Previewing Stereoscopic Images | Flipbooking Stereo Sequences
3. Check that your settings are correct in the dialog. The settings in the dialog are almost identical to
the settings when you flipbook non-stereo sequences. For more information about these settings,
see Flipbooking Sequences.
4. In the frame range field, enter the frame range you want to preview (for example, 1-35 or 1-8 10
12-15).
5. Using the View control, select the view you want to flipbook, either left or right.
6. Click OK.
Nuke renders the selected view as a temporary sequence using the frame range and resolution
defined in the script’s settings. This may take a few moments.
7. After the render is complete, Nuke launches Flipbook Viewer and loads in the temporary
sequence.
You can play it back and view it using Flipbook Viewer controls.
USER GUIDE
998
Rendering Stereoscopic Images | Rendering EXR Files
Nuke renders several views, but writes them into separate files. If you did not specify a view in the file
names (using either the name of the view, its first letter, or a variable), you can only render one view.
USER GUIDE
999
Rendering Stereoscopic Images | Rendering Other File Formats
Note: For command line renders, you can pass the -view argument with a list of view
names to render, separated by a comma. If you do not specify a -view argument, Nuke
renders all views.
USER GUIDE
1000
Deep Compositing
Deep compositing is a way of compositing digital images using data in a different format to standard
"flat" compositing. As the name suggests, deep compositing uses additional depth data. This reduces
need for re-rendering, produces high image quality, and helps you solve problems with artifacts
around the edges of objects.
For example, creating holdouts of objects that have moved in the scene has previously required re-
rendering the background, and problems frequently occurred with transparent pixels and anti-
aliasing. With Nuke’s Deep compositing node set, you can render the background once, and later
move your objects to different places and depths, without having to re-render the background. Any
transparent pixels, with motion blur for example, are also represented without flaw, so working with
deep compositing is not only faster, but you also get higher image quality.
Quick Start
With Nuke’s deep compositing node set, you can:
USER GUIDE
1001
Deep Compositing |
• Read in your deep image with the DeepRead node. See Reading in Deep Footage.
• Merge deep data with the DeepMerge, see Merging Deep Images.
• Generate holdout mattes from a pair of deep images using the DeepHoldout node. See Creating
Holdouts.
• Flatten deep images to regular 2D or create point clouds out of them. See Creating Deep Data.
• Sample information at a given pixel using the DeepSample node. See Sampling Deep Images.
• Crop, reformat, and transform deep images much in the same way as you would a regular image,
using the DeepCrop, DeepReformat and DeepTransform nodes. See Cropping, Reformatting, and
Transforming Deep Images.
• Create deep images using the DeepFromFrames, DeepFromImage, DeepRecolor, and
ScanlineRender nodes. See Creating Deep Data.
USER GUIDE
1002
Reading in Deep Footage |
USER GUIDE
1003
Importing DTEX Files | Importing Scanline OpenEXR Files
Do the following:
1. Install RenderMan Pro Server on your computer, and set up the necessary environment variables
that enable Nuke to work with it. For details, have a look at Setting Up RenderMan Pro Server and
PrmanRender. Note that you don’t need a RenderMan Pro Server license to work with deep
images in Nuke, just installing the software is enough.
2. Create a DeepRead by clicking Deep > DeepRead.
3. Navigate to your .dtex image, and click Open. For more information about the Read node
controls, see the Managing Scripts chapter.
4. By default, Nuke tries to automatically detect the .dtex file type by looking at the subimage name.
If the name is either Deep Shadow or ends with (or is) .deepopacity, Nuke treats the file as a
deep opacity file. However, if you have manually changed the subimage name when rendering the
file, Nuke may not be able to detect the file type correctly. If this is the case, set the type
dropdown menu to one of the following:
• deepopacity - This forces Nuke to treat the file as an accumulated deep opacity file,
corresponding to a RenderMan Display Driver configuration of:
Display "Filename.dtex" "deepshad" "deepopacity"
• alpha - This forces Nuke to treat the file as the newer point-sampled alpha or color,
corresponding to a RenderMan Display Driver configuration of either:
Display "Filename.dtex" "deepshad" "a" or
Display "Filename.dtex" "deepshad" "rgba"
USER GUIDE
1004
Creating Deep Data | Converting a 2D Image Sequence to a Deep Frame Using Input Frames
USER GUIDE
1005
Creating Deep Data | Converting a 2D Image to a Deep Image
USER GUIDE
1006
Creating Deep Data | Using ScanlineRender to Generate Deep Data
In the example below, DeepRecolor takes an unpremultiplied .exr image and uses it to color the
.dtex file’s deep samples.
3. If at this point the alpha from the final high-quality flat render doesn’t match the alpha
represented by the deep samples (for example, as a result of the compression that usually
happens to deep files on disk or some change to the shader), you can check target input alpha.
This means the color input’s alpha is distributed amongst the deep samples, so that the final
resulting alpha after flattening of the deep data matches the color input’s alpha.
If you leave target input alpha unchecked, Nuke distributes the color to each sample by
unpremultiplying by the color image’s alpha and then remultiplying by the alpha of each sample.
In this case, the alpha from DeepRecolor may not match the alpha from its color input.
Note: Deep compositing only supports the over blend mode. As a result, if there is a
BlendMat node in the 3D scene, its operation always appears to be set to over when
converted to Deep.
USER GUIDE
1007
Creating Deep Data | Using ScanlineRender to Generate Deep Data
3. If you don't want deep samples with an alpha value of 0 to contribute to the output, open the
ScanlineRender properties and make sure that drop zero alpha samples is enabled.
4. Adjust the rest of the ScanlineRender properties as usual. For example:
• If you see any aliasing artifacts in the render, go to the MultiSample tab and increase samples.
This increases the number of deep samples per pixel.
Alternatively, you can set antialiasing to low, medium, or high on the ScanlineRender tab.
USER GUIDE
1008
Creating Deep Data | Using ScanlineRender to Generate Deep Data
Tip: You can use a DeepToPoints node after ScanlineRender to create a 3D point cloud that
represents the motion in the scene. For more information on DeepToPoints, see Creating 2D
and 3D Elements from Deep Images.
USER GUIDE
1009
Merging Deep Images | Using ScanlineRender to Generate Deep Data
Note: When metadata from is set to All and there are keys with the same name in both
inputs, keys in B override keys in A.
6. Enable compute occluded samples if you want Nuke to calculate occlusion using the values of
the holdout samples in front of samples from main. This is a more accurate representation of
occlusion at depth, but can take longer to process.
For example:
M = main sample
USER GUIDE
1010
Merging Deep Images | Using ScanlineRender to Generate Deep Data
H = holdout sample
M0 remains unchanged since there are no holdout samples before it. M2 is affected by the
combined H0, H1, and H2 holdout samples and M4 is affected by all holdout samples.
USER GUIDE
1011
Creating Holdouts | Creating a Flattened Holdout with the DeepHoldout Node
Creating Holdouts
You can create holdouts using either the DeepHoldout or the DeepMerge nodes. The primary
difference is whether you want the node to produce a flattened output image or a deep output image
after the holdout.
USER GUIDE
1012
Creating Holdouts | Creating a Deep Holdout with the DeepMerge Node
M = main sample
H = holdout sample
M0 remains unchanged since there are no holdout samples before it. M2 is affected by the
combined H0, H1, and H2 holdout samples and M4 is affected by all holdout samples.
5. You can filter out samples using the drop zero threshold control. Increasing the value removes
more samples with very small alpha values such as those caused by floating point inaccuracy.
Note: When metadata from is set to All and there are keys with the same name in both
inputs, keys in B override keys in A.
6. Enable compute occluded samples if you want Nuke to calculate occlusion using the values of
the holdout samples in front of samples from main. This is a more accurate representation of
occlusion at depth, but can take longer to process.
For example:
M = main sample
H = holdout sample
M0 remains unchanged since there are no holdout samples before it. M2 is affected by the
combined H0, H1, and H2 holdout samples and M4 is affected by all holdout samples.
USER GUIDE
1013
Creating Holdouts | Creating a Deep Holdout with the DeepMerge Node
You can now view the result, which is a holdout with red, green, blue, and alpha channels. Note
that the output image is still a deep image.
USER GUIDE
1014
Creating 2D and 3D Elements from Deep Images | Creating a 2D Image from a Deep Image
USER GUIDE
1015
Creating 2D and 3D Elements from Deep Images | Creating a Point Cloud from a Deep Image
USER GUIDE
1016
Modifying Deep Data | Color Correcting Deep Images
There are control sets for adjusting shadows, midtones and highlights, as well as a master set for
adjusting all these at once. You can use the lookup curves on the Ranges tab to control the range of
the image that is considered to be in the shadows, midtones, and highlights. For more information
about the basics of color correcting, see Working with Color.
Tip: Make mattes by setting the gain value for your alpha channel to 0 and setting the offset
value for the alpha channel to 1 in the range you want a matte for.
USER GUIDE
1017
Modifying Deep Data | Modifying Your Deep Images with Expressions
expression temporarily to a variable. Enter the variable name to the left of the equals (=) sign, and
the expression to the right. You can then use the variable name to represent the entire expression
in the expression fields for the channels.
2. In the chans0 - chans3 dropdowns you can then specify which channels you want to create
expressions for. This adds or removes expression fields below.
3. You can then enter your expressions for the different channels in the channel expression fields.
USER GUIDE
1018
Cropping, Reformatting, and Transforming Deep Images | Cropping Deep Images
Note: Remember that since the samples at each pixel can be located at arbitrary depths,
resampling during transforming may produce unexpected results since there may not be
samples at the same depth in adjacent pixels.
USER GUIDE
1019
Cropping, Reformatting, and Transforming Deep Images | Transforming Deep Samples
• to box - sets the output width and height to dimensions you define in pixels. Enter values in the
width, height and pixel aspect fields to specify the dimensions.
• scale - sets the output width and height to a multiple of the input size. Use the scale slider to
define the factor. The scale factor is rounded slightly, so that the output image is an integer
number of pixels in the direction selected under resize type.
3. You can specify what kind of resize you want in the resize type dropdown. Select:
• none - to not resize the original.
• width - to scale the original until its width matches the output width. Height is then scaled in
such a manner as to preserve the original aspect ratio.
• height - to scale the original so that it fills the output height. Width is then scaled in such a
manner as to preserve the original aspect ratio.
• fit - to scale the original so that its smallest side fills the output width or height. The longest side
is then scaled in such a manner as to preserve the original aspect ratio.
• fill - to scale the original so that its longest side fills the output width or height. The smallest side
is then scaled in such a manner as to preserve the original aspect ratio.
• distort - to scale the original so that both sides fill the output dimensions. This option does not
preserve the original aspect ratio, so distortions may occur.
4. Check the center box to define whether the input pixels should be resampled to the new size
or centered in the output. If you don’t center, the lower left corners of the input and output are
aligned.
5. To further adjust your image’s layout, you can check the respective boxes for:
• flip - to swap the top and bottom of the image.
• flop - to swap the left and right of the image.
• turn - to turn the image 90 degrees.
• black outside - to set pixels outside the format black.
• preserve bounding box - to preserve pixels outside the output format rather than clipping
them off.
USER GUIDE
1020
Sampling Deep Images | Transforming Deep Samples
USER GUIDE
1021
Writing Deep Data | Transforming Deep Samples
USER GUIDE
1022
Working with File Metadata
The Read node's Metadata tab and the nodes in the Metadata menu of the Toolbar let you work
with information embedded in your images. This section gives instructions on their usage, teaching
you to view, compare, edit, and render metadata.
Metadata
Metadata is a set of information about an image embedded in the image file. This information may
include the image’s original bit depth, width, and height, for example. It can be attached to the file by
the camera used to shoot the images, and/or edited later.
When Nuke loads an image, it reads in the metadata embedded in the image. The metadata is then
passed down the node tree so you can view and use it at any point in your script. For example, you
can reference metadata via expressions. You can also edit or delete existing metadata, add new
metadata to a file, and write the resulting metadata out to files.
Note: Metadata for QuickTime files does not show gamma or bit depth.
Note: The Read and Write node's timecode and edge code fields have been removed from
the Properties panel, but the metadata is still available using the input/timecode and
input/edgecode keys. See Viewing Metadata for more information.
Tip: When using a Merge node, you can choose which input’s metadata to pass down the
tree. In the Merge controls, set metadata from to either A or B.
As well as the Metadata tab in the Read node, the MetaData menu of Nuke's Toolbar features five
nodes that help you work with file metadata:
• ViewMetaData lets you inspect the metadata passed down by the input node. See Viewing Metadata.
• CompareMetaData lets you compare the metadata between two inputs and view the differences. See
Comparing Metadata Between Inputs.
• ModifyMetaData lets you edit existing metadata in the input stream, add metadata into the stream,
and delete metadata from the stream. See Modifying Metadata.
USER GUIDE
1023
Working with File Metadata |
• CopyMetaData lets you copy metadata from one input to another and filter metadata to exclude
some of it. See Copying and Filtering Metadata Between Inputs.
• AddTimeCode lets you add a timecode to the metadata passed down by the input node. See Adding
a Time Code to Metadata.
USER GUIDE
1024
Viewing Metadata |
Viewing Metadata
The simplest way to view file metadata is by clicking the Metadata tab in the Properties panel of a
standard Read node. All the available metadata is displayed, along with a simple search function.
To filter the lists of metadata, use the search metadata for field. For example, if you enter f in the
search metadata for field, only the keys and values that include the letter f are displayed. By default,
the search is done within both keys and values. If you want to limit the search to either keys or values
only, set within to keys only or values only. For example, you can view metadata specific to the
input’s file format by entering the file format (for instance, dpx/) in the search metadata for field
and setting within to keys only.
Note: When observing the creation time (input/ctime) of an image, Windows generally
differs from Linux and Mac. This is due to the different way in which the operating systems
deal with file creation times.
Once you know which keys exist on the input, you can reference them in expressions. See Accessing
Metadata Using Tcl Expressions.
USER GUIDE
1025
Viewing Metadata | Comparing Metadata Between Inputs
USER GUIDE
1026
Modifying Metadata | To Add Metadata
Modifying Metadata
There are several ways to modify metadata in Nuke.
To Add Metadata
1. Select MetaData > ModifyMetaData to insert a ModifyMetaData node after the node whose
metadata you want to add a new key to.
2. In the ModifyMetaData controls, click on the plus (+) button. A placeholder appears in the
metadata box.
3. Double-click on the placeholder under key.
5. Double-click on the placeholder under data and enter a value for the new key.
The new key and its value are added to the metadata being passed through.
To Edit Metadata
1. Select MetaData > ModifyMetaData to insert a ModifyMetaData node after the node whose
metadata you want to edit.
2. In the ModifyMetaData controls, click on the plus (+) button.
USER GUIDE
1027
Modifying Metadata | To Remove Metadata
To Remove Metadata
1. Select MetaData > ModifyMetaData to insert a ModifyMetaData node after the node whose
metadata you want to edit.
2. In the ModifyMetaData properties, click on the plus (+) button. A placeholder is added to the
metadata list.
3. Double-click on the placeholder under action and select remove from the menu that opens.
USER GUIDE
1028
Modifying Metadata | To Edit the List of Actions in the ModifyMetaData Properties
The node now removes the selected key from the metadata, as you can see if you view the
metadata in the output.
USER GUIDE
1029
Copying and Filtering Metadata Between Inputs | To Edit the List of Actions in the ModifyMetaData
USER GUIDE
1030
Adding a Time Code to Metadata | To Edit the List of Actions in the ModifyMetaData Properties
Nuke can also deal with drop frames, such as when a clip’s frame rate is 29.97 or 59.94. Instead of
the default HH:MM:SS:FF time code format, use the format HH;MM;SS;FF, delimited by ;
(semicolon).
Note: Using semicolon delimiters with non-drop frame time codes displays an error in the
Viewer.
2. If you don’t want the time code on the start frame to be 01:00:00:00, enter a new time code in the
startcode field.
3. If you want to specify the playback speed manually rather than get it from the metadata and
project settings, uncheck get FPS from metadata and enter a new value in the fps field.
4. If you want to specify a different start frame than the first frame, check use start frame? and
enter a new value in the start frame field.
If you want to display the time code on the image, insert a Text node after the AddTimeCode node
and enter [timecode] in the message field. For more information on referencing metadata via
expressions, see Accessing Metadata Using Tcl Expressions.
USER GUIDE
1031
Rendering Metadata | To Edit the List of Actions in the ModifyMetaData Properties
Rendering Metadata
When rendering with the Write node, Nuke lets you write out metadata into the following file formats:
.exr, .cin, .dpx, and .jpg. You cannot write out metadata into any other formats.
When rendering metadata into an .exr file, you can use the metadata dropdown menu in the Write
node controls to specify what to write out:
• no metadata - Do not write out any metadata, except for metadata that fills required header fields
(for example, file name and bbox).
• default metadata - Write out the time code, edge code, frame rate, and exposure.
• default metadata and exr/* - Write out the time code, edge code, frame rate, exposure, and
anything in exr/.
• all metadata except input/* - Write out all metadata, except anything in input/.
• all metadata - Write out all metadata.
When rendering any other file format than .exr, Nuke writes whatever metadata the file format
header is known to support. Therefore, what is written out varies according to the file format.
USER GUIDE
1032
Accessing Metadata Using Tcl Expressions | To Edit the List of Actions in the ModifyMetaData
To get a list of all keys and values, use the expression [metadata values].
• To get the value of a particular key in the incoming metadata, use the expression [metadata key].
Replace key with the name of the key whose value you want to use. For example, to display the
name and location of the image file on the image, add a Text node after the image and enter
[metadata input/filename] in the message field.
• To get a filtered list of keys in the incoming metadata, use the expression [metadata keys filter].
Replace filter with whatever you want to use to filter the list. You can use asterisks (*) as wildcards in
your filter to substitute zero or more characters in the key names. For example, to get a list of all
the keys with the letter f in them, use the expression [metadata keys *f*]. To get a list of all the
keys starting with input/, use the expression [metadata keys input/*].
By default, the keys are listed on separate lines. To change this, you can use -s "separator" to have
the keys separated by a separator of your choice. Replace separator with whatever you want to
appear between the different keys. For example, to get a list of all the keys starting with input/ and
separated by spaces, you can use [metadata -s " " keys input/*]. To get the same list separated by
commas, use [metadata -s ", " keys input/*].
By default, if you attempt to access metadata that does not exist in the stream, Nuke returns an
empty string. To make this error instead, use the -e flag before other parameters.
USER GUIDE
1033
Accessing Metadata Using Python | To Edit the List of Actions in the ModifyMetaData Properties
USER GUIDE
1034
Audio in Nuke
In many compositing projects it’s vital to be able to key visual changes to cues on the audio track that
goes with the picture. You can use Nuke’s AudioRead node to read in an audio file, view it in the Curve
Editor and Dope Sheet in order to line up keyframes of your composition with the waveform of the
sound. You can then flipbook the audio with your footage to preview your comp with sound.
Quick Start
You can load audio files into Nuke using the AudioRead node, in much the same way as you read in
images with the Read node. You can read in uncompressed .wav and .aiff files and flipbook them
with your footage for playback.
USER GUIDE
1035
Reading Audio Files into the Node Graph |
USER GUIDE
1036
Reading Audio Files into the Node Graph |
Tip: You can also load an audio file by creating a normal Read node and navigating to a
supported audio file.
2. In the AudioRead properties, use the file control to navigate to the audio file you want to read in.
You can read in uncompressed .wav and .aiff files.
3. Use the time range fields to enter the start and end times in seconds for the audio in Nuke.
4. In the file time range fields, enter the start and end times in seconds of the audio file read in.
These are automatically set to the values in the file, but you can change them to trim the data
used in Nuke.
5. If you want to discard your changes and reload the audio file, click reload.
6. Use the ratesource menu to select the source for the sample rate:
• file - reads the rate from the audio file.
• custom - lets you specify a custom sample rate in the rate field.
USER GUIDE
1037
Creating and Editing Audio Curves | Creating a Keyframe Curve
USER GUIDE
1038
Creating and Editing Audio Curves | Modifying the Audio Curve in the Curve Editor and Dope Sheet
USER GUIDE
1039
Flipbooking the Audio Track | Modifying the Audio Curve in the Curve Editor and Dope Sheet
USER GUIDE
1040
Previews and Rendering
Nuke supports a fast, high-quality internal renderer, with superior color resolution and dynamic
range without a slowdown in the workflow.
This chapter teaches you how to use the renderer’s various features to preview a script’s output and
generate its final elements. You’ll also learn how to preview using Flipbooking and Capture, and check
output on an external broadcast video monitor.
Quick Start
Here's a quick overview of the workflow:
1. With the Viewer, you can preview your footage and use the ROI button to focus on a
particular part of it. For more information, see Previewing Output.
2. You can then flipbook your clip. A quick way of doing this is to click the Flipbook button in the
Viewer, set the frame range and other settings in the Flipbook dialog, and click OK to flipbook
and automatically launch the Flipbook Viewer. See Flipbooking Sequences.
3. Save out low resolution .jpg sequences using Capture to share your work, such as for peer review
purposes. Click the Capture button in the Viewer, set the frame range and other settings in
the Capture dialog, and click OK.
4. If you’ve read in an audio clip with the AudioRead node, you can flipbook that with your footage
just by selecting the right AudioRead node in the Audio dropdown. For more information, see
Audio in Nuke.
5. To check the final result in correct video colorspace and pixel aspect ratio, preview your footage
on an external broadcast video monitor. See Previewing on an External Broadcast Video Monitor.
USER GUIDE
1041
Previews and Rendering |
6. When you’re happy with your preview results, you can render out your clip. To do this, you need
to connect at least one Write node to your clip, and then set the render properties in the
properties panel. You can specify your render format in the filename field, and use the frame
control to offset your frame numbers if necessary. For more information, see Output (Write)
Nodes.
7. If you have more than one Write node connected to your node tree, you can render out all of
them, or select the ones you want to render. You can then click Render > Render all or Render
selected in the menu bar to start the renders. For more information, see Output (Write) Nodes.
USER GUIDE
1042
Previewing Output |
Previewing Output
This section explains how to preview individual frames in a Nuke Viewer window (see Previewing in a
Nuke Viewer), how to render a flipbook for a sequence of frames (see Flipbooking Sequences), and
how to preview output on an external broadcast video monitor (see Previewing on an External
Broadcast Video Monitor).
USER GUIDE
1043
Previewing in a Nuke Viewer | To Enable the ROI Render Feature
Keep in mind the following tips in order to speed up this type of preview rendering:
• First, if you don’t need to evaluate the whole image, zoom into the area of interest. Nuke then
renders only the portion of scan lines visible within the Viewer.
• Alternatively, you can use the Viewer’s region of interest (ROI) feature to render only a portion of the
image, while seeing that result in the context of the whole image.
USER GUIDE
1044
Flipbooking Sequences | Setting the Viewer Cache Location and Size
Flipbooking Sequences
Flipbooking a sequence refers to rendering a range of images (typically at proxy resolution), then
playing them back in order to accurately access the motion characteristics of added effects.
If you have purchased a license for HieroPlayer, you can flipbook using HieroPlayer rather than the
default flipbook that ships with Nuke.
• You can also set up an external flipbooking application in Nuke using Python. For more
information, see the Nuke Python documentation (Help > Documentation).
The Nuke Viewer automatically saves to disk a version of every frame it displays. When you play
through sequences in the Viewer, it reads, where possible, from this cache of pre-rendered images,
making real-time play back possible (depending, of course, on image resolution and your hardware
configuration). You can define the location and size of the Viewer cache in the Preferences.
Depending on what viewer buffer bit depth has been set to in the Viewer settings, the cache can
contain 8-bit (byte), 16-bit (half-float), or 32-bit (float) image data. This offers a trade-off between
speed and quality. Half-float and float modes provide higher precision than byte, but are also slower
to process.
The Viewer now caches each frame it displays in the directory specified. When you click the playback
buttons on the Viewer, or drag on the scrub bar, Nuke reads in images from this cache.
USER GUIDE
1045
Flipbooking Sequences | To Use HieroPlayer as Nuke's Flipbook
Note that the cached images have unique names reflecting their point of output location in the script.
This means that you can cache images from multiple nodes in the script without overwriting
previously cached images. For more information on caching, see Image Caching.
Flipbooking a Sequence
To flipbook an image sequence, do the following:
1. Select the node that you want to flipbook the output of.
Note: If you select a Write node in the step above, you must first click its Render button in
order to manually render its output to the destination defined in the file field. This step is
necessary only in the case of Write nodes.
USER GUIDE
1046
Flipbooking Sequences | Flipbooking a Sequence
Note: If you’re rendering multiple sequences in the background, this can take up more than
the total RAM on your machine. When running background renders of any type, you need to
make sure they don't require more RAM all together than what's available on the machine,
otherwise you may experience problems such as hanging.
• Delete existing temporary files - Check to delete any existing temporary files with the same file
name before flipbooking.
• LUT - select the LUT appropriate for viewing. By default, the flipbook renders your files with a
linear colorspace and attempt to pass a LUT file to the flipbook.
• Burn in the LUT - If you check this box the flipbook files are rendered with the LUT applied. If
you uncheck it, the flipbook is displayed using it's equivalent LUT (based on the LUT’s name). If
you have an equivalent LUT available in the flipbook program, then it's better not to check the
Burn in the LUT box. This way, when you measure pixel values in the flipbook application they
match what you get in the Nuke Viewer.
• Audio - if you want to flipbook an audio file with your clip, select the AudioRead node you need
in this dropdown. For more information on audio files in Nuke, see Audio in Nuke.
• Continue on error - check to keep rendering even if an error occurs during the process.
• Views - check the view(s) to output, if you're working in a multi-view comp.
Note: The Views control is only available in multi-view comps. See Stereoscopic Scripts for
more information.
USER GUIDE
1047
Flipbooking Sequences | Capturing the Viewer
If you flipbooked a stereo comp, you can right-click in the Flipbook and choose Stereo Modes to
view your flipbook in various configurations:
• Side by Side - displays the views side by side at the correct aspect ratio, and adds selection
controls above the Viewer.
• Squeezed Side by Side - displays the views side by side and squeezed to fit the format
horizontally, and adds selection controls above the Viewer.
• Squeezed Above by Below - displays the views above and below each other and squeezed to fit
the format vertically, and adds selection controls above the Viewer.
• Interlace H - displays the views interlaced horizontally, and adds selection controls above the
Viewer.
• Interlace V - displays the views interlaced vertically, and adds selection controls above the
Viewer.
• Checkerboard - displays the views using an alternating checkerboard pattern (one pixel from
left and one pixel from right), and adds selection controls above the Viewer.
• Anaglyph - displays the views simultaneously using a red hue for left and green hue for right,
and adds selection controls above the Viewer.
• Flicker - displays both views alternately, and adds selection controls above the Viewer.
USER GUIDE
1048
Flipbooking Sequences | Capturing the Viewer
USER GUIDE
1049
Flipbooking Sequences | Capturing the Viewer
Note: Nuke only captures sequences using the .jpg format. Don't forget to include printf or
hash frame padding, such as %4d or ####.
USER GUIDE
1050
Previewing on an External Broadcast Video Monitor | Capturing the Viewer
Previewing on an External
Broadcast Video Monitor
To check the final result in correct video colorspace and pixel aspect ratio, you can preview the
current Viewer image on an external broadcast video monitor. This option requires additional
hardware, such as a monitor output card or a FireWire port.
Our monitor out architecture interfaces directly with the AJA and BlackMagic device drivers, which are
unified across their respective hardware lines, meaning all current supported cards for the versions
detailed in Third-Party Library Versions should work. We've tested the following AJA and Blackmagic
hardware:
Formats
SD
HD
2K
UHD
4K
BNC
HDMI
Stereoscopic Support
No Yes Yes No
Platforms
Win, Mac, Linux Win, Mac, Linux Win, Linux Mac 10.9 and
10.10
Drivers
USER GUIDE
1051
Previewing on an External Broadcast Video Monitor | Capturing the Viewer
Note: The following should be taken into account when using the Monitor Out functionality
with AJA cards:
If you're running AJA cards on Linux, you can contact www.aja.com/support to obtain the
correct drivers.
12-bit monitor output is only supported with dual connection cards, that is cards with two
physical connections, not dual links combining two separate streams of data.
Hiero is unable to send out the right eye separately using the 2nd output cable of KONA 3G
cards. Instead, both views are sent through the 1st output and can be viewed using the side-
by-side, anaglyph, and interlacing options.
Formats
SD
HD
2K
UHD
4K
BNC
HDMI
Stereoscopic Support
No No Yes No
Platforms
USER GUIDE
1052
Previewing on an External Broadcast Video Monitor | Capturing the Viewer
Win, Mac, Linux Win, Mac, Linux Win, Mac, Linux Win, Mac, Linux
Drivers
Formats
SD
HD
2K
UHD
4K
BNC
HDMI
Stereoscopic Support
Platforms
Drivers
USER GUIDE
1053
Previewing on an External Broadcast Video Monitor | To Preview Output on an External Broadcast
Nuke can output images to external broadcast monitors in either 8- or 10-bit RGB color modes. 10-bit
color is automatically selected when the Viewer's gl buffer depth setting is half-float or float,
provided it is supported by the monitor output card. In all other cases, 8-bit color is used.
Note: Selecting a monitor output mode with the phrase 10-bit in its description only
outputs true 10-bit color if a gl buffer depth of either half-float or float is selected. Half-
float and float modes are considerably slower to process, so it is recommended to stick with
byte mode for monitor output unless 10-bit color is specifically required.
From now on, any output connected to the Viewer is sent to the monitor output device you selected.
USER GUIDE
1054
Previewing on an External Broadcast Video Monitor | To Disable Viewing on an External Broadcast
The monitor output image is always full frame, unzoomed (1:1 ratio), and unpanned, regardless of
what the Viewer it is linked to is set to. This means that slightly mismatching formats (for example,
640x512 / 640x448 for PAL/NTSC) are not rescaled to fit the monitor.
If you save your Nuke script with monitor output enabled, this setting is saved with the script. The
next time you open the same script, monitor output is enabled.
USER GUIDE
1055
Rendering Output | To Disable Viewing on an External Broadcast Video Monitor
Rendering Output
Nuke can render images locally on your workstation (see Output (Write) Nodes) or it can be setup to
render images on a network render farm (see Using the Frame Server on External Machines). Before
rendering, make sure that you are using the appropriate file name syntax (see File Name Conventions
for Rendered Images) and verify that your project settings have the correct output format and proxy
format selected (see Render Resolution and Format).
By default, if you choose to render frame 15, the resulting file is numbered accordingly, for example
image.0015.rgb. However, you can change this behavior via expressions, specified start frames, and
constant offsets (see Changing the Numbering of Rendered Frames).
Sometimes, you may want to render an image just to read the rendered image back in (see Using a
Write Node to Read in the Rendered Image). Because reading the output from a file is faster than
calculating its output by processing the node tree upstream, this can speed up large projects.
Note: Scripts that require Nuke to load a large number of files concurrently (for example,
by having hundreds of Read nodes followed by TimeBlurs) may exceed the number of
available file handles per process, causing problems when rendering scripts.
Nuke itself supports up to 2048 file handles on all systems; however, you may need to
increase the file handle limit on your system.
On Mac, you can increase the default limit of 256 (depending on your version) by entering
the following command from the Terminal and then running Nuke from the same Terminal
session:
ulimit -Sn 2048
USER GUIDE
1056
Render Resolution and Format | To Disable Viewing on an External Broadcast Video Monitor
To view and change the proxy resolution for the current script file, select Edit > Project Settings from
the menu bar, or press S with the mouse pointer over the Node Graph or the Properties Bin.
From the Project Settings properties panel, you can select a new render format from the dropdown
menu of predefined resolutions, and toggle proxy rendering. You can also select the new option
under either full size format or proxy format or use the proxy scale fields to define custom render
resolutions for the composite. When rendering in proxy mode, use the dropdown menu on the right
to select whether to use the resolution defined under proxy format or proxy scale. Also check that
you have set read proxy file to what you want - this setting controls how Read nodes select the file to
read (full res file or proxy) in the proxy mode. For more information on these settings, refer to Setting
Up Your Script .
USER GUIDE
1057
Output (Write) Nodes | To Render a Single Write Node
One Write node is usually placed at the bottom of the compositing tree to render the final output.
However, Write nodes have both input and output connectors, so they may be embedded anywhere
in the compositing tree.
You can execute renders for a single Write node or all Write nodes in your compositing script.
USER GUIDE
1058
Output (Write) Nodes | To Render a Single Write Node
4. In the properties panel, click the file or proxy field’s folder icon (depending on whether you want
to render high res or low res images) and browse to the directory where you want to store the
rendered sequence. For instructions, see Using the File Browser.
5. After the path, type a name for the rendered image and then click OK. If you’re rendering an
image sequence, include the frame number variable (for example, ####) in the name.
See To Render Selected or All Write Nodes in the Script below for examples of valid file names
with the frame number variable.
6. If necessary, adjust the following controls:
• Using the channels dropdown menu and checkboxes, select the channels you want to render.
• Using the frame dropdown menu and input field, set the relation between the currently
processed frame and the numbering of the frame written out. For more information, see
Changing the Numbering of Rendered Frames.
• check read file if you want the output of the Write node to be produced by reading the
rendered file back in rather than by processing the upstream node tree. For more information
on this and the missing frames control, see Using a Write Node to Read in the Rendered Image.
• From the colorspace dropdown menu, select which lookup table to use when converting
between the images’ color space and Nuke’s internal color space.
• From the file type dropdown menu, select the file format for the rendered images. If you don’t
specify a file format, Nuke uses the extension in the file name to figure out the format.
USER GUIDE
1059
Output (Write) Nodes | To Render a Single Write Node
• Check the limit to range box if you want to disable the node when executed outside of a
specified frame range. In the frame range fields, enter the range of frames you want to make
executable with this Write node.
7. In the Write node properties, click the Render button.
8. In the Render dialog, adjust the render settings if necessary:
• Frame range - set the frame range you want to render.
• Use proxy - check to use proxy mode.
• Render using frame server - enable this checkbox if you want to use Nuke's frame server to
render the frames specified in the current render task. When the frame server is disabled, Nuke
can only perform one render task at a time. Executing another render displays a warning and
the current render is paused until you acknowledge the message:
Tip: When specifying the frame range to render, you can enter complex frame ranges into
the frame range prompt dialog. For example, if you enter 1-5 8 10 15 22-25, it only renders
those frames. You can also increment rendered frames using something like 10-50x10,
which resolves to only frames 10, 20, 30, 40, and 50 from the range.
Likewise, you can specify multiple ranges on the command line, for example:
nuke -F 1-5 -F 8 -F 10 -F 15 -F 20-40x5 -x myscript.nk
Tip: When rendering with the Write node, you can force a certain data type by adding the
data type and a colon before the file path. For example, you can enter ftiff:C:\Temp\test.tif
as the file path to render a file whose data type is ftiff and extension .tif.
USER GUIDE
1060
Output (Write) Nodes | To Render Selected or All Write Nodes in the Script
Tip: When specifying the frame range to render, you can enter complex frame ranges into
the frame range prompt dialog. For example, if you enter "1-5 8 10 15 22-25", it only renders
those frames. Likewise, you can specify multiple ranges on the command line, for example:
nuke -F 1-5 -F 8 -F 10 -F 15 -F 22-25 -x myscript.nk
USER GUIDE
1061
Output (Write) Nodes | Selecting Which Views to Render
You can see the progress of your render in the status window that appears. When the render
is complete, the rendered images are added to the directory you specified.
Tip: When rendering with the Write node, you can force a certain data type by adding the
data type and a colon before the file path. For example, you can enter ftiff:C:\Temp\test.tif as
the file path to render a file whose data type is ftiff and extension .tif.
For example, if your script contained two Write nodes calling for the main view and left and right
views, but the Render dialog is set to render main, then only the main view is rendered.
Conversely, if the Write nodes are calling for the left and right views, but the Render dialog is set to
render main, then no views are rendered.
In the example above, the left-hand dialog is set to render only main and the right-hand dialog is set
to render only cam1 and cam2.
USER GUIDE
1062
Output (Write) Nodes | Notes on Rendering QuickTime Files
So, in the case of the first render, Write1 renders main, Write2 renders nothing, and Write3 renders
main.
In the case of the second render, Write1 renders cam1 and cam2, Write2 renders cam1, and Write3
renders nothing.
Note: If you're using the Avid DNxHD codec, Avid AVDn, avoid setting the pixel format
control to r408 as there is a known issue within the codec causing frames to darken with
each frame progression in the sequence.
Note: Depending on the codec in use, this control may be read only. For example, Apple
ProRes 4444 always uses mov64, but Animation allows you to choose mov32 or mov64.
• mov32 - uses the full range of QuickTime codecs, but can be slow to process due to extra
complexity during decode.
• mov64 - uses its own packing and unpacking and streams decode/encode for extra processing
speed, but only supports a sub-set of QuickTime codecs.
Note: Nuke defaults to the fastest decoder for the codec used in the file - if you're reading
in a type supported by the mov64 sub-set, Nuke defaults to that reader. Otherwise, the
fallback mov32 reader is used.
• fps - set the playback frames per second for the output file.
• audio file - Allows you to specify a separate audio file to include in the output. Either enter the
filepath manually or click the browse button to locate the audio file.
• audio offset - Sets the start time of any audio file specified in the audio file control. The unit of
measure is specified using the units control. Negative values cause the audio to start before the
video and vice versa.
• write timecode - When enabled, Nuke writes the timecode into the .mov metadata, where
available.
USER GUIDE
1063
Output (Write) Nodes | Notes on Rendering QuickTime Files
Note: The timecode is read from the input/timecode metadata key pair. If this field is
blank, the timecode is not written into the file.
Control Description
mov32 encoder
fast start When enabled, MOVs are playable while still down loading.
use format When enabled, the rendered .mov uses the same pixel ratio as the input.
aspect
When disabled, the codec determines the pixel aspect to use.
ycbcr matrix Sets the way RGB is converted to Y’CbCr. Rec 601 and Rec 709 follow the ITU.BC
specifications, whilst Nuke Legacy, Nuke Legacy Mpeg, and Nuke Legacy
YUVS are retained for backwards compatibility. Format-based sets the color
matrix to Rec 601 for formats with a width below 840 pixels and Rec 709 for
formats with a width of 840 pixels or above.
This setting is only available when you’re working with a Y’CbCr-based pixel type.
pixel format Lists pixel formats supported by the current codec. The pixel format defines the
type and layout Nuke requests from QuickTime:
• Pixel colorspace - either RGB(A) or YCbCr(A). This defines whether QuickTime
or Nuke’s QuickTime reader does the conversion between colorspaces. For a
Y’CbCr pixel type, choosing an RGB(A) colorspace means Nuke relies on
QuickTime to do the RGB to Y’CbCr conversion. Choosing a YCbCr(A)
colorspace means that Nuke is responsible for the conversion, and so a
USER GUIDE
1064
Output (Write) Nodes | Notes on Rendering QuickTime Files
Control Description
write nclc When enabled, write the nclc data in the colr atom of the video sample.
write gamma When enabled, write the gama data in the gama atom of the video sample.
write prores When enabled, write the prores data in the prores header of the video sample.
mov64 encoder
bitrate Sets the target bitrate that the codec attempts to reach, within the limits set by
the bitrate tolerance and quality min/max controls.
Note: The bitrate control is only enabled for certain codecs, such as
MPEG-4 - Video.
bitrate tolerance Sets the amount that the bitrate can vary from the bitrate setting. Setting this
tolerance too low will result in renders failing.
USER GUIDE
1065
Output (Write) Nodes | Notes on Rendering QuickTime Files
Control Description
quality min Sets the quality range within which the codec can vary the image to achieve the
specified bitrate. Higher ranges can introduce image degradation.
quality max Note: The quality min/max controls are only enabled for certain
codecs, such as MPEG-4 - Video.
gop size Sets how many frames can be placed together to form a compression GOP
(group of pictures).
Note: Use caution with this control as large alterations can stop other
applications reading the rendered file.
Note: The gop sizecontrol is only enabled for certain codecs, such as
MPEG-4 - Video.
b frames Sets the maximum number of B frames that can be consecutive in the rendered
file.
The default, 0, does not impose any maximum number of B frames in the
output.
Note: The b frames control is only enabled for certain codecs, such as
MPEG-4 - Video.
write nclc When enabled, write the nclc data in the colr atom of the video sample.
Nuke writes the selected colorspace and pixel format, along with some other information, into the
metadata of the file. If you then read the rendered file in, Nuke reads that metadata and is able to
pick the correct defaults for the file. To see the file metadata yourself, use a ViewMetaData node.
When writing QuickTime files, some users have reported receiving the following error at the end of
rendering:
Failed to flatten movie data: the movie is open in another application.
This is because the output file has been opened by some other process. This can be the Finder on
Mac trying to show a preview, an OS file system search trying to index the file, or a virus checker, for
USER GUIDE
1066
Output (Write) Nodes | Notes on Rendering OpenEXR Files
example. The workaround is to turn off Fast Start in the Write node controls to skip the flattening
process that is affected.
To set how the data is stored in your rendered .exr file, open the Write properties and set interleave
to:
• channels, layers and views - Write channels, layers, and views into the same part of the rendered
.exr file. This creates a single-part file to ensure backwards compatibility with earlier versions of
Nuke and other applications using an older OpenEXR library.
• channels and layers - Write channels and layers into the same part of the rendered .exr file, but
separate views into their own part. This creates a multi-part file and can speed up Read
performance, as Nuke only has to access the part of the file that is requested rather than all parts.
• channels - Separate channels, layers, and views into their own parts of the rendered .exr file. This
creates a multi-part file and can speed up Read performance if you work with only a few layers at a
time.
USER GUIDE
1067
Rendering Using the Frame Server | Notes on Rendering OpenEXR Files
The Frame Server is disabled by default, but you can enable it in the Preferences > Performance >
Threads/Processes or on a per render basis in the Write node's Render dialog.
Rendering Write nodes, either from a node's Properties or from the Render menu, displays the
Render dialog. See Output (Write) Nodes for more information on initiating renders. If the Frame
Server is enabled, clicking OK in the Render dialog starts the selected renders in the background,
allowing you to keep working.
The Background Renders tab is not displayed as part of the workspaces that ship with Nuke, but you
can enable Performance > Threads/Processes > focus background renders in the Preferences to
open the panel automatically when the Frame Server is in use.
Tip: You can also add the panel manually by right-clicking the button in the top-left of
any pane, and then selecting Windows > Background Renders.
USER GUIDE
1068
Rendering Using the Frame Server | Frame Server Preferences
The Background Renders panel includes information such as script name, Write node, frame range,
progress, and whether or not the render produced errors.
USER GUIDE
1069
Rendering Using the Frame Server | Using the Frame Server on External Machines
Note: You must restart Nuke if you change the number of processes available.
• export renders - allows you to set limitations on the resources available for render processes:
• limit renderer (more responsive ui) – select this option to make the user interface more
responsive during rendering. It tells Nuke to use 2 threads to transcode and to use 25% of RAM
to cache. Using this option is likely to result in slower renders.
• no renderer limits (fastest transcoding) – select this option to ensure that renders happen as
quickly as possible. This option may result in a less responsive user interface during rendering.
• customize render limits – select this option to manually configure the number of threads
used and cache memory available during renders.
Note: The Frame Server requires a Nuke license (nuke_i) on the main workstation, but only
a Nuke render license (nuke_r) on the slave machines.
If you want to use an interactive license (nuke_i) on the slave machines, add the --
useInteractiveLicense argument to the runframeserver.py command described below.
Warning: In order for everything to work smoothly, you need to ensure that both your
external slave machines and main Nuke session can read and write files to a shared
location, such as an NFS share.
Depending on platform this can be done by manipulating your default umask setting, but
be aware that this alters the permissions of the created files.
USER GUIDE
1070
Rendering Using the Frame Server | Configuring the Frame Server on External Machines
Additionally, Macs and certain Linux distributions, such as RHEL, can not function as the
main workstation if the firewall is blocking the communication port 5560. You can configure
the firewall to allow certain ports through the firewall using the iptables command, but use
caution when doing so. For example:
Please refer to the documentation on firewalls for your particular platform for more
information.
The Frame Server uses a number of worker processes on the external machine, each of which
requires allocated resources, such as threads, memory, and so on. There are a number of arguments
that you must pass to runframeserver.py for the server to work correctly:
• --numworkers - this is the number of concurrent Nuke processes that are launched when you run
this server render node.
• --nukeworkerthreads - the number of threads that each worker is allocated. This is similar to
setting the -m argument when running Nuke from the command line.
• --nukeworkermemory - the amount of memory, in MB, allocated to each frame server worker.
• --workerconnecturl - the TCP port address of the main workstation you want to serve. For
example:
tcp://bob:5560
where bob is the resolved hostname of a machine you wish to serve. You can also use an IP address.
Tip: To ensure that you're entering a valid URL, try using the ping command to see if you get
a response.
Tip: On Windows, if there are spaces in the file path, remember to place the path in quotes.
For example, --nukepath="C:\Program Files\Nuke11.3v5\Nuke11.3.exe"
On a Linux slave machine, an example command prompt entry running from the install directory
might look like this:
./python ./pythonextensions/site-
packages/foundry/frameserver/nuke/runframeserver.py --numworkers=2 --
nukeworkerthreads=4 --nukeworkermemory=8096 --workerconnecturl=tcp://bob:5560
--nukepath=./Nuke11.3
USER GUIDE
1071
Rendering Using the Frame Server | Frame Server Logs
On a Windows slave machine, an example command prompt entry running from the install directory
might look like this:
python.exe pythonextensions\site-
packages\foundry\frameserver\nuke\runframeserver.py --numworkers=2 --
nukeworkerthreads=4 --nukeworkermemory=8096 --workerconnecturl=tcp://bob:5560
--nukepath=Nuke11.3.exe
In the examples, we specify that the slave uses two Nuke workers, with four threads and 8 GB RAM
each, and are slaved to the main Nuke workstation running on bob.
Tip: If your slave machines run a different OS than your main Nuke machine, you can use
the --remap command line argument to convert file paths between them. The host file path
is read first followed by the slave file path. Nuke expects all file paths to use / (forward slash)
between directories. For example:
--remap "P:/,/mnt/renders/"
converts host paths beginning with P:/ (Windows style) to slave paths beginning with
/mnt/renders/ (Linux style).
You can check that the Frame Server and workers are connected by running the following lines in the
Script Editor on the main workstation:
from hiero.ui.nuke_bridge.FnNsFrameServer import frameServer
print [worker.address for worker in frameServer.getStatus(1).workerStatus]
Successful connections should report something similar to the following in the output panel:
['Worker 0 - henry.local - 192.168.1.11', 'Worker 0 - bob.local -
192.168.1.111', 'Worker 1 - henry.local - 192.168.1.11']
Where henry.local is the name of the remote slave, and bob.local is the name of the main Nuke
session.
Note: If the workers cannot contact the Frame Server, an exception is printed in the Script
Editor's output panel.
USER GUIDE
1072
Rendering Using the Frame Server | Frame Server Logs
worker-1.log
worker-2.log
Note: Running the Frame Server using Python, as described above, always writes log files to
the specific OS temporary directory. For example, on Windows C:\temp is used.
Tip: You can use the FRAMESERVER_LOG_DIR environment variable to force Frame Server
logs into a different location. See for more information.
USER GUIDE
1073
File Name Conventions for Rendered Images | Writing Versions of Rendered Images
The optional <prefix>: can be any valid extension. <path> is the full path name to the directory where
you want to render. The <frame number variable> is usually entered as ####, with #### indicating
frame numbers padded to four digits.
You can change the padding by substituting #### with any number of hash marks. For example, two-
digit padding would be ##, three-digit would be ###, and five-digit would be #####.
With these conventions in mind, suppose you want to save an image sequence called “final_comp_
v01” to the TIFF16 format. Here are examples of names that work in the Write node:
tiff16:/<path>/final_comp_v01.####.tiff
/<path>/final_comp_v01.####.tiff16
tiff16:/<path>/final_comp_v01.####
All extensions supported by Nuke may be used for the prefix. See Appendix C: Supported File
Formats on page 2007 for a complete list of recognized extensions.
When a prefix is used, it takes precedence over the format represented by an extension. In fact, the
prefix makes the extension unnecessary.
You could, for example, enter exr:/<path>/### as the file name, and this would create an OpenEXR
image sequence with frame numbers only, padded to three digits.
USER GUIDE
1074
Changing the Numbering of Rendered Frames | Using Expressions
Using Expressions
1. Select Image > Write to insert a Write node into your script.
2. In the Write properties panel, click the file folder icon , then navigate to the directory path
where you want to save the rendered image sequence. Enter a name for the image sequence.
3. Set frame to expression. Enter an expression in the field on the right. The expression changes
the relation between the currently processed frame and the numbering of the frame written out.
The resulting file name for the current frame is displayed on the Write node in the Node Graph.
For example, if your clip begins from frame 500 and you want to name that frame image.0001.rgb
rather than image.0500.rgb, you can use the expression frame-499. This way, 499 frames are
subtracted from the current frame to get the number for the frame written out. Frame 500 is
written out as image.0001.rgb, frame 501 is written out as image.0002.rgb, and so on.
USER GUIDE
1075
Changing the Numbering of Rendered Frames | Specifying a Frame Number for the First Frame in the
Another example of an expression is frame*2. This expression multiplies the current frame by
two to get the number of the frame that’s written out. At frame 1, image.0002.rgb is written out; at
frame 2, image.0004.rgb is written out; at frame 3, image.0006.rgb is written out; and so on.
2. In the Write properties panel, click the file folder icon , then navigate to the directory path
where you want to save the rendered image sequence. Enter a name for the image sequence.
3. Select start at from the frame dropdown menu. Enter a start frame number in the field on the
right. This specifies the frame number given to the first frame in the sequence. The numbering of
the rest of the frames is offset accordingly.
For example, if your sequence begins from frame 500 and you enter 1 in the field, frame 500 is
written out as image.0001.rgb, frame 501 as image.0002.rgb, and so on. Similarly, if you enter 100
in the field, frame 500 is written out as image.0100.rgb.
2. In the Write properties panel, click the file folder icon , then navigate to the directory path
where you want to save the rendered image sequence. Enter a name for the image sequence.
3. From the frame dropdown menu, select offset. Enter a constant offset in the field on the right.
This constant value is added to the current frame to get the number for the frame that’s written
out.
USER GUIDE
1076
Changing the Numbering of Rendered Frames | Offsetting All Frame Numbers by a Constant Value
For example, if your clip begins from frame 500 and you want to render this first frame as
image.0001.rgb rather than image.0500.rgb, you can use -499 as the constant offset. This way, 499
is subtracted from the current frame to get the number for the frame that’s written out. At frame
500, image.0001.rgb is written out; at frame 501, image.0002 is written out, and so on.
USER GUIDE
1077
Using a Write Node to Read in the Rendered Image | To Use a Write Node to Read in the Rendered
Tip: You can also use the Precomp node (Other > Precomp) to reduce portions of the node
tree to pre-rendered image inputs. For more information, see Using the Precomp Node.
USER GUIDE
1078
Using a Write Node to Read in the Rendered Image | What is the Hash Value?
You can display the hash value at any point in the node tree by selecting a node in the Node Graph
and pressing I. The hash is different at different points in the tree.
USER GUIDE
1079
Render Farms | What is the Hash Value?
Render Farms
Nuke is supported by virtually all third-party and proprietary render-queuing software. By integrating
Nuke with such a system, the render load can be distributed across all the Nuke-licensed machines
on your network, whether Windows, Mac, or Linux-based.
Note: Instead of setting up a render farm, you can take advantage of the internal Frame
Server, which allows you to setup external slave machines to process renders faster. See
Using the Frame Server on External Machines for more information.
Your installation of Nuke may be configured to send jobs to a network render farm, which is usually
made available under the Render menu (i.e., Render > Render). However, because this option must
be customized for each studio, you should check with your system administrator for instructions on
how to send a Nuke script for network rendering.
Tip: If you’re attempting to force Nuke to retry an operation rather than failing, such as for
license issues during rendering, you may find Nuke’s exit codes helpful:
0 = success
1 = render error
100 = license failure
USER GUIDE
1080
Organizing Scripts
As scripts grow in complexity and are worked on by several people, it becomes increasingly important
to organize them in a clear and meaningful way. These pages teach you how to:
• display information about your Nuke script. See Displaying Script Information.
• find and replace all or part of file names or file paths in any node with file or proxy controls. See
File Name Search and Replace.
• group nodes in the Node Graph using the Backdrop node or the Group node. See Grouping Nodes
in the Node Graph.
• add notes to the Node Graph. See Adding Notes to the Node Graph.
• use the Precomp node to save a subset of the node tree as a separate .nk script, render the output
of this saved script, and read the rendered output back into the main comp as a single image input.
See Using the Precomp Node.
• use the LiveGroup node, which combines the power of groups and precomps with the utility of
gizmos. See Using the LiveGroup Node.
USER GUIDE
1081
Displaying Script Information |
2. If you make changes to your script while the window is open, click update to update the
information.
3. To close the information window, click close.
USER GUIDE
1082
Using Visual Diagnostics | Enabling Visual Diagnostics
Note: Profile nodes add processing overhead, but the data gathered still provides an
accurate picture of where processing time is spent in the script.
1. Navigate to Image > Profile to add a Profile node to the Node Graph.
2. Connect the Profile node to the point in the node tree where you want to collect profiling data.
Note: You cannot connect Profile nodes directly to 3D, Particle, or Deep nodes. To profile
these nodes, you'll need to render their output through a render node, such as
ScanlineRender, RayRender, or a third-party renderer like PRManRender.
3. Click open profile panel in the node properties or click the content menu and select Windows
> Profile.
The Profile tab opens.
4. Click the profile node dropdown and then select the a Profile node in the Node Graph by name,
OR
Select the a Profile node in the Node Graph and then choose selected.
USER GUIDE
1083
Using Visual Diagnostics | Enabling Visual Diagnostics
5. Set the frame range to collect data from and the required data type using the checkboxes.
Tip: The initial frame range is determined by the Project Settings > frame range control
and all data types are collected by default. The frame range control accepts complex
ranges, such as 1-10, 15-25 and 1-200x10. See Defining Frame Ranges for more information.
Note: If you've imported existing profiling data from a .csv or .xml file, you can't profile the
current script. See Exporting and Importing Profile Data for more information.
As the specified frame range is calculated, timing information is displayed and the nodes in the
Node Graph are colored according to the proportion of the total processing time spent in each
one.
USER GUIDE
1084
Using Visual Diagnostics | Enabling Visual Diagnostics
The profiling data is stored in the Profile tab's DATA panel when complete. See Filtering Profile Data
for information on how to control what profiling data is displayed.
USER GUIDE
1085
Using Visual Diagnostics | Enabling Visual Diagnostics
USER GUIDE
1086
Filtering Profile Data | Enabling Visual Diagnostics
The following controls determine what output is available on-screen and for export to .csv or .xml
file:
• minimum threshold - allows you to hide display data that doesn't reach a certain minimum value.
For example, setting the threshold to 15% can hide any nodes that don't use at least 15% of the
available memory.
Tip: You can zoom in and out of the DATA pane using the buttons.
• display data - determines what data is displayed from CPU, wall, ops, and memory. The default,
all, displays all the available profiling data:
• CPU - the time that the CPU spent executing the processing code, in microseconds, aggregated
over all CPU threads. For example, with multi-threaded processing this is typically much larger
than the wall time. If the average CPU time per thread (CPU divided by the number of threads
used) is much shorter than the wall time, this suggests the CPU threads have spent a lot of time
not executing code and perhaps waiting on locks, which could indicate a performance problem.
Note: On Mac and Windows, the CPU time is not currently accurate. On Mac, the CPU value
is always similar to the wall time.
USER GUIDE
1087
Filtering Profile Data | Enabling Visual Diagnostics
• wall - the time taken as it would be measured by a clock on the wall - the actual time you have
to wait for the processing to complete. The wall time is also measured in microseconds.
• ops - the number of operators called in the node. Operators are Nuke's building blocks that
perform certain tasks. Nodes can contain one or more ops. For example, when a node needs to
resize something it would use a Transform op rather than an implementation of its own to do
the same thing.
See https://learn.foundry.com/nuke/developers/110/ndkdevguide/intro/terminology.html#op for
more information.
• memory - the total amount of system memory used by the node.
Tip: Bear in mind that some node classes also contain numerical values to differentiate
between current and deprecated classes, such as Text and Text2.
• display nodes - for large scripts, it is impractical to display all the nodes in the Node Graph in the
Profile tab. In bar, pie and timeline mode, only the top 15 results by resource usage are listed. In
table mode, all results are listed.
The display nodes control allows you to be more selective with your output:
• all - displays data for all the nodes in the script.
• list - enter the explicit node names to display in the DATA panel. You can type the names
manually or select nodes in the Node Graph and then click add selected.
You can also find nodes listed in the FILTER panel by clicking select to highlight them in the
node tree.
With display nodes set to all. With display nodes set to a list.
You can display data by node class, such as CameraTracker, or explicitly by node name, such as
Read2.
USER GUIDE
1088
Filtering Profile Data | Enabling Visual Diagnostics
Tip: You can zoom in and out of the DATA pane using the buttons.
• chart type - sets the form of the output produced from the profiling data:
• bar or pie chart, and timeline - displays the top 15 results by resource usage.
• table - displays all results in table form, a visual representation of the .csv or .xml file output.
USER GUIDE
1089
Exporting and Importing Profile Data | Exporting Profile Data
2. Enter a valid file path in the export profile data control and then click export.
Tip: You can also browse to the export location using the button.
The profile data is saved to the specified location as a .csv or .xml file.
USER GUIDE
1090
Exporting and Importing Profile Data | Importing Profile Data
2. Enter a valid file path in the import profile data control and then click reload.
Tip: You can also browse to the location of the file using the button.
The profile data is imported from the specified location and displayed in the DATA panel.
USER GUIDE
1091
Using Performance Timing | Enabling Performance Timings
Note: You can also access timing information for individual nodes using Python. See
https://learn.foundry.com/nuke/developers/113/pythondevguide/performance.html for more
information.
Note: Enabling performance timings interactively or from the command line adds an extra
processing overhead, but the data still provides an accurate picture of where processing
time is spent in the script.
USER GUIDE
1092
Using Performance Timing | Outputting Performance Timings Onscreen
Note: You can reset the timing data using nuke.resetPerformanceTimers() from the
Script Editor.
When the performance timers are active, the following information is available onscreen:
• cpu - the time that the CPU spent executing the processing code, in microseconds, aggregated over
all CPU threads. For example, with multi-threaded processing this is typically much larger than the
wall time. If the average CPU time per thread (cpu divided by the number of threads used) is much
shorter than the wall time, this suggests the CPU threads have spent a lot of time not executing
code and perhaps waiting on locks, which could indicate a performance problem.
Note: On Mac and Windows, the CPU time is not currently accurate. On Mac, the cpu value
is always similar to the wall time.
• wall - the time taken as it would be measured by a clock on the wall - the actual time you have to
wait for the processing to complete. The wall time is also measured in microseconds.
• ops - the number of operators called in the node. Operators are Nuke's building blocks that
perform certain tasks. Nodes can contain one or more ops. For example, when a node needs to
resize something it would use a Transform op rather than an implementation of its own to do the
same thing.
In addition to the timing information, nodes are color-coded according to their profiling, green
through red, where red is a slow node. You can see from the example script that Defocus is a slow
node, whereas Merge is doing no work at all.
USER GUIDE
1093
Using Performance Timing | Writing Performance Timings to File
Note: You can stop displaying timing data using nuke.stopPerformanceTimers() in the
Script Editor.
On Windows, for example, the following command writes profile data to file when you render from a
Write node in the Node Graph:
Nuke<version>\Nuke<version>.exe -Pf <file path and name>.xml
Rendering from the command line, the following command renders 10 frames from a script called
profileTest.nk and writes the profile data to an XML file:
Nuke<version>\Nuke<version>.exe -x -Pf C:\temp\profileTest.xml
C:\temp\profileTest.nk 1-10
USER GUIDE
1094
File Name Search and Replace | To Search for a File Name or File Path and Replace It
Nuke searches for the string in the selected nodes and replaces it with the new string.
Note: You can also enter expressions into the Search and Replace dialog. Just remember
that the search field in the dialog only takes regular expressions. Any characters that have
specific meanings in regular expressions, such as [ and ], need to be preceded by the \
character. For example, [getenv HOME] would need to be entered as \[getenv HOME\].
You can also pass flags alongside the expression itself to control how the expression
behaves. For example, to perform case-insensitive searches, you can enter (?i) in the
beginning of the expression or after one or more whitespace characters.
USER GUIDE
1095
Grouping Nodes in the Node Graph | Grouping Nodes with the Backdrop Node
You can also use the Z Order control in the Properties panel to layer-up Backdrop nodes. Backdrops
with lower Z Order values appear underneath those with a higher value.
USER GUIDE
1096
Grouping Nodes in the Node Graph | Grouping Nodes with the Backdrop Node
2. Drag the triangle in the lower right corner of the box to resize the box as necessary.
3. Click on the box title bar and drag it to move the box behind the nodes you want to group
together. If there are any nodes on the box, they move together with the box.
4. To change the color of the box, open the Backdrop node’s controls by double-clicking on the title
bar, then click the left color button and pick a new color with the color picker that appears.
5. To change the title of the box, enter a new name for the Backdrop node in the node’s controls.
6. To layer-up Backdrop nodes, enter a value in the Z Order control in the Properties panel.
Backdrops with lower Z Order values appear underneath those with a higher value.
USER GUIDE
1097
Grouping Nodes in the Node Graph | Grouping Nodes with the Group Node
7. If you later want to remove both the box and the nodes inside it, click on the title bar and press
Delete. Ctrl/Cmd+clicking on the title bar and pressing Delete only removes the box and leaves
the nodes untouched. To remove the nodes and leave the box untouched, click on the triangle in
the lower right corner of the box and press Delete.
Tip: You may want to use Backdrop nodes as jump-to points throughout a project. For more
information, see Navigating Inside the Node Graph.
USER GUIDE
1098
Grouping Nodes in the Node Graph | Grouping Nodes with the Group Node
The selected nodes are nested into a group. The internal structure of the Group node is shown on a
separate tab that opens.
Tip: As an alternative to Edit > Node > Group > Collapse to Group, you can also select
Other > Group from the Toolbar or the Node Graph right-click menu.
You can also select the node and then press Ctrl/Cmd+Enter to open the Group.
To Ungroup Nodes
1. Select the Group node in the Node Graph.
2. Select Edit > Node > Group > Expand Group (or press Ctrl/Cmd+Alt+G).
The Group node is replaced with the nodes that were nested inside it.
OR
1. In the Group node’s controls, click the S button in the top right corner.
USER GUIDE
1099
Grouping Nodes in the Node Graph | Grouping Nodes with the Group Node
USER GUIDE
1100
Adding Notes to the Node Graph | To Add a Note to the Node Graph
3. In the StickyNote controls, enter your note in the label field. If you like, you can use HTML mark-
up. For example,
• to have a note appear in bold, you can use <b>my note</b>. This would appear as my note.
• to have a note appear in italics, you can use <i>my note</i>. This would appear as my note.
• to add an icon to your note, you can use <img src="Colorwheel.png"/>. This adds the Nuke
color wheel icon. You can also use your own icons in the same way as long as you save them in
your plug-in path directory. Most common image formats work, but we recommend using .png
files.
USER GUIDE
1101
Using the Precomp Node | To Add a Note to the Node Graph
Note: Precomp nodes are unsupported in Nuke Assist. You cannot create a Precomp in
Nuke Assist; however, if one already exists in the script, you can view, but not modify its
output. To indicate this, Precomp nodes are outlined in red in the Node Graph, and their
controls are grayed out. See Nuke Products for more information.
Precomp nodes can be useful in at least two ways. Firstly, they can be used to reduce portions of the
node tree to pre-rendered image inputs. This speeds up render time, as Nuke only has to process the
single image input instead of all the nodes that were used to create it. Because the original nodes are
saved in a separate .nk script, you also maintain access to them and can adjust them later if
necessary.
Secondly, Precomp nodes enable a collaborative workflow. While one artist works on the main comp,
others can work on the sections that have been exported using the Precomp node. These sections
can be edited, versioned, and managed independent of the main comp. For example, say you have a
comp that involves a complex, multi-layered CG render. A 3D artist can produce this as a separate
script that the compositor finishing the shot then reads in using a Precomp node. This way, the 3D
artist can modify and re-render the CG element portion of the comp without having to share the main
comp with the compositor.
USER GUIDE
1102
Creating Precomp Nodes | To Create a Precomp Node
Note: If you don't select any nodes when you create a Precomp node, the Precomp Nodes
dialog is not displayed and the node is left blank. Using the file parameter in the Precomp
controls, you can then browse to an existing script to load into the Precomp node.
If you have several Write nodes in the existing script and want to control which of them is
used for the output of the Precomp node, you can select Other > Output to insert an
Output node after the Write node you want to use.
If the Precomp node cannot find an Output node in the script, it looks for a Write node and
sets Output node in the Precomp controls to the name of that node. The Output node field
can also be used later to override what is set as the Output node in the precomped script. To
do so, make sure you check enable. This check box allows you to toggle between the output
node chosen by default and the output node you specified in the Output node field.
3. Click the file browser icon next to Precomp script path, and browse to the directory where
you want to save the precomp .nk script. After the directory path, enter a name for the precomp
script, for example Precomp1_v01.nk. By default, the precomp script is saved next to the main
script. If the main script has not been saved, the precomp script is saved in the current directory.
4. Click the file browser icon next to Precomp render path, and browse to the directory where
you want to save the rendered output of the precomped nodes. After the directory path, enter a
USER GUIDE
1103
Creating Precomp Nodes | About the Hash Value
name for the rendered image, for example Precomp1_####.exr. If you like, you can also use
version numbers in the name, for example Precomp1_v01_####.exr.
Warning: We recommend rendering the image as an .exr because that way Nuke can write
the hash value of the incoming node tree into the rendered file. If the precomp script
changes so that the hashes won’t match, Nuke can then notify you, and you can update the
resulting image. If you use a file format other than .exr, you do not get this notification and
the rendered file is likely to become out of date. For more information on hash values, see
About the Hash Value.
5. From the Channels dropdown menu, select the channels you want to include in the rendered
output of the precomped nodes.
If you later need to adjust this selection, you can do so by setting the channels on the appropriate
Write node (by default, Write1) in the precomp .nk script.
6. From the Original nodes dropdown menu, select:
• add backdrop to create a backdrop behind the precomped nodes in the Node Graph.
• delete to delete the precomped nodes.
• no change to do nothing to the precomped nodes.
7. Click OK.
Nuke saves the selected nodes in the .nk script specified. This script also includes input and
output nodes, a Write node, and the current project settings.
In the Node Graph, the selected nodes are replaced with the Precomp node. Nuke opens the
properties of the Precomp node.
You can display the hash value at any point in the node tree by selecting a node in the Node Graph
and pressing I. The hash can be different at different points in the tree.
USER GUIDE
1104
Creating Precomp Nodes | Precomp Nodes and Project Settings
project settings so that they no longer match the main script’s settings, your changes do NOT have an
effect when the precomp script is loaded into the main script. If you want to change the project
settings, you should always do so in the main script rather than the precomp script.
USER GUIDE
1105
Using a Precomp Node to Speed-up Rendering | To Render a Precomp Node
When several Precomp nodes are used like this to replace sections in a large, complex node tree, the
render times may become significantly faster.
Note: When rendering the output of the precomp script, Nuke automatically selects the
Write node to use by first looking for an Output node. If it can't find any Output nodes, it
tries to find a Write node, and sets output node in the Precomp node controls to the name
of the Write node. If it can't find any Output or Write nodes, it produces an error.
USER GUIDE
1106
Using a Precomp Node to Speed-up Rendering | To Render a Precomp Node
At any point, the Precomp node properties can be used to override what is set as the Output
node in the precomped script. To do so, open the Precomp properties and the advanced
controls. In the output node field, enter the name of the Write node whose output you’d
like to use. Make sure you also check enable. This check box allows you to toggle between
the output node chosen by default and the output node you specified in the output node
field.
Tip: You can also use Write nodes in a similar manner and have their output read in from
the rendered file rather than calculated using the nodes upstream. For more information,
see Using a Write Node to Read in the Rendered Image.
USER GUIDE
1107
Precomp Revisions | To View and Edit a Precomp Script
Precomp Revisions
The following describes how to open, edit, and reload a precomp script.
USER GUIDE
1108
Collaborative Workflow Example | To Enable a Collaborative Workflow
Warning: Note that we recommend rendering precomp images as .exr files. This way, Nuke
writes the hash value of the incoming node tree into the rendered file. If the precomp script
changes so that the hashes won’t match, Nuke can notify the user who can then update the
resulting image. If you use a file format other than .exr, you don't get this notification and
the rendered file is likely to become out of date.
For more information on hash values, see Creating Precomp Nodes.
3. The compositor creates a Precomp node reading from the file cg_v01.nk, and continues working
on the main comp.
4. The lighting TD continues to revise the CG render and the comp, versioning up the Write node
and the precomp script .nk name. (See Precomp Revisions.)
When better results are achieved, the lighting TD notifies the compositor of the new and
improved version of the precomp script.
5. The compositor versions up the Precomp node to the new, improved version and reloads the
precomp script. (See Precomp Revisions.)
USER GUIDE
1109
Using the LiveGroup Node | To Enable a Collaborative Workflow
Just like Precomps, LiveGroups can store independent, open source .nk files, allowing you to save a
subset of the node tree as a separate .nk script, render the output of this saved script, and read the
rendered output back into the master comp as a single image input.
You can also use LiveGroups like Group nodes to nest multiple nodes inside a single node. The
original nodes are replaced with the LiveGroup node. When you create a LiveGroup node, its internal
structure is shown in a separate Node Graph tab.
USER GUIDE
1110
Using the LiveGroup Node | To Enable a Collaborative Workflow
LiveGroups can also be used as shared toolsets, similar to Gizmos, but without having to export
them. You can import a LiveGroup script into any other Nuke script, as long as Project Settings > is
live group is enabled and the script contains an Output node.
USER GUIDE
1111
Using the LiveGroup Node | To Enable a Collaborative Workflow
Collaborative Scripts
The LiveGroup node is different to Precomps and Groups in that it allows multiple artists to work on
the same script at the same time, drawing work from disparate scripts into the master script. A
simple example is shown below, where the Keying, CameraTrack, and VFX LiveGroups contain the
node trees for those operations in separate scripts.
In this example, the artists can continually improve the expression linked Camera and green-screen
key while the 3D artist works on the shot. See Collaborative Workflow Examples for more
information.
USER GUIDE
1112
Collaborative Workflow Examples | Creating a Master Script
Tip: You can give the LiveGroup node a more descriptive name to make things easier to
read.
3. Publish the LiveGroup to a network location accessible by the Keying artist. See Editing and
Publishing LiveGroups for more information. Published LiveGroups are locked and cannot be
edited unless you click Make Editable in the script.
4. Repeat steps 2 and 3 for the Tracking and 3D artists. An example is shown in the image.
USER GUIDE
1113
Collaborative Workflow Examples | Creating a Master Script
5. As the sub-script work is completed, you can then add the required nodes to complete the master
script.
For example, you can expression link the Camera data from the CameraTracking LiveGroup to a
Camera in the master script. See Managing LiveGroup Controls for more information.
6. As the sub-script artists version up their scripts, you can version up your LiveGroups in the master
script to read in the latest work without the need to re-render in the master script. See Versioning
LiveGroup Scripts for more information.
USER GUIDE
1114
Collaborative Workflow Examples | Combining Existing Scripts
You can also work the other way, with LiveInputs referencing LiveGroups, but there are a few
caveats to working this way. See Referencing a Master Script Using LiveInputs for more
information.
USER GUIDE
1115
Creating LiveGroups | Importing an Existing Script into a LiveGroup
Creating LiveGroups
You can create empty LiveGroups to read in existing .nk scripts or select a set of nodes in the Node
Graph and create a LiveGroup to contain those nodes, with the option to write them out to a new .nk
script.
Note: If you create and publish a LiveGroup Pythonically, you need to add xpos and ypos
values to the nodes in the Node Graph to position them correctly before you publish the
LiveGroup. See Nuke's Python Developer's Guide for more information.
USER GUIDE
1116
Creating LiveGroups | Adding Nodes to a LiveGroup
Note: Click Open in the LiveGroup's Properties to start a new Nuke session containing just
the LiveGroup's contents.
USER GUIDE
1117
Creating LiveGroups | Viewing Nodes Inside a LiveGroup
A new Node Graph tab opens containing the nested nodes. LiveGroups contain a LiveInput and
Output node by default, which points to the master script so that artists can collaborate without
depending on Read nodes in the LiveGroup.
See Referencing a Master Script Using LiveInputs below for more information.
USER GUIDE
1118
Creating LiveGroups | Referencing a Master Script Using LiveInputs
4. In the sub-script, enter the master script name in the file control and click Reload.
5. Select the LiveGroup you want to reference from the liveGroup dropdown.
USER GUIDE
1119
Managing LiveGroup Controls | Picking and Adding Controls
Note: You cannot add or remove controls when a LiveGroup is locked. To unlock a
LiveGroup, open the Properties panel LiveGroup tab and click Make Editable.
In Nuke's Properties panel, you can add controls using the Edit button or by right-clicking in the
panel and selecting Adding Knobs Manually. Drag-and-drop knobs significantly reduce the time spent
managing user knobs in a node's Properties panel when compared to the legacy Manage User
Knobs method within Nuke.
USER GUIDE
1120
Managing LiveGroup Controls | Expression Linking Controls
5. Click the edit button to disable drag-and-drop functionality when you've added the required
knobs.
You can also expression link User knobs just like any other knob in Nuke, but with LiveGroups, you
can expression link knobs from sub-scripts as well. See Expression Linking Controls for more
information.
USER GUIDE
1121
Managing LiveGroup Controls | Expression Linking Controls
3. Hold Ctrl/Cmd and drag the animation button from the LiveGroup to the node's control
properties.
4. Repeat the process for all the controls you want to link from the sub-script.
The Node Graph updates to show a green arrow representing the expression link and the
direction of information flow.
Now, whenever the CameraTrack LiveGroup is reloaded, any updates to the camera translation
and rotation are automatically applied in the master script.
USER GUIDE
1122
Editing and Publishing LiveGroups | Editing LiveGroups
The Editable state indicates that the LiveGroup is unlocked, but no edits
have been made to the LiveGroup.
The Edited state indicates that the LiveGroup has been edited in the current
Nuke session.
The Edited with Overrides state indicates that the LiveGroup has been
edited in the current Nuke session and that the edits are overriding controls
in the saved version of the LiveGroup.
The Published state indicates that the LiveGroup has been saved to the
location specified in the file control. LiveGroups in this state cannot be
edited, but you can still adjust any controls exposed in the Properties.
The Published with Overrides state indicates that the LiveGroup has been
saved to the location specified in the file control and that one or more
controls exposed in the Properties are overriding controls in the saved
version of the LiveGroup.
Editing LiveGroups
The Editable and Edited states apply to new LiveGroups and LiveGroups that you have edited in the
current Nuke session.
Note: You cannot add or remove controls when a LiveGroup is locked. To unlock a
LiveGroup, open the Properties panel LiveGroup tab and click Make Editable.
USER GUIDE
1123
Editing and Publishing LiveGroups | Versioning LiveGroup Scripts
A LiveGroup in the Edited state always writes its contents into the current script on save. If its file
control points to a sub-script, no changes are made in the sub-script until the LiveGroup is Published
to that location.
USER GUIDE
1124
Editing and Publishing LiveGroups | Publishing LiveGroups
OR
Press Alt+up arrow to increment the existing version number.
Note: Nuke displays a warning that the new version doesn't exist.
Publishing LiveGroups
The Published state only applies to LiveGroups that you have published to the location specified in
the file control.
LiveGroups in the Published state never write their contents into the current script on save. To make
changes to a Published LiveGroup, click Make Editable. It becomes Editable until you publish it
again by clicking the Publish button.
Note: If you create and publish a LiveGroup Pythonically, you need to add xpos and ypos
values to the nodes in the Node Graph to position them correctly before you publish the
LiveGroup. See Nuke's Python Developer's Guide for more information.
To Publish a LiveGroup:
1. Double-click the LiveGroup node to open its Properties.
2. Check that the file control points to the required location and version up the file path if required.
3. Click Publish.
The LiveGroup's state changes to Published in the Node Graph and the sub-script specified in the
file control is updated.
USER GUIDE
1125
Editing and Publishing LiveGroups | Publishing LiveGroups
Note: When you Publish a LiveGroup, the resulting .nk script retains the project settings
from the master script. The master script’s Project Settings are also used whenever the sub-
script is loaded into the master script.
If you open the LiveGroup script in a separate instance of Nuke and change its Project
Settings so that they no longer match the master script’s settings, your changes DO NOT
apply when the LiveGroup script is loaded into the master script. If you want to change the
Project Settings, you should always do so in the master script rather than the sub-script.
USER GUIDE
1126
Overriding LiveGroup Controls | Publishing LiveGroups
Note: Override controls are also indicated on the LiveGroup node in the Node Graph
In the example, the current color and channels controls are overrides. The double yellow chip
indicates that one of the controls on the top line is an override, in this case the current color control.
Click the yellow chip to list the overridden controls on that line.
USER GUIDE
1127
Overriding LiveGroup Controls | Publishing LiveGroups
Overrides can be reverted or applied to the LiveGroup controls, if the LiveGroup is in the editable
state.
The controls revert to the values stored in the LiveGroup and the overrides are removed.
USER GUIDE
1128
Overriding LiveGroup Controls | Publishing LiveGroups
The override values are applied to the LiveGroup's controls and the overrides are removed.
5. Click Publish to overwrite the LiveGroup on disk or save a new version of the LiveGroup.
USER GUIDE
1129
Configuring Nuke
These pages show visual effects supervisors how to configure Nuke for multiple artists, prior to the
start of a project. These are the common application settings discussed:
• Command line operations
• Environment variables
Note: If you copy and paste Python example scripts from this user guide into a text editor,
line indentations may not be preserved. If this is the case, correct the indentations manually.
USER GUIDE
1130
What Is a Terminal and How Do I Use One? |
The following describes how to open such a window for your operating system.
• Linux: Click the right mouse button over the desktop and select New Terminal (or Open Terminal)
from the right-click menu.
• Windows: From the Start menu, select All Programs > Accessories > Command Prompt.
• Mac: Click on the Terminal dock icon.
OR
Browse to the Applications > Utilities folder on your system hard drive, and double-click the
Terminal icon.
Inside the terminal or shell, you’ll see a command prompt, which looks similar to this:
Once you see the command prompt, you can enter commands to perform various tasks like listing
the files in a directory or running programs. Here are some specific examples:
• On Linux or Mac, type pwd and press Enter to view the path of the current directory. On Windows,
the equivalent command would be cd.
• On Linux or Mac, type ls and press Enter to view a list of files in the current directory. On Windows,
the equivalent command would be dir.
• On Linux, Mac, and Windows, type cd followed by a full path name and press Enter to change
directories.
USER GUIDE
1131
Command Line Operations | On Windows
On Windows
Note: If you're using a terminal emulator, follow the steps under Mac or Linux, substituting
the file paths as required.
Alternatively, you can set a doskey to point to Nuke and then you can launch Nuke from any
directory:
doskey nuke="C:\Program Files\Nuke11.3v5\Nuke11.3.exe"
On Mac
Open a command line prompt and change directory as follows:
cd /Applications/Nuke11.3v5/Nuke11.3v5.app/Contents/MacOS/
Alternatively, you can set an alias to point to Nuke and then you can launch Nuke from any directory.
The procedure for this depends on what your default shell is. To get the name of the shell you are
using, launch Terminal and enter echo $SHELL.
USER GUIDE
1132
Command Line Operations | On Linux
Tip: You can add aliases to a .cshrc or .bashrc file in your home directory so that they are
activated each time you open a shell. See your Systems Administrator for help setting this
up.
On Linux
Open a command line prompt and change directory as follows:
cd /usr/local/Nuke11.3v5/
Alternatively, you can set an alias to point to Nuke and then you can launch Nuke from any directory.
The procedure for this depends on what your default shell is. To get the name of the shell you are
using, launch Terminal and enter echo $SHELL.
USER GUIDE
1133
Command Line Operations | Using command line Flags
Tip: You can add aliases to a .cshrc or .bashrc file in your home directory so that they are
activated each time you open a shell. See your Systems Administrator for help setting this
up.
If you have an .nk script, you can render it on the command line without opening the GUI version.
Here’s an example that renders a hundred frames of a Nuke script:
nuke -F 1-100 -x myscript.nk
Note how you can use the -F switch on the command line to indicate a frame range, separating the
starting and ending frames with a dash.
Note: We recommend that you use the -F switch whenever defining a frame range on the
command line, which must precede the script name argument.
However, for backwards compatibility, you can also use the old syntax. To do so, place the
frame range at the end of the command and use a comma to separate the starting and
ending frames. For example:
nuke -x myscript.nk 1,100
To display a list of command line flags (switches) available to you, use the following command:
nuke -help
Switch/Flag Action
-c size (k, M, or G) Limit the cache memory usage, where size equals a number in bytes. You
can specify a different unit by appending k (kilobytes), M (megabytes), or G
(gigabytes) after size.
--cont Nuke attempts to render subsequent frames in the specified range after
USER GUIDE
1134
Command Line Operations | Using command line Flags
Switch/Flag Action
--crashhandling 1 Breakpad crash reporting allows you to submit crash dumps to Foundry in
the unlikely event of a crash. By default, crash reporting is enabled in GUI
--crashhandling 0 mode and disabled in terminal mode.
-d <x server name> This allows Nuke to be viewed on one machine while run on another.
(Linux only and requires some setting up to allow remote access to the X
Server on the target machine).
-f Open Nuke script at full resolution. Scripts that have been saved
displaying proxy images can be opened to show the full resolution image
using this flag. See also -p.
-F Frame numbers to execute the script for. All -F arguments must precede
the script name argument. Here are some examples:
• -F 3 indicates frame 3.
• -F 1-10 indicates frames 1, 2, 3, 4, 5, 6, 7, 8, 9, and 10.
• -F 1-10x2 indicates frames 1, 3, 5, 7, and 9.
--gpu ARG When set, enables GPU usage in terminal mode with an optional GPU
index argument, which defaults to 0. Use --gpulist to display the selectable
GPUs.
USER GUIDE
1135
Command Line Operations | Using command line Flags
Switch/Flag Action
--gpulist Prints the selectable GPUs and their corresponding index for use with the
--gpu ARG option.
-i Use an interactive (nuke_i) RLM license key. This flag is used in conjunction
with background rendering scripts using -x. By default -x uses a nuke_r
license key, but -xi background renders using a nuke_i license key.
-l New read or write nodes have the colorspace set to linear rather than
default.
--multigpu If have multiple GPUs of the same type installed, you can enable this
preference to share work between the available GPUs for extra processing
speed. This is a global preference and is applied to all GPU enabled nodes.
See Windows, Mac OS X and macOS, or Linux for more information on the
GPUs Nuke supports.
--nocrashprompt When crash handling is enabled in GUI mode, submit crash reports
automatically without displaying a crash reporter dialog.
USER GUIDE
1136
Command Line Operations | Using command line Flags
Switch/Flag Action
-p Open Nuke script at proxy resolution. Scripts that have been saved
displaying full resolution images can be opened to show the proxy
resolution image using this flag. See also -f.
-P Measure your nodes’ performance metrics and show them in the Node
Graph. See Using Performance Timing for more information.
--pause Initial Viewers in the script specified on the command line should be
paused.
-Pf <filename> Measure your nodes’ performance metrics and write them to an XML file
at render time. See Using Performance Timing for more information.
--nc Runs Nuke in Nuke Non-commercial mode. See About Nuke Non-
commercial for more information.
--priority p Runs Nuke with a different priority, you can choose from:
• high (only available to the super user on Linux/OS X)
• medium
• low
--python-no-root- Prevents the application of knob defaults to the root node when executing
knobdefaults a Python script.
--remap Allows you to remap file paths in order to easily share Nuke projects
across different operating systems. This is the command line equivalent of
setting the Path Remaps control in the Preferences dialog.
USER GUIDE
1137
Command Line Operations | Using command line Flags
Switch/Flag Action
The --remap flag gives a warning (but does not error) if you give it no
paths. For example:
Note: Note that the mappings are only applied to the Nuke
session that is being started. They do not affect the
Preferences.nk file used by the GUI.
-s # Sets the stack size per thread, in bytes. The default value is 16777216 (16
MB). The smallest allowed value is 1048576 (1 MB).
None of Nuke's default nodes require more than the default memory
stack value, but if you have written a custom node that requests a large
stack from the memory buffer, increasing the stack size can prevent stack
overflow errors.
--safe Running Nuke in safe mode stops the following loading at startup:
• Any scripts or plug-ins in ~/.nuke
• Any scripts or plug-ins in $NUKE_PATH or %NUKE_PATH%
• Any OFX plug-in (including FurnaceCore)
--sro Forces Nuke to obey the render order of Write nodes so that Read nodes
can use files created by earlier Write nodes.
USER GUIDE
1138
Command Line Operations | Using command line Flags
Switch/Flag Action
-t Terminal mode (without GUI). This allows you to enter Python commands
without launching the GUI. A >>> command prompt is displayed during
this mode. Enter quit() to exit this mode and return to the shell prompt.
This mode uses a nuke_r license key by default, but you can get it to use a
nuke_i key by using the -ti flag combo.
--tg Terminal Mode. This also starts a QApplication so that Pyside/PyQt can be
used. This mode uses an interactive license, and on Linux requires an X
Windows display session.
-V level Verbose mode. In the terminal, you’ll see explicit commands as each
action is performed in Nuke. Specify the level to print more in the
Terminal, select from:
• 0 (not verbose)
• 1 (outputs Nuke script load and save)
• 2 (outputs loading plug-ins, Python, Tcl, Nuke scripts, progress and
buffer reports)
--view v Only execute the specified views. For multiple views, use a comma
separated list:
left,right
-x eXecute mode. Takes a Nuke script and renders all active Write nodes.
This mode uses a nuke_r license key. To use a nuke_i license key, use -xi.
This is the syntax:
USER GUIDE
1139
Command Line Operations | General syntax
Switch/Flag Action
-- End switches, allowing script to start with a dash or be just - to read from
stdin
General syntax
This is the general syntax for using these options when launching Nuke at the command prompt:
nuke <switches> <script> <argv> <ranges>
<switches> - modifies the behavior of Nuke when run from the command line. A list of switches is
given in the table above. These are sometimes called flags.
<argv> - an optional argument that can be used in Nuke. See the example below.
Examples
Let’s consider some practical examples.
Crazy I know, but I’ve called my script, -myscript.nk, and the hyphen at the start of the filename has
confused Nuke. To get round this if you don’t want to rename your file use the double hyphen syntax:
nuke -- -myscript.nk
USER GUIDE
1140
Command Line Operations | Examples
To display an image:
nuke -v polarbear.tif
In a script with two write nodes called WriteBlur and WriteInvert this command just renders frames 1
to 20 from the WriteBlur node:
nuke -X WriteBlur myscript.nk 1-20
Using [argv 0]
Let’s use [argv] to vary the output file name. Launch the GUI version of Nuke and create a node tree
that puts a checker into a Write node. Open the write node property panel by double clicking on it
and in the file text field enter this filename:
[argv 0].####.tif
Save the script and quit Nuke. On the command line type:
nuke -x myscript.nk mychecker 1-5
You can add another variable to control the output image file type. The file text field needs this:
[argv 0].####.[argv 1]
USER GUIDE
1141
Command Line Operations | Examples
The <argv> string can be any [argv n] expression to provide variable arguments to the script. These
must be placed between the <script> and the <ranges> on the command line. You can include multiple
expressions, but each must begin with a non-numeric character to avoid confusion with the frame
range control. For more information on expressions, see Expressions.
It’s a bit tedious typing these commands in line by line. So let’s put them in a text file called
imageconvert.py and get Nuke to execute the Python script.
cat imageconvert.py
r = nuke.nodes.Read(file = ”myimage.####.tif”)
w = nuke.nodes.Write(file = ”myimage.####.jpg”)
w.setInput( 0, r )
nuke.execute(“Write1”, 1,5)
nuke -t < imageconvert.py
You can also pass in the Python script as a command line parameter. Doing this allows you to enter
additional parameters after the script name to pass into your script. When you do so, note that
sys.argv[0] is the name of the Python script being executed, and argv[1:] are the other parameters you
passed in. One example of this is below. See the standard Python module optparse for other ways to
parse parameters.
cat imageconvertwithargs.py
import sys
r = nuke.nodes.Read(file = sys.argv[1])
w = nuke.nodes.Write(file = sys.argv[2])
w.setInput(0, r)
nuke.execute("Write1", 1, 5)
nuke -t imageconvertwithargs.py myimage.####.tif myimage.####.jpg
USER GUIDE
1142
Environment Variables | Setting Environment Variables
Environment Variables
Environment variables are named variables used to store a value, such as a specific file path. They can
be used to influence Nuke’s behavior. For example, Nuke uses the information stored in them to
define where to place certain files.
On Windows
1. Right-click on My Computer and select Properties.
2. Go to the Advanced tab.
3. Click the Environment Variables button. The Environment Variables dialog opens.
4. Click the New button under either User variables or System variables, depending on whether
you want to set the variable for the current user or all users. To set environment variables for all
users, you need to have administrator privileges.
5. In the Variable name field, enter the name of the environment variable you want to set. For a list
of the environment variables that Nuke understands, see Nuke Environment Variables.
6. In the Variable value field, enter the value for the variable. The value can be a directory path, for
example.
7. Click OK.
Note: When editing existing system variables, or adding or deleting either user or system
variables, you may need to log off and on again before your changes to environment
variables take effect.
On Mac
On Mac, you can use the launchd.conf file to set environment variables. You may need to create the
launchd.conf file if it doesn’t already exist in the /etc/ directory.
USER GUIDE
1143
Environment Variables | Setting Environment Variables
Note: If you only need to set an environment variable for a single session, or you don't want
to use the Mac launchd.conf file, you can also set variables using the method described in
the On Linux section.
Environment variables set using the launchd.conf file are read both when Nuke is launched from the
Nuke icon and when it’s launched from the Terminal.
1. Open a Terminal window.
2. Create the /etc/launchd.conf file, if it doesn't already exist, and then add the environment
variable(s) and value(s) to the file using the following format:
setenv <VARIABLE> <VALUE>
For example, to set two environment variables, NUKE_PATH and OFX_PLUGIN_PATH, to point to
alternate locations:
setenv NUKE_PATH /SharedDisk/Nuke/
setenv OFX_PLUGIN_PATH /SharedDisk/OFX
For a list of the environment variables that Nuke understands, see Nuke Environment Variables.
Tip: A handy command line tool for creating and editing files in the Terminal is nano. To
start nano with the correct permissions, enter:
sudo nano /etc/launchd.conf
On Linux
1. The procedure for setting an environment variable depends on what your default shell is. To get
the name of the shell you are using, launch a shell and enter echo $SHELL.
2. Depending on the output of the previous step, do one of the following:
• If your shell is a csh or tcsh shell, add the following command to the .cshrc or .tcshrc file in your
home directory: setenv VARIABLE value. Replace VARIABLE with the name of the environment
variable and value with the value you want to give it, for example setenv NUKE_PATH
/SharedDisk/Nuke.
• If your shell is a bash or ksh shell, add the following command to the .bashrc or .kshrc file in
your home directory: export VARIABLE=value. Replace VARIABLE with the name of the
environment variable and value with the value you want to give it, for example export NUKE_
PATH=/SharedDisk/Nuke.
USER GUIDE
1144
Environment Variables | To Check if an Environment Variable Exists
For a list of the environment variables that Nuke understands, see Nuke Environment Variables.
getenv <VARIABLE>
OR
• Open the Script Editor and enter:
import os
print os.environ["VARIABLE"]
In both cases, VARIABLE should be replaced by the environment variable you're interested in. For
example, NUKE_TEMP_DIR on Windows returns:
C:/Users/<current_user>/AppData/Local/Temp/nuke
If the variable is set, its value is displayed in the Terminal or shell window.
On Windows
1. Select Start > All Programs > Accessories > Command Prompt.
USER GUIDE
1145
Environment Variables | To Display a List of Set Environment Variables
A list of all the environment variables that are set is displayed in the command window.
On Mac or Linux
1. Launch Terminal or a shell.
2. Enter printenv.
A list of all the environment variables that are set is displayed in the Terminal or shell window.
USER GUIDE
1146
Nuke Environment Variables | To Display a List of Set Environment Variables
FN_CRASH_DUMP_PATH Allows you to specify where Issue Reporter dumps are saved by default.
FN_NUKE_DISABLE_GPU_ This variable disables Nuke's CUDA and OpenCL capabilities. When
ACCELERATION enabled, any GPUs installed locally are disabled and cannot be selected
from Preferences > Performance > Hardware > default blink device
dropdown. Any GPU accelerated nodes, such as Kronos and Denoise,
default to processing on the CPU.
USER GUIDE
1147
Nuke Environment Variables | To Display a List of Set Environment Variables
Hernández\FoundryLicensing\
foundry_LICENSE The location of the Nuke RLM license file, if the following
recommended location is not used:
On Windows:
drive letter:\Program Files\The Foundry\RLM
FOUNDRY_LICENSE_FILE The location of the Nuke FLEXlm license file, if the following
recommended location is not used:
On Windows:
drive letter:\Program Files\The Foundry\FLEXlm
FOUNDRY_LOG_FILE This variable specifies the location of Nuke Studio’s logfile. If you don’t
specify a logfile, all output is to screen.
FOUNDRY_LOG_LEVEL This variable sets the level of logging Nuke Studio produces during
USER GUIDE
1148
Nuke Environment Variables | To Display a List of Set Environment Variables
FRAMESERVER_LOG_DIR This variable is used to specify a different location for the Frame Server
to write log files to, if you'd like to keep them separate from the default
NUKE_TEMP_DIR.
HIERO_DISABLE_ Set this variable to stop Nuke Studio caching thumbnails for improved
THUMBNAILS_CACHE access once loaded.
Note: This variable does not clear the cache, you must
remove cached files manually.
USER GUIDE
1149
Nuke Environment Variables | To Display a List of Set Environment Variables
NUKE_AJA_CHANNEL AJA cards take 3G level signal (mostly for 12-bit 444 RGB) and combine it
into a single 3G-B (B denotes B level, hence the 3G-B) stream through
SDI1 by default. Use these environment variables to customize this
output behavior:
• NUKE_AJA_CHANNEL - set this variable to 2, 3, or 4 to output a single
stream through SDI2, SDI3, or SDI4.
• NUKE_AJA_DUALOUTPUT - set this environment variable to 1 to force
the card to separate the single 3G stream into two 1.5G streams
through SDI1 and SDI2.
NUKE_ALLOW_GIZMO_ Nuke does not allow you to Overwrite and Save as gizmos by default,
SAVING without copying the gizmo to a Group. Setting this environment
variable to 1 enables this behavior, so artists don't need to copy a
gizmo before editing it.
NUKE_DEBUG_ When enabled, Comp Viewer image cache data is printed to the
USER GUIDE
1150
Nuke Environment Variables | To Display a List of Set Environment Variables
NUKE_DEBUG_MEMORY When working on large images, Nuke may need to free up memory
during rendering. When this happens and NUKE_DEBUG_MEMORY is
set to 1, Nuke prints the following information to the console:
If this variable is not set, you cannot see the debug memory messages.
Note that here, KB, MB, GB, and TB mean units of 1000. For example,
1MB means 1,000,000 bytes.
NUKE_DISK_CACHE The location where Nuke saves all recent images displayed in the
Viewer. Ideally, this should be a local disk with the fastest access time
available.
NUKE_DISK_CACHE_GB The maximum size the disk cache can reach (in gigabytes).
NUKE_EXR_TEMP_DIR On Linux, this is the location Nuke uses for temporary files while
reading PIZ-compressed .exr files. This environment variable is only
relevant on Linux.
NUKE_FONT_PATH The location that Nuke checks for available font files when the Text
node properties panel is opened.
NUKE_IGNORE_ROTO_ This variable disables the warning dialog displayed when you open
INCOMPATIBILITY scripts containing pre-Nuke 8 RotoPaint nodes.
USER GUIDE
1151
Nuke Environment Variables | To Display a List of Set Environment Variables
NUKE_LEGACY_ This variable disables the new channel sorting behavior, where the
CHANNEL_SORTING RGBA layer is sorted first. Enabling this variable causes Nuke to sort
channels alphabetically.
NUKE_MOV64READER_ Set this variable to 0 to disable Nuke's 64-bit mov decoding and fall
ENABLE back to 32-bit decoding.
NUKE_NO_CRASH_ When crash handling is enabled in GUI mode, this allows you to control
PROMPT whether reports are automatically submitted or not:
NUKE_PATH The location where files related to Nuke customizations are stored. For
more information, see Loading Gizmos, NDK Plug-ins, and Python and
Tcl Scripts.
NUKE_TEMP_DIR The location where Nuke saves any temporary files that do not have a
particular place defined for them.
You can find the current location of Nuke's temporary directory from
within Nuke by pressing X on your keyboard, when the focus is on the
Node Graph, and then running the following TCL command:
getenv NUKE_TEMP_DIR
NUKE_ When enabled, data from Nuke's window manager is printed to the
WINDOWMANAGER_ command line or Terminal.
USER GUIDE
1152
Nuke Environment Variables | To Display a List of Set Environment Variables
DEBUG
OCIO Set this variable to the location of your OCIO configuration file for color
conversion.
Note: If you plan to use the OCIO config file specified in the
Preferences, ensure that the Preferences > Project Defaults
> Color Management > Export > use OCIO nodes when
exportingto a Comp checkbox is enabled.
OFX_PLUGIN_PATH The location where Nuke looks for OFX plug-ins. For more information,
see Loading OFX Plug-ins.
QT_PLUGIN_PATH The location where Nuke looks for custom Qt libraries if you don't want
to use those shipped with Nuke. Setting this environment variable adds
the custom path to Nuke's Qt library paths.
TIMELINE_DISABLE_PBO_ When enabled, the performance benefit from using pixel buffer objects
UPLOADS (PBO) for texture uploads from RAM to the GPU is disabled.
USER GUIDE
1153
Loading Gizmos, NDK Plug-ins, and Python and Tcl Scripts | To Display a List of Set Environment
Warning: It’s worth saying that you should edit Python files with care as mistakes could stop
Nuke from running.
For more information on Python in Nuke, see The Script Editor and Python or the Python
Developer’s Guide (Help > Documentation).
To make your customizations available to all versions of a particular release, place them in the
following directories:
• Linux: /usr/local/Nuke/<version>/plugins/
• Mac: /Library/Application Support/Nuke/<version>/plugins/
• Windows: C:\Program Files\Common Files\Nuke\<version>\plugins\
If you want Nuke to look for plug-ins somewhere else rather than in these default locations, you can
also define a common plug-in path yourself. Thus, by defining the Nuke plug-in path, you can assign
yourself a common shared directory from which to control Nuke for multiple artists. See Defining the
Nuke Plug-in Path for more information.
Nuke also looks in specific sub-directories of your home directory and the Nuke application directory
in the order shown by platform:
Note: If you place customizations in the application directories, they'll only be available for
that release.
• Linux:
/usr/local/Nuke11.3v5/plugins
/usr/local/Nuke11.3v5/plugins/nukescripts
/home/login name/.nuke
• Mac:
USER GUIDE
1154
Loading Gizmos, NDK Plug-ins, and Python and Tcl Scripts | To Display a List of Set Environment
/Applications/Nuke11.3v5/Nuke11.3v5.app/Contents/MacOS/plugins
/Applications/Nuke11.3v5/plugins/nukescripts
/Users/login name/.nuke
• Windows:
~\.nuke
Note: On Windows, the .nuke folder can be found under the directory pointed to by the
HOME environment variable. If this variable is not set (which is common), the .nuke directory
will be under the folder specified by the USERPROFILE environment variable - which is
generally of the form drive letter:\Documents and Settings\login name\ or drive
letter:\Users\login name\
To find out if the HOME and USERPROFILE environment variables are set and where they are
pointing at, enter %HOME% or %USERPROFILE% into the address bar in Windows Explorer. If
the environment variable is set, the folder it’s pointing at is opened. If it’s not set, you get an
error.
In addition to setting up your Python/plugin environment using the init.py and menu.py files, Nuke
Studio also allows you to run Python code automatically on start-up. The default location for this
Python code is:
<STARTUP_PYTHON_PATH>/Python/Startup
Any Python .py modules or packages containing __init__.py found within the /Python/Startup directory
is imported when the application launches, and added to the hiero.plugins namespace.
USER GUIDE
1155
Defining the Nuke Plug-in Path | To Display a List of Set Environment Variables
Loading a plug-in (plugin_find()) searches the NUKE_PATH until the first plug-in is located, ensuring
that only the most local plug-in is loaded. For example if the NUKE_PATH variable contains:
project_dir:studio_dir:company_dir
The path is searched in the following order until the first plug-in is located:
• ~/.nuke
• project_dir
• studio_dir
• company_dir
• nuke_dir
However, the NUKE_PATH environment variable is parsed in reverse order when loading init.py and
menu.py and all discovered copies are used. This allows localized settings to override more global
ones. So, with the directory hierarchy above, init.py scripts would execute as follows:
• nuke_dir/init.py
• company_dir/init.py
• studio_dir/init.py
• project_dir/init.py
• ~/.nuke/init.py
USER GUIDE
1156
Loading OFX Plug-ins | To Display a List of Set Environment Variables
/usr/OFX/Nuke
/usr/OFX/Plugins
• Windows:
C:\Program Files\Common Files\OFX\Nuke (or, when using 64-bit Nuke on 64-bit Windows,
\Program Files (x86)\Common Files\OFX\Nuke)
C:\Program Files\Common Files\OFX\Plugins (or, when using 64-bit Nuke on 64-bit Windows,
\Program Files (x86)\Common Files\OFX\Plugins)
• Mac:
/Library/OFX/Nuke
/Library/OFX/Plugins
If you want Nuke to look for OFX plug-ins somewhere else you can. Just define the environment
variable OFX_PLUGIN_PATH to point to the new directory.
USER GUIDE
1157
Defining Common Favorite Directories | To Define a Common Set of Favorite Directories
Example 1
The following entry would create a favorite called DisasterFlickStore which appears on all
File Browsers invoked from Read nodes and which points to the /job/DisasterFlick/img directory.
USER GUIDE
1158
Defining Common Favorite Directories | To Define a Common Set of Favorite Directories
Example 2
The following entry would create a favorite called Test. It appears on all File Browsers invoked from
Read nodes or by selecting File > Open Comp and points to the /job/Test directory. The entry also
defines Test Images and Scripts as the tool tip for the favorite directory.
nuke.addFavoriteDir ('Test', '/job/Test', nuke.IMAGE | nuke.SCRIPT,
tooltip='Test images and Scripts')
USER GUIDE
1159
Defining Common Favorite Directories | To Define a Common Set of Favorite Directories
USER GUIDE
1160
Handling File Paths Cross Platform | To Define a Common Set of Favorite Directories
For example, to ensure file paths created on Windows also work on Linux and vice versa, you can do
the following:
1. Create a file called init.py in your plug-in path directory if one doesn’t already exist.
For more information on plug-in path directories, see Loading Gizmos, NDK Plug-ins, and Python
and Tcl Scripts.
2. Open the init.py file in a text editor and add an entry in the following format:
import platform
def filenameFix(filename):
if platform.system() in ("Windows", "Microsoft"):
return filename.replace( "/SharedDisk/", "p:\\" )
return filename.replace( "p:\\", "/SharedDisk/" )
This way, the Windows file paths (beginning with p:\ in the above example) are replaced with the
Linux file paths (beginning with /SharedDisk/) under the hood whenever a Nuke script is used on
Linux. Otherwise, the Windows file paths are used.
Note that the file paths displayed in the graphical user interface (GUI) do not change. If you are
using p:\ in a node control, this is still displayed as p:\. However, on Linux, Nuke interprets p:\ as
/SharedDisk/.
USER GUIDE
1161
Setting Default Values for Controls | To Define a Common Set of Favorite Directories
To specify file format specific defaults, use the class name, followed by the file format extension and
the control name, all separated by periods. For example:
nuke.knobDefault("Read.exr.compression", "2")
Maybe you want the last frame value of the frame range controls in the Project Settings to default to
frame 200. To do this, use the following statement:
nuke.knobDefault("Root.last_frame", "200")
Or you might want to set a different default font style in the Text node:
nuke.knobDefault("Text2.font", "{ Arial : Regular : arial.ttf : 0 }")
USER GUIDE
1162
Defining Custom Menus and Toolbars | To Define a Common Set of Favorite Directories
For example, to add a new menu in the default Toolbar with an option to trigger a gizmo called
MyGizmo, you can do the following:
1. In your home directory, create a directory called .nuke (if it doesn't exist already). For more
information on this directory, see Loading Gizmos, NDK Plug-ins, and Python and Tcl Scripts.
2. In the .nuke directory, create a file called menu.py if one does not already exist.
3. In a text editor, modify the file menu.py, adding the lines:
toolbar = nuke.toolbar("Nodes")
toolbar.addCommand( "Test/MyGizmo", "nuke.createNode('MyGizmo')")
This adds a menu labeled "Test" to the default Nodes Toolbar with an item labeled "MyGizmo"
that creates an instance of the node MyGizmo.
Note: Node Class() names occasionally change between major releases, such as Nuke 7 to
Nuke 8. While these changes do not affect legacy scripts, you may not get the results you
were expecting if a node class has been modified. The toolbars.py file, used to create Nuke's
node toolbar, contains all the current node class names and is located in <install_
directory>/plugins/nukescripts/ for reference.
As an example, between Nuke 7 and Nuke 8, the Text node Class() changed from Text to
Text2. In the toolbars.py file for the two releases, the entries for the Text node appear as
follows:
It's also possible to add items to other menus in Nuke and even create your own toolbars. The
following sections cover these possibilities in detail.
USER GUIDE
1163
Defining Custom Menus and Toolbars | To Add a Toolbar
To Add a Toolbar
To add a toolbar:
1. Create a file called menu.py in your plug-in path directory if one doesn’t already exist.
For more information on plug-in path directories, see Loading Gizmos, NDK Plug-ins, and Python
and Tcl Scripts.
2. Open the menu.py file in a text editor and add an entry in the following format:
t=nuke.toolbar("ToolbarName")
t.addCommand("NewMenu", "PythonCode", "Shortcut", icon="IconName")
• Replace ToolbarName with the name you want to give to the toolbar. This name appears in the
content menus under Windows > Custom and above the toolbar on the title tab.
• Replace NewMenu with the name of the menu you want to add to the toolbar.
• Replace PythonCode with relevant Python code (usually nuke.createNode), and, if necessary,
use the name of the gizmo, generic Python script, or plug-in file you want the menu option to
invoke. For ease of use, place all such referenced files inside the plug-in path directory.
If you like, you can also replace PythonCode by a Python callable.
• Replace Shortcut with a keyboard shortcut, for example Alt+A, Ctrl/Cmd+A, or Shift+A. The
letter a alone represents lower-case a. F1 represents function key 1. You can combine the Shift,
Ctrl/Cmd, and Alt keys as necessary. If you like, you can also use #A to represent Alt+A, ^A to
represent Ctrl/Cmd+A, and +A to represent Shift+A.
• Replace IconName with the name of the .png (or .xpm) image you wish to use as the menu
icon. This image must be stored in your Nuke plug-in path directory. It should be 24 x 24 pixels
in size.
3. In the above entry, you can also add the following optional arguments in the parenthesis after
"ToolbarName":
• True. This is the default. When True, nuke.toolbar() calls the toolbar with the given name or
creates it if it does not exist. For example, t=nuke.toolbar("Extras", True) would either call an
existing toolbar called Extras or create one if it did not already exist.
• False. When False, the toolbar is not created if it does not already exist and nuke.toolbar()
returns None. You can use this to find out if a toolbar with a given name already exists. For
example, t=nuke.toolbar("Extras", False) would either call an existing toolbar called Extras or
return None if such a toolbar did not exist.
The new toolbar does not appear by default, but is listed under Custom in the content menus. From
there, you can insert it in any pane. Once you are happy with the new toolbar and its position, save
the layout (select Workspace > Save Workspace). Thereafter, the toolbar appears whenever Nuke is
launched in the saved workspace.
USER GUIDE
1164
Defining Custom Menus and Toolbars | To Define a Menu or Toolbar Option
You can build several toolbars for different tasks and save layouts that have one or another present
for easy context switching.
Example 1
The following entry creates a new toolbar called Extras. The toolbar includes an option called Create
VectorBlur that creates a VectorBlur node. The entry also defines v as the keyboard shortcut for the
VectorBlur node.
t=nuke.toolbar("Extras")
t.addCommand("Create VectorBlur", "nuke.createNode ('VectorBlur')", "v")
Example 2
In this example, we add an option called Autoplace to the toolbar created in example 1. This option
places the selected nodes neatly one after another, as illustrated in the following images:
The following entry adds the Autoplace option. It also defines Alt+A as the keyboard shortcut for this
option.
def _autoplace():
n = nuke.selectedNodes()
for i in n:
nuke.autoplace(i)
t=nuke.toolbar("Extras")
t.addCommand("Auto&place", "_autoplace()", "Alt+a")
USER GUIDE
1165
Defining Custom Menus and Toolbars | To Define a Menu or Toolbar Option
1. If you haven’t already done so, create a file called menu.py in your plug-in path directory. For
more information on plug-in path directories, see Loading Gizmos, NDK Plug-ins, and Python and
Tcl Scripts.
2. Open the menu.py file in a text editor and add an entry in the following format:
menubar=nuke.menu("MenuType")
m=menubar.addMenu("&NewMenu")
m.addCommand("&NewItem", "PythonCode", "Shortcut", icon="IconName",
index=#)
• Replace MenuType with the type of menu or toolbar you want to add an item to:
Nuke adds an item to the application main menu bar.
Animation adds an item to the menu on the Animation button of all panels, and to the
right-click menu of the Curve editor.
Properties adds an item to the right-click menus of properties panels.
Node Graph adds an item to the right-click menu of the Node Graph.
Nodes adds an item to the default Toolbar.
Viewer adds an item to the right-click menu of the Viewer.
Pane adds an item to the content menus where it appears under Custom.
• Replace NewMenu with the menu name. Using an existing menu name appends any new
options to the existing menu. You can also add options to the default Menu bar and Toolbar.
• Replace NewItem with the underlying item you want to add to the menu. You may precede any
character with an & in order to flag it as keyboard shortcut trigger.
• Replace PythonCode with relevant Python code (usually nuke.createNode) and, if necessary,
use the name of the gizmo, generic Python script, or plug-in file you want the menu option to
invoke. For ease of use, place all such referenced files inside the plug-in path directory.
For more information on plug-in path directories, see Loading Gizmos, NDK Plug-ins, and
Python and Tcl Scripts.
If you like, you can also replace PythonCode by a Python callable. This has the advantage that
you get informed about errors in your script on start-up instead of when the menu item is
invoked. For an example of using a lambda function, see Example 3 on page 1168.
• Replace Shortcut with a keyboard shortcut, for example Alt+A, Ctrl/Cmd+A, or Shift+A. The
letter a alone represents lower-case a. F1 represents function key 1. You can combine the Shift,
Ctrl/Cmd, and Alt keys as necessary. If you like, you can also use #A to represent Alt+A, ^A to
represent Ctrl/Cmd+A, and +A to represent Shift+A.
USER GUIDE
1166
Defining Custom Menus and Toolbars | To Define a Menu or Toolbar Option
Note: By assigning a keyboard shortcut, you can overwrite existing shortcuts. For example,
if you assign the shortcut Ctrl/Cmd+O to a new menu item, it is no longer used for it’s
default purpose, which is opening a file. However, shortcuts are only overwritten in the main
menu bar, the Toolbar, any user-created toolbars, and the menu you are adding the new
menu item to. This means you can add a shortcut into the Node Graph, for example,
without resetting the same shortcut in the Viewer. However, you cannot add a shortcut into
the Node Graph without resetting the same shortcut in the main menu bar or the Toolbar.
• Replace IconName with the name of the .png (or .xpm) image you wish to use as the menu
icon. This image must be stored in your Nuke plug-in path directory. It should be 24 x 24 pixels
in size.
• Replace # with a number that represents the position of the item in the menu or toolbar. If you
do not use an index keyword, the item is added in the end of the menu or toolbar.
Tip: You can also put the menu name in the addCommand call, like this:
nuke.menu("MenuType").addCommand("NewMenu/NewItem", "PythonCode("name")")
Example 1
The following entry creates a new menu and option called Custom > Cue Render in the menu bar. It
inserts a gizmo called “cue_render.” The entry also defines Ctrl+R as the keyboard shortcut for the
gizmo.
menubar=nuke.menu("Nuke")
m=menubar.addMenu("&Custom")
m.addCommand("&Cue Render", "nuke.createNode('cue_render')", "Ctrl+R")
Example 2
For information on how to create a new menu in the default Toolbar with a menu item that triggers a
gizmo, see the example under Defining Custom Menus and Toolbars.
USER GUIDE
1167
Defining Custom Menus and Toolbars | To Define a Menu or Toolbar Option
Example 3
The following entry creates a menu and options called Custom > Filters > Blur in the menu bar.
Selecting Blur inserts the Blur node.
menubar=nuke.menu("Nuke")
m=menubar.addMenu("&Custom")
m.addCommand("Filters/Blur", "nuke.createNode(\"Blur\")" )
USER GUIDE
1168
Defining Common Image Formats | Defining an Image Format
Example
The following entry would create a new format called full_aperature_anamorphic with a resolution
of 2048 by 1556 and a pixel aspect ratio of 2.0. (As the image corners are not explicitly defined, the
image covers the entirety of the format area.)
nuke.addFormat (" 2048 1556 2.0 full_aperture_anamorphic ")
USER GUIDE
1169
Creating and Accessing Gizmos | Creating Gizmos
A gizmo is a Group Node that you create and save in a separate .gizmo file in your Nuke plug-in
folder. Nuke scripts can use this gizmo just like any other node type. Saved scripts only contain the
name and control settings for the gizmo; the definition is in the gizmo file and it is read at the same
time the script is loaded into Nuke. Thus, you can alter the implementation of the gizmo and change
all the scripts that are using it.
Note: Unlike other nodes, gizmos cannot be cloned. For more information, see Working
with Nodes.
Tip: You can register gizmos as soft effects in Nuke's Timeline environment. See Soft Effects
for more information.
Creating Gizmos
A gizmo is a Group Node that you create and save in a separate .gizmo file in your Nuke plug-in
folder. Nuke scripts can use this gizmo just like any other node type.
Using Nuke’s Export gizmo command, you can export nodes inside a Group and explicitly control
which controls may be edited by the artists to ensure the processes within the gizmo are consistently
applied.
To create a gizmo:
1. Select the nodes you want to include in the gizmo.
2. Select Other > Group from the Toolbar (or press Ctrl/Cmd+G) to group the nodes.
3. You may want to rename the group by entering a new name in the Group properties panel title
field. This step is optional, and has no effect on the saved gizmo. However, it is often a good idea
to give the Group the same name you intend to use for the gizmo.
USER GUIDE
1170
Creating and Accessing Gizmos | Creating Gizmos
4. To expose which controls the artists can adjust, see Managing Gizmo Controls.
5. Click the export as gizmo button.
6. In the file browser that appears, click Home. Type .nuke/ after the path displayed at the bottom
of the file browser.
7. Enter a name after the path, and append a .gizmo extension after the name. This is the name of
the command that is written to any saved script that’s using the gizmo. It’s a good idea, and
common practice, to begin the name with a capital letter, because Nuke uses this as an indication
that the command is a node or a gizmo.
8. Click Save.
See Accessing Gizmos in Nuke for information on how to access your gizmo in Nuke.
Note: Nuke does not allow you to Overwrite and Save as gizmos by default, without
copying the gizmo to a Group. If you want to allow this behavior, so artists don't need to
copy a gizmo before editing it, set the NUKE_ALLOW_GIZMO_SAVING environment variable
to 1. See Environment Variables for more information.
USER GUIDE
1171
Managing Gizmo Controls | Adding Knobs Using Drag-and-Drop
In Nuke's Properties panel, you can add controls using the Adding Knobs Using Drag-and-Drop edit
button or by right-clicking in the panel and selecting Adding Knobs Manually. Drag-and-drop
knobs significantly reduce the time spent managing user knobs in a node's Properties panel when
compared to the legacy Manage User Knobs method within Nuke.
Note: The drag-and-drop interface is also useful for managing LiveGroup knobs. See Using
the LiveGroup Node for more information.
Tip: You can float the User Knob Editor by clicking the content menu at the top of the
pane and selecting Windows > User Knob Editor.
USER GUIDE
1172
Managing Gizmo Controls | Adding Knobs Using Drag-and-Drop
The User Knob Editor is displayed and the node's properties are now editable.
USER GUIDE
1173
Managing Gizmo Controls | Adding Knobs Using Drag-and-Drop
OR
Drag-and-drop a new knob from the User Knob Editor onto the Group node's properties.
USER GUIDE
1174
Managing Gizmo Controls | Adding Knobs Using Drag-and-Drop
Knobs added from nodes in the Group are marked with a gray dot and new knobs are marked
with an orange dot.
See Organizing Knobs for information on how to rearrange knobs in the panel.
3. Click the edit button at the top of the Group Properties panel to exit edit mode.
See Accessing Gizmos in Nuke for information on how to access your gizmo in Nuke.
Editing Knobs
Knobs added to the Properties panel are edited by clicking the gray or orange dot next to the knob
label.
USER GUIDE
1175
Managing Gizmo Controls | Adding Knobs Using Drag-and-Drop
The components you can edit depend on the knob type. For example, a translate knob from a node
within the Group allows you to edit the following:
• Name - the scripting name used to call the knob from scripts and expressions. This field is
alphanumeric and cannot contain spaces.
• Label - the display name for the knob in the Nuke interface.
• Tooltip - the information displayed when you hover the pointer over the knob.
Tip: The Nuke Reference Guide lists the labels and knob names for the majority of Nuke
nodes.
A more complex example is the Python Script Button knob from the User Knob Editor. Adding a
Python knob to the Properties panel allows you to edit an additional component, Script. The Script
field adds Python to the knob, which is executed when you click the button. For example:
USER GUIDE
1176
Managing Gizmo Controls | Adding Knobs Using Drag-and-Drop
Click the edit button at the top of the Group Properties panel to exit edit mode. See Accessing
Gizmos in Nuke for information on how to access your gizmo in Nuke.
Organizing Knobs
You can re-order, hide, and remove knobs quickly using the drag-and-drop interface. When you're
dragging knobs around the Properties panel, an orange guide line indicates where the knob is placed
when dropped.
You can drag-and-drop multiple knob selections in the same way. Hold Ctrl/Cmd and click to select
multiple knobs in the Properties panel.
USER GUIDE
1177
Managing Gizmo Controls | Adding Knobs Using Drag-and-Drop
You can add dividing lines between controls to delineate between groups of knobs, such as transform
and color knobs. To add a divider, drag-and-drop a Divider Line knob between the controls you want
to separate.
Click the edit button at the top of the Group Properties panel to exit edit mode. See Accessing
Gizmos in Nuke for information on how to access your gizmo in Nuke.
Adding Tabs
You can add tabs in the Properties panel to organize knobs into groups, just like Nuke's existing
nodes. To add a tab:
1. Drag a Tab knob from the User Knob Editor and drop it into the Properties.
Dropping a Tab knob above other knobs moves those knobs to the new tab.
USER GUIDE
1178
Managing Gizmo Controls | Adding Knobs Using Drag-and-Drop
Tip: If you want to create an empty tab, drop the Tab knob at the bottom of the knob list.
Click the edit button at the top of the Group Properties panel to exit edit mode. See Accessing
Gizmos in Nuke for information on how to access your gizmo in Nuke.
You can hide knobs by clicking the icon next to the knob. Hiding a knob doesn't hide it in edit
mode, only when you've finished exposing knobs and clicked the edit button .
USER GUIDE
1179
Managing Gizmo Controls | Adding Knobs Using Drag-and-Drop
Click the edit button at the top of the Group Properties panel to exit edit mode. See Accessing
Gizmos in Nuke for information on how to access your gizmo in Nuke.
USER GUIDE
1180
Adding Knobs Manually | Adding Knobs Using Drag-and-Drop
2. To pick a control you want to give the users control of, click on the Pick button. This opens a
dialog that lists all the nodes that the group contains.
USER GUIDE
1181
Adding Knobs Manually | Adding Knobs Using Drag-and-Drop
Expand the list items as necessary to see the controls you can include in the gizmo controls.
Select a control and click OK. You can also select multiple controls by Ctrl/Cmd+clicking on them,
or pick a range of controls by Shift+clicking.
At this point, a new tab called User appears in the Group properties panel. The control you
selected has been added to this tab. In our example, we selected the size control of the Text node.
The control has also been added to the Manage User Knobs dialog, ready for you to edit.
3. To edit the control you added, open the Manage User Knobs dialog and select the control from
the list. Click Edit.
USER GUIDE
1182
Adding Knobs Manually | Adding Knobs Using Drag-and-Drop
To add an icon to your check box or Tcl/Python button using HTML, you can enter <img
src="Colorwheel.png"/> in the Label field. This adds the Nuke color wheel icon. You can also
use your own icons in the same way as long as you save them in your plug-in path directory.
Most common image formats work, but we recommend using .png files.
Note that the HTML has been changed to a slightly non-standard form where newlines are
significant. If there is a newline character in your data, a new line is displayed in the label.
• Hide - Check this to hide the control from the users. This can be useful if you want to make a
new control to contain a complex expression that you can then refer to repeatedly by other
controls.
• Start new line - Uncheck this if you want the control to appear on the same line as the previous
control in the gizmo properties panel.
• Tooltip - Enter a short help text here. It appears, along with the Name, in a pop-up tool tip when
the user points the mouse at the control. If you do not provide a tool tip, whatever is in the
Name field is used as the tool tip.
4. If necessary, repeat the previous three steps to add more controls to your Group node (future
gizmo).
5. In the Group node properties panel, the controls are listed in the same order as they are in the
Manage User Knobs dialog. To move a control up or down in the properties panel, select it in the
dialog and use the Up and Down buttons.
6. Click the export as gizmo button.
7. In the file browser that appears, click Home. Type .nuke/ after the path displayed at the bottom
of the file browser.
8. Enter a name after the path, and append a .gizmo extension after the name. This is the name of
the command that is written to any saved script that’s using the gizmo. It’s a good idea, and
common practice, to begin the name with a capital letter, because Nuke uses this as an indication
that the command is a node or a gizmo.
9. Click Save.
USER GUIDE
1183
Adding Knobs Manually | Adding Knobs Using Drag-and-Drop
2. To add a new control, tab, static text, or divider line to the Group (gizmo) controls, click Add on
the Manage User Knobs dialog and select the option you want to add. This opens a dialog where
you can edit the control, tab or static text you added. In most cases, you can edit the following:
• Name - Give the new control a unique name here. You need to use this name whenever you
want to reference the control from scripts or via expressions. The name can only contain letters
and digits. Spaces or punctuation are not allowed. This field cannot be left empty.
• Label - Whatever you enter here appears to the left of the control in the gizmo properties panel.
If you leave this empty, whatever is in the Name field is also used as the label.
In the Label fields of check boxes, Tcl script buttons, and Python script buttons, you can also
use HTML. For example, to have your text appear in bold, you can enter <b>text</b>.
To add an icon to your check box or Tcl/Python button using HTML, you can enter <img
src="Colorwheel.png"/> in the Label field. This adds the Nuke color wheel icon. You can also
use your own icons in the same way as long as you save them in your plug-in path directory.
Most common image formats can work, but we recommend using .png files.
Note that the HTML has been changed to a slightly non-standard form where newlines are
significant. If there is a newline character in your data, a new line is displayed in the label.
• Hide - Check this to hide the control from the users. This can be useful if you want to make a
new control to contain a complex expression that you can then refer to repeatedly by other
controls.
• Start new line - Uncheck this if you want the control to appear on the same line as the previous
control in the Group properties panel.
• Tooltip - Enter a short help text here. It appears, along with the Name, in a pop-up tool tip when
the user points the mouse at the control. If you do not provide a tool tip, whatever is in the
Name field is used as the tool tip.
3. Use an expression to link the control you just created to a node and its control inside the Group
node. This is important, because for the new control to do anything, you need to refer to it using
USER GUIDE
1184
Adding Knobs Manually | Adding Knobs Using Drag-and-Drop
an expression in some other control on a node inside the Group. For more information, see the
examples below and refer to Expressions.
4. If necessary, repeat the previous four steps to add more controls to your Group node (future
gizmo).
5. In the Group node properties panel, the controls are listed in the same order as they are in the
Manage User Knobs dialog. To move a control up or down in the properties panel, select it in the
dialog and use the Up and Down buttons.
6. Click the export as gizmo button.
7. In the file browser that appears, click Home. Type .nuke/ after the path displayed at the bottom
of the file browser.
8. Enter a name after the path, and append a .gizmo extension after the name. This is the name of
the command that is written to any saved script that’s using the gizmo. It’s a good idea, and
common practice, to begin the name with a capital letter, because Nuke uses this as an indication
that the command is a node or a gizmo.
9. Click Save.
To Delete Controls:
1. Right-click on the dark gray background of the Group properties panel and select Manage User
Knobs.
2. In the dialog that opens, select the controls that you want to delete from the list and click Delete.
3. To delete an entire tab, select all controls on the tab as well as the tab name and click Delete.
Examples
Below are some examples on how to create new controls for gizmos. To try them out, do the
following preparations:
1. Select Draw > Text and Draw > Rectangle. Create the following setup:
USER GUIDE
1185
Adding Knobs Manually | Adding Knobs Using Drag-and-Drop
3. In the Viewer, resize and reposition the rectangle until it looks like the following:
4. In the Rectangle1 properties panel, go to the Color tab. Click on the 4 button to display multiple
values rather than the slider. Enter 1 as the value for r, and 0 as the value for b, g and a. This
changes the color of the rectangle from white to red.
5. Copy the Rectangle1 node and paste it into the same script. Create the following connections:
6. Double-click on the Rectangle2 node and change the color of the rectangle from red to green (r 0,
g 1, b 0, a 0).
7. Select Merge > Switch to add a Switch node. Create the following connections:
USER GUIDE
1186
Adding Knobs Manually | Adding Knobs Using Drag-and-Drop
8. Select the Text1, Rectangle1, Rectangle2 and Switch1 nodes and press Ctrl/Cmd+G to group them.
This group is the gizmo we add controls to in the following examples.
9. Delete the original four nodes from the Node Graph tab.
10. Select the Group node and append a Viewer to it.
Example 1
In this example, we add a control called Version to the Group node controls. This control is an input
field. Whatever is entered in the field is called by the Text1 node and displayed in the Viewer when
you view the output of the group.
1. Open the Group properties panel and right-click on the dark gray background. Select Manage
User Knobs.
2. In the dialog that opens, select Add > Text input Knob to add a text input field control to your
Group properties panel.
3. Enter version as the Name for the control, Version as the Label, and Enter the version number here
as the Tooltip. Click OK and Done to close the dialogs.
This step created a tab called User in the Group node controls. All the controls you add or pick
are added on this tab by default.
As you can see, the Version control is now there.
4. On the Group1 Node Graph tab, double-click the Text1 node to open its controls. In the message
field, enter the following expression: [value version]. This expression calls the control named
version that you created in the previous step. Therefore, whatever is entered in the Version field
of the Group node (for example, v03), appears as a result of the Text1 node.
USER GUIDE
1187
Adding Knobs Manually | Adding Knobs Using Drag-and-Drop
Example 2
This example teaches you to create a checkbox control that the users can use to specify whether they
want to display or hide the version number added in the previous example.
1. In the Group properties panel, right-click on the dark gray background and select Manage User
Knobs.
2. In the dialog that opens, select Add > Check Box to add a checkbox control to your Group
properties panel.
3. Enter hideversion as the Name for the control, Hide version number as the Label, and Check this to
hide the version number as the Tooltip.
4. To have the new control appear next to the Version control (created in the previous example)
rather than below it on its own line, uncheck Start new line. Click OK and Done to close the
dialogs.
The control you created appears in the Group properties panel now.
5. In the Text1 controls, go to the Node tab. Right-click on the disable control and select Add
expression.
6. In the Expression field, enter hideversion (or, if you want to make it clear that the control is in
the enclosing group, you can also use parent.hideversion). This calls the control you created in
steps 2 and 3. Click OK.
USER GUIDE
1188
Adding Knobs Manually | Adding Knobs Using Drag-and-Drop
From now on, whenever Hide version number is checked in the Group controls, the Text1 node
is disabled and you cannot see the version number it would otherwise create.
Example 3
In this example, we add a control labeled Status to the Group controls. This control is a dropdown
menu with two options: Finished and Unfinished. When Finished is selected, the green rectangle is
displayed. When Unfinished is selected, you’ll see the red rectangle instead.
1. In the Group properties panel, right-click on the dark gray background and select Manage User
Knobs.
2. In the dialog that opens, select Add > Pulldown Choice to add a dropdown menu control to your
Group properties panel.
3. Enter status as the Name for the control and Status as the Label. In the Menu Items field, list the
items you want to appear in the dropdown menu - in this case, Finished and Unfinished.
USER GUIDE
1189
Adding Knobs Manually | Adding Knobs Using Drag-and-Drop
Finally, enter Select the production status here as the Tooltip. Click OK and Done to close the
dialogs.
The Status control should now appear in the Group controls.
4. On the Group1 Node Graph tab, double-click the Switch1 node to open its controls. Right-click
on the which field and select Add expression.
5. In the dialog that opens, enter the following expression: status==0 (or, parent.status==0). This
expression calls the control named status that you created earlier in this example. For the
dropdown menus, the first item is 0, the next 1, the next 2, and so on.
From now on, whenever Finished is selected under Status, the green rectangle is shown. When
Unfinished is selected, the red rectangle is shown.
Example 4
This example teaches you how to visually group and rearrange the controls you created for the Group
properties panel. You can do this by renaming the User tab, and using static text and divider lines to
group the controls on the tab.
First, we’ll rename the User tab in the Group properties panel:
1. In the Group properties panel, right-click on the dark gray background and select Manage User
Knobs.
2. In the dialog that opens, select User and click Edit.
3. In the Label field, enter a new name for the tab, for example, Version and status. Click OK and
Done to close the dialogs.
If you now look at the Group controls, you’ll notice that the User tab has been renamed to
Version and status.
Next, we’ll group the two version controls of the Group node under a title called Version controls:
1. In the Group properties panel, right-click on the dark gray background and select Manage User
Knobs.
2. In the dialog that opens, select Add > Text to add text to your Group properties panel.
3. Enter versioncont as the Name for the control and Version controls as the Label. Click OK and
Done to close the dialogs.
USER GUIDE
1190
Adding Knobs Manually | Adding Knobs Using Drag-and-Drop
This adds the text Version controls to the Group properties panel. However, the text does not
appear where we want it to appear: on top of the Version and Hide version number controls.
Let’s move it up.
4. Right-click on the Group properties panel again and select Manage User Knobs.
5. Select [Version controls] from the list and click Up three times. Click Done.
The text should now appear on top of the Group properties panel, above the version controls.
Finally, we’ll add a divider line between the version controls and the Status control:
1. In the Group properties panel, right-click on the dark gray background and select Manage User
Knobs again.
2. In the dialog that opens, select Add > Divider Line to add a line to divide the controls in your
Group properties panel.
3. Select the line from the Manage User Knobs dialog, where it is shown as unnamed.
4. Click the Up button once to move the line between the Hide version number and Status
controls. Click Done.
If you now open the Group controls, you’ll notice that a there’s a line between these controls.
5. See Accessing Gizmos in Nuke for information on how to access your gizmo in Nuke.
USER GUIDE
1191
Accessing Gizmos in Nuke | Adding Knobs Using Drag-and-Drop
If you're going to use a gizmo often, across multiple sessions, you can add it to a Nuke menu to
provide quick access. See Defining Custom Menus and Toolbars for more information.
• opening the Script Editor and entering nuke.load('gizmo name') where gizmo name is the name of
the gizmo without the extension, or
• selecting Other > All plugins > Update from the node toolbar and then adding the gizmo using the
Tab menu in the Node Graph.
USER GUIDE
1192
Accessing Gizmos in Nuke | Adding Knobs Using Drag-and-Drop
USER GUIDE
1193
Sourcing Custom Plug-ins and Generic Tcl Scripts | Nuke Custom Plug-ins
Tip: For some code samples of useful Nuke Tcl procedures, look inside the [Nuke
directory]/plugins directory.
USER GUIDE
1194
Template Scripts | Creating and Using a Template Script
Template Scripts
You can create a template script that is loaded instead of an empty script every time you launch Nuke
or select File > New Comp or File > Close Comp. This allows you to save lookup table (LUT) setups
and favorite arrangements of nodes, for example.
The next time you launch Nuke or select File > New Comp or File > Close Comp, Nuke loads the
template from ~/.nuke/template.nk.
Tip: If you’re not sure of the location of your home directory, on Linux and Mac you can
open a terminal window and type echo $HOME. The terminal returns the pathname to your
home directory.
On Windows, you can find the .nuke directory under the directory pointed to by the HOME
environment variable. If this variable is not set (which is common), the .nuke directory will be
under the folder specified by the USERPROFILE environment variable. To find out if the
HOME and USERPROFILE environment variables are set and where they are pointing at, enter
%HOME% or %USERPROFILE% into the address bar in Windows Explorer. If the environment
variable is set, the folder it’s pointing at is opened. If it’s not set, you get an error.
Here are examples of what the path name may be on different platforms:
Linux: /home/login name
Mac: /Users/login name
Windows: drive letter:\Documents and Settings\login name or drive letter:\Users\login name
USER GUIDE
1195
Defining Common Preferences | Defining Default Preferences
Tip: If you’re not sure of the location of your home directory, on Linux and Mac you can go
to a terminal window and type echo $HOME. The terminal will return the path name to your
home directory.
On Windows, you can find the .nuke directory under the directory pointed to by the HOME
environment variable. If this variable is not set (which is common), the .nuke directory will be
under the folder specified by the USERPROFILE environment variable. To find out if the
HOME and USERPROFILE environment variables are set and where they are pointing at, enter
%HOME% or %USERPROFILE% into the address bar in Windows Explorer. If the environment
variable is set, the folder it’s pointing at is opened. If it’s not set, you get an error.
Here are examples of what the path name may be on different platforms:
Linux: /home/login name
Mac: /Users/login name
Windows: drive letter:\Documents and Settings\login name or drive letter:\Users\login name
4. Move the resulting preferences11.3.nk file into your Nuke plug-in path directory.
For more information on plug-in path directories, see Loading Gizmos, NDK Plug-ins, and Python
and Tcl Scripts.
Your preferences now act as the defaults for your artists. However, should they make changes using
the Preferences dialog, these changes will override your defaults.
USER GUIDE
1196
Defining Common Preferences | Deleting (and Resetting) the Preferences
USER GUIDE
1197
Altering a Script’s Lookup Tables (LUTs) | Deleting (and Resetting) the Preferences
Nuke provides many nuke-default LUTs, including: linear, sRGB, rec709, Cineon1 , Gamma1.8,
Gamma2.2, Panalog2 , REDLog3 , ViperLog4 , AlexaV3LogC5 , PLogLin6 , SLog7 , and REDSpace8 .
You can also create an unlimited number of additional LUTs and edit or remove existing LUTs in the
script’s settings.
By default, Nuke uses certain LUTs for certain file types or devices. In most cases, you do not need to
touch these defaults. However, there may occasionally be cases when changing the defaults is
necessary: for example, if your material has been shot with a camera that records in a custom color
space, such as Panalog. In those cases, you can change the defaults in the script’s settings so that you
don’t need to change the color space on each Read or Write node.
If you do not want to use the default LUT for reading or writing certain individual images, you can
select the LUT to use in the corresponding Read or Write node’s controls.
2 The Panalog LUT is based on a log2lin conversion with a blackpoint of 64, whitepoint of 681, and a gamma of 0.89.
3 The REDLog LUT is based on a log2lin conversion with a blackpoint of 0, whitepoint of 1023, and a gamma of 1.022.
4 The ViperLog LUT is based on a log2lin conversion with a blackpoint of 0, whitepoint of 1023, and a gamma of 1.0.
6 The PLogLin LUT uses the default values for the formula, mapping log 0.43457 (code value 445 on a 1024 scale) to linear 0.18 (mid-gray)
assuming a negative gamma of 0.6 and a density per code value of 0.002. (This does factor in the fact that value ranges for a log image in
Nuke are still scaled to 0-1 range.)
7 The Sony S-Log LUT comes from the Sony S-Log Whitepaper Version 1.110. For more information, see
http://www.sony.co.uk/res/attachment/file/66/1237476953066.pdf.
USER GUIDE
1198
Managing Nuke's Native LUTs | To Display LUT Curves
Note: You can't adjust LUTs that appear under the OCIO color management scheme. See
OCIO Color Management for more information.
See this Support Knowledge Base article for more detailed information.
USER GUIDE
1199
Managing Nuke's Native LUTs | To Edit LUTs
The new LUT is now available in the global LUT settings, and the colorspace dropdown menu of Read
and Write nodes’ properties panels, the Viewer controls.
To Edit LUTs
1. Select Edit > Project Settings to open the settings for the script.
2. Go to the Color tab.
3. From the list on the left, select the LUT you want to edit.
4. Adjust the lookup curve to suit your needs. Click on the curve to select it. Ctrl/Cmd+Alt+click to
add points on the curve, and drag the points to a new position. To change the shape of the curve,
adjust the tangent handles.
To use the usual editing commands, such as copy and paste, right-click on the curve editor and
select Edit. Then, select the editing command you want to use, just like you would on any curve
editor.
Note: Renaming existing LUTs is currently not possible. If you want to rename a LUT, you
need to add and name a new LUT, copy the information from the old LUT into the new one,
and then remove the old LUT.
To Remove LUTs
1. Select Edit > Project Settings to open the settings for the script.
USER GUIDE
1200
Managing Nuke's Native LUTs | To Remove LUTs
The LUT is removed from the LUT settings, and the colorspace dropdown menu of Read and Write
nodes’ properties panels.
Note: If you remove a LUT that is used in a node, the node continues to refer to the LUT by
name and raises an error.
USER GUIDE
1201
Selecting the LUT to Use | Default LUT Settings
working space This determines what colorspace files should be converted to when linear
read and from when written- it's the colorspace used by Nuke under
the hood. In earlier releases of Nuke, this colorspace was hidden
because linear was always chosen as the working space. You may find
that some operations work better in colorspaces other than linear. For
example, some transforms work better in the CLog colorspace.
Note: You can only change the working space if you're using
OCIO color management.
monitor This is used for postage stamps, OpenGL textures, the color chooser sRGB
display, and all other non-Viewer image displays.
8-bit files This is used when reading or writing image files that contain 8-bit data. sRGB
Also used by the Merge node’s sRGB switch, and to convert Primatte
inputs into sRGB and outputs from sRGB.
16-bit files This is used when reading or writing image files that contain 16-bit sRGB
integer data (not half float).
log files This is used when reading or writing .cin or .dpx files. Cineon
float files This is used when reading or writing image files that contain floating- linear
point data.
USER GUIDE
1202
Selecting the LUT to Use | To Change the Default LUT Settings
The new defaults are now used for any LUT setting where you have not selected a specific LUT. Any
controls you have set to a specific LUT (that is, not set to default) continues to use the selected LUT,
and only those set to default are affected.
USER GUIDE
1203
Example Cases | Working in Video Colorspace
Example Cases
Below are some examples of situations where you might need to alter the default LUTs.
This prevents Nuke from converting from sRGB into linear. Nuke’s nodes still assume linear data, but
the image processing is applied to your unlinearized video color space images.
Cineon Displays
Some facilities have adjusted their monitor electronics to correctly display Cineon data. If this is the
case in your facility, do the following:
1. Select Edit > Project Settings and go to the Color tab.
2. Under Default LUT settings, change the monitor value to Cineon.
Color Management
Although true color management requires using other nodes, it may be useful to approximate it with
a LUT that is used for the monitor setting. This way, texture maps and postage stamps resemble the
final display more accurately.
If your color management is creating a monitor-corrected image, you’ll want to set monitor to sRGB
so you get reasonably monitor-correct output on non-Viewer images.
USER GUIDE
1204
OCIO Color Management | Color Management
Depending on the OCIO config file that you are working with, there are a number of colorspace
options and roles (aliases to colorspaces) that you can set in Nuke. There are also default options,
which change depending on what file type you are working with. When the default option is selected,
the colorspace that Nuke has set for it is listed in brackets.
Tip: Use the options in Preferences > Project Defaults > Color Management to apply
them to all new projects.
1. The color management dropdown determines whether Nuke uses the LUTs read from the
configuration specified or the Nuke native LUTs. Selecting OCIO makes the relevant OCIO LUTs
available to the Read and Write nodes in scripts on a per project basis.
All OCIO configurations except nuke-default automatically switch this control to OCIO.
2. Set the OpenColorIO Config you want to use for this project.
Nuke ships with a number of default configurations, but you can use a custom OCIO config file by
selecting custom from the OpenColorIO Config dropdown and then entering the file path.
Changing the configuration updates the Default Color Transforms accordingly. If the selected
configuration is invalid for certain transforms, a warning displays.
3. The working space transform determines what colorspace files should be converted to (Read)
and from (Write) - it's the colorspace used by Nuke under the hood.
USER GUIDE
1205
OCIO Color Management | Color Management
Note: In earlier releases of Nuke, this colorspace was hidden because linear was always
chosen as the working space. You may find that some operations work better in
colorspaces other than linear. For example, some transforms work better in the CLog
colorspace.
4. You can use Default Color Transforms dropdown menus to override how clips in the Viewer,
thumbnails, and so on are converted to and from the working space.
When the Nuke is selected, Reads and Writes work the same as in previous versions of Nuke, with no
integrated OCIO transforms. When OCIO is selected:
• Reads and Writes use OCIO transforms, with no Nuke built-in LUTs applied to the image.
• Read and Write colorspace controls are populated with the list of colorspaces defined in your
currently selected OCIO config.
• The default LUT settings dropdowns are also populated with the list of colorspaces or display
transforms defined in your OCIO config. The default value for each menu match the defaults in a
Nuke Studio project with the same config. These defaults can be overridden using Python callbacks.
See the following path for the default implementation that ships with Nuke:
<install_dir>/plugins/nuke/colorspaces.py
• The working space dropdown allows you to change the colorspace that Nuke uses internally for its
image processing. This automatically sets the in colorspace of Write nodes and Viewer Processes,
and the out colorspace for Read nodes. This defaults to the scene linear role defined in your OCIO
config.
• Nuke Studio-created comps no longer contain automatically injected OCIOColorspace nodes.
Instead, OCIO Color Management is automatically set in the comp’s Project Settings, and the
correct OCIO colorspace is set directly into the Read and Write nodes.
USER GUIDE
1206
Creating Custom Viewer Processes | Color Management
Tip: There are a couple of commented out examples in the installed init.py file
demonstrating how to use a 3D LUT for a Viewer Process. You can find this file in the
following location:
On Windows:
drive letter:\Program Files\Nuke11.3v5\plugins or
drive letter:\Program Files (x86)\Nuke11.3v5\plugins
On Mac:
/Applications/Nuke11.3v5/Nuke11.3v5.app/Contents/MacOS/plugins
On Linux:
/usr/local/Nuke11.3v5/plugins
All available Viewer Processes (both custom and predefined ones) can be applied from the Viewer
Process dropdown menu in the Viewer controls.
USER GUIDE
1207
Creating Custom Viewer Processes | Color Management
Note that Viewer Processes are part of a built-in, fixed pipeline of nodes that are applied to images
before they are displayed in the Viewer. This pipeline is either:
• gain > Input Process > Viewer Process > gamma > dither > channels > cliptest (if viewer input order
has been set to before viewer process in the Viewer settings)
OR
• gain > Viewer Process > Input Process > gamma > dither > channels > cliptest (if viewer input order
has been set to after viewer process in the Viewer settings).
However, depending on what the Viewer Process is doing, this may not be the correct order.
Therefore, if your Viewer Process (or an Input Process) has controls that also exist for the Viewer,
such as controls named gain, gamma, or cliptest, then the Viewer drives them from the
corresponding Viewer controls and does not do that image processing itself. This allows you to
implement these controls in your Viewer Process using whatever nodes and order you want. If your
Viewer Process does not have these controls (and they are not found on any Input Process in use
either), then the Viewer applies the effects in its normal way according to the built-in pipeline.
In the built-in pipeline, dither is applied to diffuse round-off errors in conversion of floating point
data to the actual display bit depth. Although the cliptest is drawn at the end, it is computed on the
image as input to the Viewer.
USER GUIDE
1208
Using a Gizmo as a Custom Viewer Process | To Register a LUT in the Project Settings as a Viewer
If you want to use one of the 1D LUTs listed in the Project Settings in your Viewer Process, you do not
need to create a custom gizmo. Instead, you can simply register a built-in gizmo called
ViewerProcess_1DLUT. This gizmo takes a parameter for which LUT to use, but does not allow it to be
edited. For more information, see To Register a LUT in the Project Settings as a Viewer Process.
If you want anything more complex than a 1D LUT that can be found on the LUT tab of the Project
Settings, you need to create your own gizmo and register that. For more information, see To Create a
Viewer Process Gizmo and To Register a Custom Viewer Process.
USER GUIDE
1209
Using a Gizmo as a Custom Viewer Process | To Create a Viewer Process Gizmo
Tip: If you like, you can test your Viewer Process gizmo as an Input Process before
registering it. Do the following:
1. In the top right corner of the Viewer, set the Viewer Process dropdown menu to None.
2. Select the gizmo in the Node Graph.
3. To toggle the Input Process on or off, click the IP button in the Viewer controls. If you are
happy with the result, proceed to registering the gizmo as a Viewer Process.
For more information on Input Processes, see Using the Viewer Controls > Input Process
and Viewer Controls.
Tip: If you want to view or modify the internals of an existing Viewer Process, you can do the
following:
1. Select the Viewer Process that you want to modify from the Viewer Process dropdown
menu.
2. Select Edit > Node > Copy Viewer Process to Node Graph. This inserts the Viewer
Process gizmo you selected in the Node Graph.
3. Double-click on the gizmo to open its controls. Go to the Node tab and click copy to
USER GUIDE
1210
Using a Gizmo as a Custom Viewer Process | To Register a Custom Viewer Process
Tip: If you use the ViewerLUT node in a Viewer Process gizmo, you can toggle rbg_only in
the ViewerLUT controls to define whether the LUT is applied to all channels or only the red,
green, and blue channels. You can also expose this control in the Viewer Process gizmo's
controls, so that users can set it themselves.
If you need to unregister a Viewer Process, you can use nuke.ViewerProcess.unregister(). For
example:
USER GUIDE
1211
Using a Gizmo as a Custom Viewer Process | To Register a Custom Viewer Process
Tip: You can easily register any LUT defined in the project settings as a Viewer Process. For
how to do this, see the installed menu.py file where the built-in Viewer Processes are
registered. You can find menu.py in the following location:
On Windows:
drive letter:\Program Files\Nuke11.3v5\plugins or
drive letter:\Program Files (x86)\Nuke11.3v5\plugins
On Mac:
/Applications/Nuke11.3v5/Nuke11.3v5.app/Contents/MacOS/plugins
On Linux:
/usr/local/Nuke11.3v5/plugins
USER GUIDE
1212
Applying Custom Viewer Processes to Images | To Apply Your Custom Viewer Process to Images
This opens the Viewer Process’ properties panel. Any controls with the same name as the controls in
the Viewer (such as gain or gamma) can only be adjusted using the Viewer controls. If these controls
are also exposed on an Input Process and the Input Process has been activated, the Viewer controls
drive the Input Process controls and the Viewer Process controls are disabled.
For more information on Input Processes, see Using the Viewer Controls > Input Process and
Viewer Controls.
USER GUIDE
1213
Expressions
This chapter is intended as a primer on how to apply expressions (programmatic commands) to Nuke
parameters. It explains how to perform some common tasks with expressions (for example, how to
link the values of one parameter to another), and concludes with a table all the functions that you
may include as part of an expression.
Quick Start
Here's a quick overview of the workflow:
1. You enter Nuke expressions in the Expression dialog, which you can open either by pressing the
equals sign (=) on a parameter or by right-clicking on it and selecting Add expression.
2. In the Expression dialog, enter text that either references values from other parameters (creating
a linking expression - see Linking Expressions) or applies mathematical functions of some kind to
the current values (see Adding Mathematical Functions to Expressions). An example of the former
would be parent.Transform1.rotate, which indicates that this control takes its values from the
parent control, Transform node’s rotate control.
3. If necessary, you can also convert expressions between scripting languages (that is, between Nuke
expressions, Tcl, and Python). See Converting Expressions Between Scripting Languages.
USER GUIDE
1214
Linking Expressions |
Linking Expressions
Through expressions, you can link the parameters from one node and control the values of the
parameters in other nodes. When creating a linking expression, type the elements listed in the table
below; remember to separate each element with a period.
Element Description
Node name The node with the source parameter (i.e., Transform1).
Parameter name The name of the parameter with the source value (for example, translate).The
name is defined internally, and may not match the parameter’s label that
appear in the Nuke interface. If necessary, hover over the parameter’s field with
your mouse pointer and its name appears in the pop-up tool tip.
Child parameter Some parameters include child parameters, such as the fields for x and y axes,
name or red, green, and blue color channels. Child parameter names do match the
label that appears before the parameter’s field (for example, x).
(optional)
Time By default, linking expressions pull values from the current frame number, but
(optional) you can read values from other frames, either statically or dynamically (that is,
with a temporal offset).
If you want to read in a static value for a given frame, you just type that frame
number inside a set of parenthesis (for example, (10)).
If you want to read in dynamic values but with an offset in time, type t, the
variable for time, followed by a + (for a forward offset) or - (for a backward
offset), followed by a number representing the number of frames worth of
offset. For example, typing (t-2) would capture values that are two frames back
from the current frame.
Thus, to create a linking expression that pulls the value from a Transform node’s x translation field at
the tenth frame, you would type = on a parameter to open the expression dialog, and then enter
Transform1.translate.x(10) in the dialog’s Expression field.
USER GUIDE
1215
Linking Expressions | Referencing Values from Another Parameter
The steps below recap the process for creating a linking expression.
3. In the dialog that opens, type the name of the node containing the source parameter and a
period. (Each node prominently displays its name on its face.)
4. If you want to enter a multi-line expression, you can click the multi-line edit field button .
USER GUIDE
1216
Linking Expressions | Referencing Values from Another Parameter
5. Follow the name of the node by the source parameter’s name and a period. (If you don’t know the
parameter’s name, you can hover over its field in order to see it displayed in a tool tip.)
6. Optionally, type the child parameter’s name and a period.
7. Optionally, type a frame number or offset variable in brackets (for example, (2) or (t-2)) in order
to specify the frame or range of frames from which you pull values.
8. Next to the expression entry field, you can click the Py button to automatically make your
expression a Python callback. You can also toggle the R button to have your expression
interpreted as an expression or as a series of statements. For example, with the multi-line edit
mode and the Python mode on, you could enter the following expression, and get 15 as the
resulting value:
-execlocal
def example():
a = 5
return a
def example2():
b = 10
return b
ret = example()+example2()
9. Click OK. This links the parameters, which turn blue. In the Node Graph, a green arrow appears
between the nodes to indicate that they are linked via an expression.
10. To edit the expression later on, right-click on the parameter and select Edit expression (or press =
on the parameter). You can also click the animation button and select Edit expression to edit
expressions for all the parameters next to the button.
USER GUIDE
1217
Linking Expressions | Linking Channels and Formats Using Expressions
To view or edit the expression, right-click on the parameter and select Edit expression.
2. If you want to link several parameters at the same time, Ctrl/Cmd+drag the animation button
next to the source parameters on top of the animation button next to the destination parameters.
To view or edit the expressions used to link the parameters, click the animation button and select
Edit expression.
USER GUIDE
1218
Adding Mathematical Functions to Expressions | Linking Channels and Formats Using Expressions
You can also rely on a function to add more complex mathematical operation to your expressions.
The table below list all the functions which you may incorporate into Nuke expressions.
acos (x) Calculates the arc cosine of If x is less than See also: cos,
x; that is the value whose -1 or greater cosh, asin, atan.
cosine is x. than 1, acos
returns nan
(not a
number).
asin (x) Calculates the arc sine of x; If x is less than See also: sin,
that is the value whose sine -1 or greater sinh, acos, atan.
is x. than1, asin
returns nan
(not a
number).
USER GUIDE
1219
Adding Mathematical Functions to Expressions | Linking Channels and Formats Using Expressions
clamp (x, Return x clamped to [min ... x, min, max See also: min,
min, max) max]. max.
curve (frame) Returns the y value of the optional: See also: value,
animation curve at the given frame, y.
frame. defaults to
current frame.
USER GUIDE
1220
Adding Mathematical Functions to Expressions | Linking Channels and Formats Using Expressions
USER GUIDE
1221
Adding Mathematical Functions to Expressions | Linking Channels and Formats Using Expressions
USER GUIDE
1222
Adding Mathematical Functions to Expressions | Linking Channels and Formats Using Expressions
max (x, y, ... ) Return the greatest of all x, y, (...) See also: min,
values. clamp.
min (x, y, ... ) Return the smallest of all x, y, (...) See also: max,
values. clamp.
USER GUIDE
1223
Adding Mathematical Functions to Expressions | Linking Channels and Formats Using Expressions
USER GUIDE
1224
Adding Mathematical Functions to Expressions | Linking Channels and Formats Using Expressions
turbulence (x, This is the same as fBm() x, y, z, octaves, See also: fBm,
y, z, octaves, except the absolute value of lucanarity, noise, random.
lucanarity, the noise() function is used. gain
gain)
USER GUIDE
1225
Adding Mathematical Functions to Expressions | Linking Channels and Formats Using Expressions
USER GUIDE
1226
Converting Expressions Between Scripting Languages | Linking Channels and Formats Using
You can use the following functions to use different types of expressions together:
• nuke.expression() to use a Nuke expression in Python code.
• expression to use a Nuke expression in Tcl.
• nuke.tcl() to run Tcl code in Python.
• python to run Python code in Tcl.
• [ ] (square brackets) to embed Tcl in a Nuke expression (or a string knob).
• [python {...}] to embed Python in a Nuke expression.
Tip: Note that putting braces ( { } ) around Python code when embedding it in Tcl may make
the process a bit easier, because this prevents Tcl from performing its own evaluation of the
Python code before passing it through to the Python interpreter. For example: [python
{"hello " + "world"}]
Tip: Note that the "python" Tcl command by default evaluates a single line of code and
returns the result. Use the "-exec" option (for example, "python -exec") if you want to run
multiple lines. Please refer to the Nuke Tcl Scripting documentation (Help > Documentation
> TCL Scripting) for further information.
USER GUIDE
1227
The Script Editor and Python
Nuke ships with a comprehensive Python application programming interface (API), enabling you to
perform user interface actions using Python scripting. This chapter describes how you can use the
Script Editor for executing Python scripts and directs you to sources of more information on Python.
Quick Start
Here's a quick overview of the workflow:
1. Enter Python statements in Nuke’s Script Editor to perform the required actions.
2. Save your script with the extension .py in a directory that is contained in the sys.path variable.
3. Later, when you want to execute the same statement sequence, import the .py file into Nuke’s
Script Editor. Nuke executes the statements in the specified order.
If you need more information on using Python in Nuke, you can always turn to the Nuke Python
Developer’s Guide (Help > Documentation).
Tip: You can import Nuke as a module into a third-party Python 2.7.13 interpreter. See Nuke
as a Python Module for more information.
Tip: You can also run an interactive Python session on the command line with nuke -t.
USER GUIDE
1228
Using the Script Editor | Opening the Script Editor
To hide the output or input pane, click the Show input only or Show output only button on
top of the Script Editor.
To show both panes again, click the Show both input and output button .
Entering a Statement
To enter a statement in the Script Editor:
1. Click on the input pane of the editor to insert the cursor there.
USER GUIDE
1229
Using the Script Editor | Entering a Statement
2. Type in your statement. To use the usual editing functions, such as copy and paste, right-click on
the editor and select the desired function.
When entering the statement, you’ll notice that any words that are Python’s keywords (such as
print and import) turn green, while strings (basically, anything in quotation marks) become either
red or cyan. Comments are shown in yellow.
If you like, you can change these colors and the font on the Script Editor tab of the Preferences
dialog. To open the preferences, press Shift+S.
Tip: You can also use auto-complete to help you with entering Python statements. Start
writing a command and press the Tab key. If there’s only one way to end your command,
Nuke auto-completes it straight away. If there are several possible completions, Nuke gives
you a pop-up menu listing them. If there’s no known way to complete your command,
nothing happens. Even if your command is automatically completed, it is not executed
automatically, just in case you don’t like surprise side effects.
3. If your statement includes several lines or you want to enter several statements at once, press
Return to move to the next line.
4. To execute the statement, click the Run the current script button on the top of the Editor, or
press Ctrl/Cmd+Return.
Tip: You can also execute statements by pressing Ctrl/Cmd+Enter on the numeric keypad.
By default, successful statements disappear from the input pane, and appear in the output pane.
However, if you want all statements to stay in the input pane after they are executed, you can do the
following:
1. Press Shift+S to open the Preferences dialog.
2. Go to the Script Editor tab.
3. Uncheck clear input window on successful script execution.
4. Click Close to save the preference for the current project only, or Save Prefs to save the
preference for the current and future projects.
If you enter an invalid statement, Nuke produces an error in the output pane of the Script Editor,
leaving the invalid statement in the input pane. Correct the statement and execute it again until you
get it right.
USER GUIDE
1230
Using the Script Editor | Moving Through and Clearing the Script History
Note: Sometimes you may get an error if you copy and paste statements into the Script
Editor from another source, like an e-mail. This may be caused by the mark-up or encoding
of the source you copied the statement from. To fix the problem, re-enter the statement
manually.
If you want to have all executed Python commands appear in the output pane of the Script Editor,
open the Preferences dialog (press Shift+S), go to the Script Editor tab, and check echo all
commands to output window. This applies to both commands executed by yourself and by Nuke.
For example, if you select a node from the Toolbar, the corresponding Python command is displayed
in the output pane. This does not apply to all actions you take in the graphical user interface,
however, but only those that are performed by executing Python script commands.
To only execute part of a script, enter the script in the input pane and select the part you want to
execute. Press Ctrl/Cmd+Return. Nuke runs the selected part of the script, leaving the script in the
input pane.
To repeat a statement, click the Previous Script button on top of the Editor to move back to the
previous statement. You can do this until you reach the statement you want to repeat. To execute the
statement again, press Ctrl/Cmd+Enter.
USER GUIDE
1231
Automating Procedures | Saving Statements in a Python Module
Automating Procedures
Okay, so you know how to use the Script Editor to type in a sequence of Python statements that take
care of a procedure. But so far, you’ve still sat by your computer typing the statements in. It’s time to
automate the procedure. All you need to do is save your statements, and when you want to use them
again later, import them into the Script Editor.
1. On the top of the Script Editor, click the Save a script button .
2. Save the script with the extension .py (for example firstmodule.py) in a directory that is contained
in the sys.path variable. (To see these directories, enter print sys.path in the Script Editor. To add
a directory to the sys.path variable, enter sys.path.append ("directory") where directory
represents the directory you want to add.)
1. Click the Load a script button . on top of the Script Editor. The Script to open dialog opens.
2. Navigate to the Python module that contains the script you want to open and click Open.
Nuke opens the script in the input pane of the Script Editor, but does not execute it.
1. On top of the Script Editor, click the Source a script button . The Script to open dialog
opens.
2. Navigate to the Python module that contains the script you want to import and click Open.
OR
USER GUIDE
1232
Automating Procedures | Importing and Executing a Python Script
import module
Where module represents the name of your Python module without the file extension, for example:
import firstmodule
Nuke imports the Python module and performs the procedure defined in the module.
Note: Importing the module is done according to Python’s default rules. During the import,
the module is searched in the following locations and order:
1. In the current directory.
2. In the directories contained in the PYTHONPATH environment variable, if this has been
defined. (To view these directories, enter echo $PYTHONPATH in a command shell.)
3. In an installation-dependent default directory.
During the search, the variable sys.path is initialized from these directories. Modules are
then searched in the directories listed by the sys.path variable. To see these directories,
execute the statement print sys.path in the Script Editor.
USER GUIDE
1233
Nuke as a Python Module | Importing and Executing a Python Script
Note: Foundry cannot provide customer support for third-party Python interpreters.
Tip: You can also use relative paths to the directory containing the usrlocal.pth file.
2. At the Python prompt, use the import nuke declaration to make Nuke’s Script Editor functions
and commands (such as nuke.nodes.Blur() to add a Blur node) available in your chosen Python
interpreter.
The import nuke function checks-out a nuke_r render license by default. If you want to use Nuke
interactively, and you have a nuke_i license, set the NUKE_INTERACTIVE environment variable to 1.
See Environment Variables for more information on setting environment variables.
For more information on using Nuke as a Python module, select Help > Documentation from Nuke's
menu bar and navigate to Python Developers Guide > Nuke as a Python Module.
USER GUIDE
1234
Getting Help | More Documentation
Getting Help
In the scope of this user guide, it’s not possible to go into detail with Python and all the scripts
available. However, there are several sources of more information that you may find useful if you
need help using Python.
More Documentation
In the Python Developer’s Guide, you’ll find everything you need in terms of Python examples and
ways of using Python for various purposes in Nuke. You’ll find the Python Developer’s Guide when
you click Help > Documentation > Python Developers Guide in Nuke.
You may also want to read the Nuke Python API reference documentation under Help >
Documentation > PythonScriptingReference.
/Applications/Nuke11.3v5/Nuke11.3v5.app/Contents/MacOS/plugins/nukescripts
• On Linux:
/usr/local/Nuke11.3v5/plugins/nukescripts
To view an example, select one of the .py files and open it in any text editor.
help (nuke)
USER GUIDE
1235
Getting Help | Python on the Web
This statement lists many of the available Python commands in an alphabetical order together with
their descriptions.
You can also get help on more specific things. For example, the following statement gives you a
description of what the setValue() method does:
help (nuke.Knob.setValue)
USER GUIDE
1236
Timeline Editing in Nuke Studio
Nuke Studio's timeline is designed to provide shot management, conform, and playback capabilities
for people creating visual effects and delivers visual effects sequences without resorting to other third
party applications. These are the topics covered:
• Using Tags tells you how to quickly sort or filter source clips and shots for better visibility,
organization, and export.
• Viewing Metadata describes how to examine extra clip data and filter your project to find the
footage you need.
• Conforming Sequences describes the process of matching up the footage from a shoot with the
required edit decisions to create a meaningful timeline.
• Managing Timelines describes the timeline interface and how to add and manage footage on
timelines.
• Soft Effects tells you how to add real-time GPU effects to timeline shots.
• Create Comp explains the difference between comps and regular shots and how to create and
manage them.
• Annotations allow you to add editorial comments to your timeline output, enabling collaborative
work between Nuke Studio and other Nuke workstations.
• Timeline Editing Tools describes how you manipulate your shots directly in the timeline using a
series of modal editorial tools that complement the Multi Tool.
• Versions and Snapshots describes how to record the different states of your workflow as you
progress using versions and snapshots.
• Exporting from Nuke Studio deals primarily with Nuke Studio's shot management and export
functionality when you're farming out shots or sequences to other artists. It also deals with presets,
which dictate how Create Comp passes data between the Timeline and Compositing environments.
USER GUIDE
1237
Using Tags
Tags are used by Nuke Studio to quickly sort or filter clips and shots for better visibility, organization,
and export. Tags are used to mark shots of a particular type or content as you organize your project.
The default tags supplied include Approved, Note, Reference, and other general purpose tags. You
can also create custom tags by right-clicking in the Tags tab or by pressing Ctrl/Cmd+Y. You can apply
tags to clips, shots and Comp shots, individual frames, sequences, and tracks.
Clip and shot tags and notes can be added to exports using the burn-in feature. See Adding Burn-in
Text to Exports for more information.
Tags can also be converted to Final Cut Pro or Premiere markers during export to XML. See Exporting
EDLs and XMLs for more information.
Quick tags are accessible from bins, spreadsheets, Viewers, and timelines for single or multiple
selections.
1. Select the target clips or sequences.
2. Right-click a highlighted selection, go to Tags, and choose the required action, dependent on
context.
For example, bin items only allow you to Tag Selection, whereas shots allow you to Tag Shot
Selection, Tag Tracks, or Tag this Sequence
Once you’ve selected the tag type, the Add Tag dialog displays.
3. Select the icon to represent the tag using the Icon dropdown.
4. Enter a Name and Note as required.
5. Click Add to mark your selections with the chosen tag.
USER GUIDE
1238
Using Tags |
USER GUIDE
1239
Tagging Using the Viewer |
Depending on whether you’re looking at a clip or sequence, drop the tag on Tag this frame, Tag
whole clip, or Tag whole sequence as required.
Tags applied to frames appear above the playback tools in the Viewer frame slider.
Tip: You can use Alt+Shift+left and right arrows to skip to the previous or next tag on the
current clip. You can also reposition tags by dragging them along the Viewer timeline.
USER GUIDE
1240
Tagging Shots |
Tagging Shots
To apply a tag to a shot on the timeline:
1. Click the Tags tab, or navigate to Window > Tags.
The Tags panel displays.
2. Drag-and-drop the required tag from the Tags panel to the timeline.
Depending on where the tag is dropped, you’ll mark a shot (or items if you make multiple
selections) or a track.
Tags applied to shots appear on the right of the selected item(s) on the timeline.
Tags applied to tracks appear in the track header on the left of the timeline.
USER GUIDE
1241
Tagging Shots |
USER GUIDE
1242
Adding Notes to Tags |
Warning: To delete a note, don’t click the - button because this refers to the tag. Instead,
simply delete the notes in the window and click outside the note dialog.
1. Add notes to tags by clicking on the required tag and entering text or editing the metadata keys
and values.
The example shows a note and metadata key “Artist” added to a clip tag, but you can add notes to
frame and timeline tags in the same way.
Nuke Studio allows you to “hide” tags using the Python API. Hidden tags are not displayed in the
interface, unless you enable Show Hidden in the Tags popup, but the notes and metadata are still
accessible.
Navigate to Help > Documentation > Hiero Python Developer's Guide for more information on
creating hidden tags.
USER GUIDE
1243
Removing Tags |
Removing Tags
To remove a tag from a frame or shot, click the tag and then click .
You can remove all tags from a source clip or selection of clips by right-clicking your selections in the
bin and choosing Tags > Clear Tags.
To remove a tag from a track or shot, click on a tag icon and select the required tag to remove.
USER GUIDE
1244
Creating Custom Tags |
Tip: You can import your own image for the tag by selecting Custom to open the browser.
USER GUIDE
1245
Sharing Custom Tags | Filtering and Flagging Media Using Tags
Note: If your custom tags use custom icons, save the icon files in the same directory as the
.hrox project.
3. Create a Python file containing the following lines, to direct Nuke Studio to the shared location:
import hiero.core
hiero.core.addPluginPath("/SharedDisk/NukeStudio")
4. Save the .py file in the ~/.nuke/Python/Startup/ directory on all the machines running Nuke
Studio that require access to the tags.
The location of the .nuke directory differs by platform. See Loading Gizmos, NDK Plug-ins, and
Python and Tcl Scripts for more information.
5. Launch Nuke Studio and navigate to Window > Tags or switch to a workspace that contains the
Tags tab.
The custom tags are listed under the project name below the standard tags that ship with Nuke
Studio.
There are two types of tag search you can perform: Filter and Flag. Select the desired search type by
clicking the magnifier icon in the Project tab.
• Filter - displays all objects that contain the specified tag. This is the default search method.
• Flag - displays all objects and marks the items that don’t match the search tag.
USER GUIDE
1246
Sharing Custom Tags | Filtering and Flagging Media Using Tags
Drag the required tag from the Tags panel into the search box and select the bin or bins you want to
Filter or Flag.
Tip: If you have more than one search criteria, click the icons in the search box to display a
brief description of the icons.
Filters and flags persist until you change the search criteria or click the x icon in the search
box.
The following examples show Filtering a bin to display only clips with the Notes tag applied and
Flagging all clips that don’t have the Notes tag applied.
USER GUIDE
1247
Viewing Metadata
Metadata is information that describes media content, separate from the clip itself, in the form of a
table on the Metadata tab. Types of metadata include Duration, File Size, and the Path to the
location of the source media.
To view metadata for a shot, select the Metadata tab in the timeline panel and click on the item to
examine.
Tip: You may have to add the Metadata tab manually by clicking the icon and selecting
Window > Metadata.
USER GUIDE
1248
Filtering and Flagging Media Using Metadata |
3. Use the metadata key as a filter or flag as described in Filtering and Flagging Media Using Tags.
USER GUIDE
1249
Conforming Sequences
Conforming describes the process of matching up the footage from a shoot with the required edit
decisions to create a meaningful timeline. Nuke Studio accepts sequences either from EDLs (edit
decision lists), AAFs (advanced authoring format), or Final Cut Pro XML files from a specified directory
structure containing the source media files. Nuke Studio attempts to conform the media, warning you
if there are missing media.
Nuke Studio conforms EDLs into single tracks, and AAFs and XMLs into multi-track timelines. You can
either conform into a brand new timeline, or into an existing timeline by adding new tracks. For
example, when conforming multiple EDLs into the same timeline, you would add new tracks for each
EDL sequence conformed.
USER GUIDE
1250
Timeline Environment Project Settings |
Note: You can modify Project Settings later on, for example, when you’re ingesting media.
Tip: Click Hrox Directory to automatically enter an expression that evaluates to the .hrox
location.
4. Set the Poster Frame used by Project bin clips or use the default First frame. See Setting Poster
Frames for more information.
5. Click the Sequence sub-menu to set the default Output Resolution, Frame Rate, and Start
Timecode for new timelines in the current project, and set clip formatting when new clips are
added to the timeline.
6. Click the Views sub-menu to set up multi-view or stereo projects. See Stereoscopic and Multi-
View Projects for more information.
7. Click the Color Management sub-menu to manage the display and file colorspaces for this
project.
See Color Management Settings for more information.
USER GUIDE
1251
Timeline Environment Project Settings | Color Management Settings
Tip: Use the options in Preferences > Project Defaults > Color Management to apply
them to all new projects.
8. Click the RED Settings sub-menu to define the Default Video Decode Mode for new R3D files in
the current project. This setting overrides the Preferences > Behaviors > File Handling > default
red clip video decode mode control for existing projects. SeeAppendix A: Preferences for more
information.
Note: Changing this setting does not change the decode setting for R3D media that has
already been imported.
The dropdown contains a sliding resolution scale from FullPremium to SixteenthGood, but bear
in mind that higher resolutions are slower to decode.
9. Lastly, click the Export/Roundtrip sub-menu to select:
• External Media Track Name - sets the default name of the track created when exported media
is brought back into Nuke Studio.
• Export Directory - sets whether the Project Directory, if specified, or a custom directory is
used for exports. If no Project Directory is specified, the project root in the Export dialog is
used.
If you want this setting to apply to all new projects, use the Preferences > Project Defaults >
General panel settings.
• Custom Export Directory - when Export Directory is set to custom, enter the required custom
export directory.
• Shot Preset - sets the default preset to use when you select Create Comp from the timeline.
See Create Comp for more information.
Depending on the OCIO config file that you are working with, there are a number of colorspace
options and roles (aliases to colorspaces) that you can set in Nuke Studio. There are also default
options, which change depending on what file type you are working with. When the default option is
selected, the colorspace that Nuke Studio has set for it is listed in brackets.
USER GUIDE
1252
Timeline Environment Project Settings | Color Management Settings
Tip: Use the options in Preferences > Project Defaults > Color Management to apply
them to all new projects.
1. Set the OpenColorIO Config you want to use for this project.
Nuke Studio ships with a number of default configurations, but you can:
• use a custom OCIO config file by selecting custom from the OpenColorIO Config dropdown
and then entering the file path, or
• add your own config to your .nuke file. See Adding OCIO Configurations for more information.
Changing the configuration updates the Default Color Transforms accordingly. If the selected
configuration is invalid for certain transforms, a warning displays. For example, if you choose the
shipped iff configuration, the 8-bit and 16-bit transforms are not compatible.
In this case, the non-compatible transforms are set to the raw colorspace.
2. The Working Space transform determines what colorspace files should be converted to, on
import, and from, during export - it's the colorspace used by the Timeline environment under the
hood.
USER GUIDE
1253
Timeline Environment Project Settings | Adding OCIO Configurations
Note: In earlier releases of Nuke Studio, this colorspace was hidden because linear was
always chosen as the Working Space. You may find that some operations work better in
colorspaces other than linear. For example, some transforms work better in the CLog
colorspace.
3. You can use Default Color Transforms dropdown menus to override how clips in the Viewer,
thumbnails, and so on are converted to and from the Working Space.
4. The Nuke Script Project Settings dropdown determines whether Nuke Studio uses the LUTs
read from the configuration specified or the Nuke native LUTs during export. Selecting OCIO
makes the relevant OCIO LUTs available to the Read and Write nodes in scripts on a per project
basis.
All configurations except nuke-default automatically switch this control to OCIO.
When the Nuke is selected, Reads and Writes work the same as in previous versions of Nuke, with no
integrated OCIO transforms. When OCIO is selected:
• Reads and Writes use OCIO transforms, with no Nuke built-in LUTs applied to the image.
• Read and Write colorspace controls are populated with the list of colorspaces defined in your
currently selected OCIO config.
• The default LUT settings dropdowns are also populated with the list of colorspaces or display
transforms defined in your OCIO config. The default value for each menu match the defaults in a
Nuke Studio project with the same config. These defaults can be overridden using Python callbacks.
See the following path for the default implementation that ships with Nuke:
<install_dir>/plugins/nuke/colorspaces.py
• The working space dropdown allows you to change the colorspace that Nuke uses internally for its
image processing. This automatically sets the in colorspace of Write nodes and Viewer Processes,
and the out colorspace for Read nodes. This defaults to the scene linear role defined in your OCIO
config.
• Nuke Studio-created comps no longer contain automatically injected OCIOColorspace nodes.
Instead, OCIO Color Management is automatically set in the comp’s Project Settings, and the
correct OCIO colorspace is set directly into the Read and Write nodes.
USER GUIDE
1254
Timeline Environment Project Settings | Adding OCIO Configurations
Note: On Windows, the .nuke folder can be found under the directory pointed to by the
HOME environment variable. If this variable is not set (which is common), the .nuke
directory is under the folder specified by the USERPROFILE environment variable - which is
generally of the form drive letter:\Documents and Settings\login name\ or drive
letter:\Users\login name\
To find out if the HOME and USERPROFILE environment variables are set and where they are
pointing at, enter %HOME% or %USERPROFILE% into the address bar in Windows Explorer.
If the environment variable is set, the folder it’s pointing at is opened.
USER GUIDE
1255
Importing Sequences | Adding OCIO Configurations
Importing Sequences
Nuke Studio allows you to import your EDL, XML, or AAF sequences in one of two ways, depending on
your preferences. Either:
• Navigate to File > Import EDL/XML/AAF, use the browser to locate the EDL, XML, or AAF, and then
select the file and click Open to import the sequence,
OR
• Drag-and-drop the EDL, XML, or AAF files directly from a file browser into the interface.
If you’re importing an EDL, bear in mind that there is no guaranteed frame rate information included
in the file, so an Import Options dialog displays.
1. Select the correct frame rate and use the following check boxes, if required:
• Drop Frame - when enabled, the EDL is assumed to contain drop file information. SeeTimeline
Playback Tools for more information.
• Assume differences in source/destination durations indicate a retime - when enabled, any
disparity between the source clip (Src) and shot (Dst) duration is treated as a retime.
2. Click OK to import.
XMLs and AAFs imported into Nuke Studio support transform, crop, and retime edit decisions
implemented in third-party applications, such as Adobe Premiere, Apple Final Cut Pro, and Avid
Media Composer. The information in the .xml or .aaf is interpreted using soft effects, such as
Transform and Crop. Non-linear retimes are represented by TimeWarp effects. Constant linear
retimes are handled in the same way as in previous versions of Nuke Studio. See Notes on AAF
Sequences for more information.
USER GUIDE
1256
Importing Sequences | Adding OCIO Configurations
Note: Non-linear animation curves from .xml may not appear as expected when imported.
As a result, you may need to adjust the handles on curves to match footage between
keyframes in the Curve Editor or Dope Sheet.
Additionally, Premiere Pro .xml exports only support constant, linear retimes. As a result,
retimed shots on the Nuke Studio timeline may not match those on the Premier Pro
timeline, because certain non-linear retime data is not written into the exported .xml file.
After importing the EDL, AAF, or XML the Conforming workspace displays and the spreadsheet and
timeline are populated with offline clips - media with an unknown location.
Note: The Event column represents the clip’s position on the timeline, not its event number
from the edit.
Notice that clicking entries in the spreadsheet highlights the corresponding shots on the timeline?
USER GUIDE
1257
Importing Sequences | Adding OCIO Configurations
The spreadsheet, timeline, and Viewer are linked together when viewing sequences. If suitable screen
real estate exists within the current workspace, double-clicking a sequence forces the associated
panel to open automatically. If you want to close a single panel in a linked group, hold the Alt
modifier while closing the linked panel, otherwise all panels in the group are closed.
Note: If you imported an XML sequence, you may find that Nuke Studio has automatically
matched media for you.
Any transform, crop, or retime edit decisions from third-party software .xml and .aaf files are
represented using soft effects. These effects are imported along with the shot to which they're
associated.
USER GUIDE
1258
Importing Sequences | Notes on AAF Sequences
Nuke Studio's TimeWarp effect only supports frame to frame mapping, which means that frame to
speed retimes from .aaf files requires some curve-fitting to describe the required retime. As a result,
the keyframes generated in Nuke Studio don't match those in Avid, but the resulting curve should
match the original very closely.
Note: Nuke Studio currently only supports Fixed Keyframes from Avid Media Composer.
Tip: If you need to adjust the handles on curves, see Animating Parameters for more
information.
Nuke Studio's TimeWarp effect supports the following Spline types when importing .aaf files:
• Shelf
• Linear
• Spline
USER GUIDE
1259
Importing Sequences | Notes on AAF Sequences
• Bezier
USER GUIDE
1260
Conforming Sequences | Notes on AAF Sequences
Conforming Sequences
Once your EDL, AAF, or XML sequences are imported, it’s time to begin the conform process to match
the offline shots in your spreadsheet with the source clips on disk. You can conform sequences by
searching on disk or by pre-ingesting the required clips into Nuke Studio.
Note: Projects containing large amounts of movie files (for example .r3d and .mov) may
exceed the number of available file handles per process, causing problems opening new
files or projects and exporting.
You can increase the default limit of 1024 by entering the following command from the
terminal, then running the application from the same session:
ulimit -Sn 2048
USER GUIDE
1261
Conforming Using a Browser | Notes on AAF Sequences
Note: Match Media can also be used on selected events in the Spreadsheet view.
Nuke Studio uses a set of conform Rules and file name Patterns to match candidate media files on
disk to the events, or shots, in a sequence:
• Rules - sets the offline media properties to match to the corresponding spreadsheet entry
during conform.
Rules that rely on information that doesn't exist in the event or candidate clip are ignored, and
some rules compound others to identify a better match.
Rule Description
Umid Match a file’s unique material ID (UMID) – that is written into the file's
metadata on creation – to the candidate media’s UMID. If either, or both, lack
a UMID this rule is ignored.
RedTapeName Match a RED-style camera reel name from the event to the candidate media
USER GUIDE
1262
Conforming Using a Browser | Notes on AAF Sequences
Rule Description
name.
RedName Look for a RED-style camera file name in the event that matches the
candidate media name.
ReelName Look for the event's reel name in the candidate's media name.
FullPath Match the event's entire filepath to the candidate media’s entire filepath.
The Event is the first field in the Spreadsheet view, the order in which shots
appear on the timeline. Candidate media is the media that Nuke Studio is
testing the conform rules against.
FileName Match only the event's file name (no path) to the candidate media’s file name.
FileHead Match the event's file name head (no path, file extension, or padding) to the
candidate media’s file name.
PartialName Look for the event's name in the candidate media’s name and vice versa.
FolderName Look for the event's name in the filepath of the candidate media.
All rules are enabled by default, but you may occasionally need to disable rules if they cause
incorrect matches between a particular edit and set of source clips.
Tip: Use the Select/Deselect All buttons to quickly enable or disable rules.
• Patterns - sets the inclusion and exclusion parameters during the conform, separated by
spaces. For example, *mov *dpx would only include or exclude .mov and .dpx files.
You could also conform by name, such as BR_Shot*, which would only include or exclude
source clip names starting with that string.
Tip: It’s always a good idea to be as specific as possible with search locations during
conforms, but if the need arises, conform Rules and Patterns can save time.
3. Enable Accept best timecode match... to use the nearest source timecode match to conform the
event, if no rules are matched.
4. When Ignore clips with non-overlapping timecodes is enabled, any potentially matching source
clip whose timecode doesn't overlap the shot in question at all is ignored.
USER GUIDE
1263
Conforming Using a Browser | Notes on AAF Sequences
Disabling Ignore clips with non-overlapping timecodes causes Nuke Studio to fall back to the
other selected conform rules, even if the timecodes don't overlap.
5. Check Conform shots that already have media if you want to update all timeline shots. By
default, the application doesn’t try to conform events that are not offline.
6. When Split sequences is enabled, any non-contiguous file sequences found by the conform are
split into separate clips, in the same way as when the split seq option is enabled in the file
browser.
7. Click OK to begin the conform process.
Nuke Studio attempts to conform the edits with the selected media.
A dialog box informs you of the success rate once the conform is complete.
USER GUIDE
1264
Conforming Using a Browser | Notes on AAF Sequences
Note: You can display the conform Rules matched for each spreadsheet object by hovering
the cursor over the required entry.
USER GUIDE
1265
Conforming with Pre-ingested Media | Notes on AAF Sequences
2. Follow the Conform Options instructions described previously to complete the conform process.
If you want to conform a single entry in the spreadsheet, drag-and-drop the media from the bin
view onto the required entry in the spreadsheet.
USER GUIDE
1266
Conforming with Pre-ingested Media | Notes on AAF Sequences
Conforming individual, pre-ingested media doesn’t require Conform Options because Nuke
Studio already knows the exact location of the media and trusts your decision to replace a shot.
USER GUIDE
1267
About the Media Spreadsheet | Sorting and Custom Columns
After conforming, you can use the spreadsheet to locate source clips or replace shots in the timeline,
as well as massage timecodes if they are invalid.
Note: Any source or destination field highlighted in yellow indicates that the entry has been
rounded down for display purposes.
See Managing Timelines for more information on importing tracks and reference media.
Tip: Nuke Studio's Project panel search functionality extends to the spreadsheet, allowing
you to enter strings and apply searches on all or partial matches with the option to include
metadata searches. Nuke Studio searches for items that match any of the input string and
displays only those items by default. See Sorting and Searching Media for more information.
USER GUIDE
1268
About the Media Spreadsheet | Spreadsheet Controls
Spreadsheet Controls
There are also a number of controls, accessed by clicking the cog icon, that determine the
spreadsheet’s appearance and behavior.
• Select Matching Name - when enabled, selecting an item in the spreadsheet highlights all items
with the same name.
• Select Linked - when enabled, selecting an item in the spreadsheet highlights other items linked to
it, such as audio tracks ingested with video tracks.
• Display Speed As - sets the unit used in the Speed column of the spreadsheet. Select either fps
(frames per second) or % (the percentage of the media frame rate).
• Retime method - sets the type of Speed retime applied on the timeline.
• Time Edit Behaviors - sets how source and destination In, Out, and Duration are calculated.
SeeRetiming Shots for more information on retime methods and Timeline Editing Tools for
source/destination calculations.
You can locate, display, reconnect, or rename shots directly from the spreadsheet.
• Hold Alt and click an entry to move the playhead to the shot’s In point on the timeline.
• Hold Alt and double-click an entry to move the playhead to the shot’s In point on the timeline and
zoom to fit the timeline view.
• Right-click a spreadsheet entry and select the required option:
USER GUIDE
1269
About the Media Spreadsheet | Spreadsheet Controls
• Open In - the associated source clip opens in the selected location, such as a Viewer.
• Project View - the associated source clip is highlighted in the bin view.
• Reconnect Media - attempt to reconnect the media from a specified location on disk, such as
when the source was originally on a drive that is no longer connected.
• Replace Clip - replaces the selected entry with a specified source clip. Nuke Studio assumes that
any source clip you choose is acceptable, regardless of timecode.
• Delete - deletes the selected entries from the spreadsheet and timeline.
• Tags - allows you to add tags to your selection directly from the spreadsheet view. See Using
Quick Tags for more information.
• Localize - allows you to control the localization of clips, tracks, and sequences from the
spreadsheet. See Localizing Media for more information.
• Effects - provides access to Create Comp and soft effects directly from the spreadsheet. See
Create Comp andSoft EffectsSoft Effects for more information.
USER GUIDE
1270
Adjusting Timecodes | Spreadsheet Controls
Adjusting Timecodes
You can easily adjust single or multiple event timecodes:
1. Select the invalid entry or entries in the spreadsheet.
2. Double-click in the Src In column.
3. Adjust the timecode as required. You can enter absolute or relative timecode values:
• Absolute - absolute timecodes contain eight digits and specify the new timecode for the event,
regardless of the current timecode.
Example Result
01054321
• Relative - uses + and - values to alter the timecode relative to its current value. You can also use
h, m, and s to denote hours, minutes, and seconds.
-110 01:05:42:11
+10000 01:06:43:21
-6m 00:59:43:21
Note: Timelines start at 01:00:00:00 by default, but you can change this to any value using
the Sequence panel.
USER GUIDE
1271
Adjusting Timecodes | Spreadsheet Controls
If you’re not sure what the timecode should be, you can:
• Hover the mouse over the target entry in the spreadsheet to view a timecode tooltip.
OR
• Examine the source clip’s metadata and calculate the correct Src In:
1. Right-click the required entry and select Project View.
2. Right-click the clip in the bin and select Open In > Metadata View, or press Alt+D.
The selected clip metadata is displayed in a floating pane.
USER GUIDE
1272
Adjusting Timecodes | Spreadsheet Controls
USER GUIDE
1273
Renaming Shots on the Timeline | Spreadsheet Controls
To rename shots:
1. Select the shots to rename using the timeline or spreadsheet view.
2. Right-click on the timeline and select Editorial > Rename Shots.
Tip: You can also navigate to Timeline > Rename Shots or use the Alt+Shift+/ keyboard
shortcut.
Note: You can only use sequences that reside in the same project and shots that have
overlapping frame ranges.
• Clip Name - all shot names are replaced by the name of the source clip they reference. This
option can be used to revert previous rename operations.
USER GUIDE
1274
Renaming Shots on the Timeline | Spreadsheet Controls
• Change Case - the case of all shot names is changed, as specified by the Case dropdown. For
example, selecting Title Case capitalizes the first character of each word.
4. Rename operations also accept token substitutions. The following tokens are recognized:
Token Resolves to
{clip} The name of the source clip referenced by the target shot.
{event} The EDL event number associated with the target shot.
{fps} The frame rate of the sequence containing the rename target.
5. Enable Include Clips From Audio Tracks to rename audio shots as well as video shots.
6. Click Rename.
The selected shots are renamed as specified.
USER GUIDE
1275
Saving and Loading Projects | Spreadsheet Controls
If you quit the application without saving, you’ll be prompted to save or discard your changes:
Note: If you have a .nk script open in the same session, a second prompt is displayed so
you can save your script as well.
To save a project:
1. Navigate to File > Save Project or Save Project As...
OR
Use the Ctrl/Cmd+S or Shift+Ctrl/Cmd+S keyboard shortcuts respectively.
The Save Project dialog box displays.
2. Browse to the save location and enter a name for the project.
3. Click Save.
Your project is saved to the location specified and appends the .hrox file extension automatically.
To load a project:
1. Navigate to File > Open Project.
Tip: If you need to open a project that you worked on recently, you can select Open Recent
Project to quickly locate your work.
OR
Use the Ctrl/Cmd+O keyboard shortcut.
The Open Project dialog box displays.
2. Browse to the file location and click Open.
Your project opens and populates the necessary panel automatically.
USER GUIDE
1276
Autosaved Projects | Spreadsheet Controls
Autosaved Projects
The autosave function creates a temporary project save file at 5 minute intervals, but you can adjust
force project autosave after in the Preferences > General dialog. See Appendix A: Preferences for
more information.
At startup, the application scans for autosaved projects and displays a prompt if autosaves exist.
Opening a project also uses the autosave functionality. If the autosave is more recent than the saved
project file, a prompt displays:
Click Yes to load the autosave file or No to load the original project file.
Note: Clicking No does not delete the autosaved project in this case.
USER GUIDE
1277
Managing Timelines
Timelines contain video and audio shots that reference the source clips in your project. Once the
conform process is complete, the timeline displays your clips in context and enables you make finer
edits. Timelines can contain any number of video sequences and audio tracks with each track
containing shots that reference the source clips in your project - making changes to shots in the
timeline does not affect the original source clip.
Nuke Studio also features real-time soft effects on the timeline and the ability to add shots containing
.nk scripts. See Soft Effects and Create Comp for more information.
Note: Conformed EDLs only support one video sequence. If you’ve created multiple EDLs
from the same edit, you can add each one into the timeline using the right-click New Track
> New Track(s) from EDL/XML option or the Import Track button in the spreadsheet tab.
See Adding Tracks to the Timeline.
• Video Toggles - quickly turn off and on video tracks during playback. Hold Alt and click to solo the
selected track. You can also enable and disable track blending and masking. See Blending Tracks on
the Timeline for more information.
• Disk Caching Controls - click and hold to display the disk caching options for the current timeline.
See Caching Frames in the Disk Cache for more information.
USER GUIDE
1278
Managing Timelines |
• Timecode - displays the timecode or frame number depending on the Time Display mode selected.
You can adjust the scale using the Scale Slider or by using the mouse wheel.
• Playhead Position - displays the playhead location synchronized with the contents of the Viewer.
• Video Tracks - contain all video sequences for the current timeline.
• Audio Tracks - contain all the audio clips for the current timeline.
• Audio Toggles - quickly mute audio or set the track output during playback to left, right, or mono.
• Track Lock - secure the selected track to disable all editing tools.
Tip: Selecting tracks while holding Ctrl/Cmd allows tools to affect multiple tracks at once,
such as locking, disabling, and resizing tracks.
Video tracks in multi-track timelines are read from the highest number track downward, for example
Video 3, Video 2, Video 1. As a result, if video is present on track 3, video on track 2 in the same time
slice is obscured.
In this example, although the playhead crosses clips on two video tracks, only the clip in Video 3 is
displayed in the Viewer.
Audio tracks, on the other hand, play back simultaneously - all the audio tracks crossed by the
playhead in the example play back together, creating a complete audio backing for the video.
USER GUIDE
1279
Managing Timelines |
Tip: Enabling Preferences > Panels > Timeline > show frame end marker draws an extra
line on the timeline to the right of the playhead, indicating the end of the current frame.
USER GUIDE
1280
Adding Tracks to the Timeline |
3. Use the browser to locate the EDL, AAF, or XML files, select the file(s) and click Open to import the
sequence.
Note: If you’re importing EDLs, bear in mind that there is no guaranteed frame rate
information included in the file. Select the correct frame rate then click OK in the dialog
supplied.
USER GUIDE
1281
Adding Tracks to the Timeline |
OR
• Right-click in the timeline and select New Track > New Video Track or New Audio Track.
USER GUIDE
1282
Adding Tracks to the Timeline |
Note: You can also collapse and expand existing tracks using the right-click Editorial menu,
and resize the track header to accommodate longer track names.
USER GUIDE
1283
Adding Clips to the Timeline |
Tip: You can create a new sequence by dragging a clip to an empty timeline pane.
New timelines pick up their frame rate from the Project > Edit Settings > Sequence sub-menu by
default. Dropping a clip with a different frame rate on a new timeline displays a warning:
However, if the timeline is already populated and the clip you’re adding doesn’t have the same frame
rate as the timeline, you’re prompted to choose whether the clip’s duration or frame count is
retained.
Take care not to overwrite existing shots - the most recent clip overlays any existing shot. To avoid
this, do one of the following:
• Move the playhead to the target area of the timeline in the record Viewer , load the required clip
in a source Viewer , and then use Insert (N) or Overwrite (M) to place the clip into the timeline
at the playhead position on the lowest, unlocked track available.
Note: You can only Insert or Overwrite using clips from the current project.
USER GUIDE
1284
Adding Clips to the Timeline |
See Insert, Overwrite, and 3-Point Editing for more information on source/record editing.
• Use the Multi or Move/Trim tools to make space for the new clip and then drag-and-drop it in to
the space (see Using the Move/Trim Tool for more information).
• Drag-and-drop the new clip at the end of the sequence, then using the Multi or Move/Trim tools,
drag the new clip to an existing transition, hold down the Alt modifier, and drop the clip to Ripple
all other shots down the timeline.
USER GUIDE
1285
Adding Clips to the Timeline |
Tip: Enabling Preferences > Panels > Timeline > show frame end marker draws an extra
line on the timeline to the right of the playhead, indicating the end of the current frame.
USER GUIDE
1286
Audio and the Timeline |
Note: Although you can import and edit multi-channel audio, during playback audio is
mixed to 48 KHz stereo output.
Note: Nuke Studio does not currently support any QuickTime audio on Linux. Support for
audio on Linux is scheduled for a later release.
When both Viewer inputs contain clips, the audio output is set by the orange marker in the color
picker information bar, displayed by clicking . In the following example, input A is providing the
audio output:
The volume slider in the upper-right corner of the Viewer controls the output level for that Viewer
only.
Audio output for shots can be toggled between left, right, and mono using the audio toggles in the
track header. Click on the icon to cycle between outputs:
USER GUIDE
1287
Audio and the Timeline |
You can also control audio on a per track and per shot basis. Audio track headers and shots have
independent volume controls in the timeline and Properties tab.
• Track headers - click and hold the mute icon on the header to display the volume slider.
• Shots - select an audio shot and click on the Properties tab to display the Volume control.
Tip: You can control the volume on multiple shots simultaneously by holding Ctrl/Cmd and
selecting the required items before adjusting the volume slider.
USER GUIDE
1288
Audio and the Timeline |
The Preferences > Panels > Viewer (Sequence) sub-menu contains audio controls allowing you to
control the volume level for all new Viewers. See Appendix A: Preferences for more information.
Note: If the frame rate drops too low, audio is automatically muted and the speaker
changes to the no audio playback icon.
USER GUIDE
1289
WAV Shots |
WAV Shots
Audio can be recorded at the same time as shooting the video or it can be unrelated to the shoot, for
example sound effects or music. You can add .wav clips to the timeline in two ways:
• Drag-and-drop - drag your .wav clip to a timeline audio track and drop it in to place.
• Navigate to File > Import File(s) or Import Folder(s).
Tip: You can also use the Ctrl/Cmd+I and Ctrl/Cmd+Shift+I keyboard shortcuts.
Use theTimeline Editing Tools to move the clip into place and set its output.
USER GUIDE
1290
Displaying Audio Waveforms |
Audio shots are manipulated in the same way as video shots, so using waveforms in conjunction with
the Timeline Editing Tools on page 1389 enables you to quickly synchronize audio and video events.
Audio shots also support Fade In, Fade Out, and Dissolve transitions in the same way as video. See
Adding Transitions for more information.
You can toggle the waveform display on and off by right-clicking in the timeline and selecting View >
Audio Waveforms. You can also control how the waveform appears, when enabled. Open the
Preferences and navigate to Panels > Timeline to toggle between full and half waveforms.
Displaying waveforms in audio-heavy projects can cause significant slow down on the timeline, so
Nuke Studio includes a preference to limit how much system memory is available for waveform
display. In the Preferences, navigate to Performance > Caching > Audio Waveforms and set the
waveform memory control to the required amount.
USER GUIDE
1291
Audio Scrubbing |
Audio Scrubbing
Nuke Studio's timeline supports audio scrubbing, allowing you synchronize audio and video more
easily while scrubbing the playhead. Audio scrubbing is enabled by default, but you can disable it by
right-clicking in the timeline tab and clicking Audio > Audio Scrubbing or by pressing
Ctrl/Cmd+Alt+S.
Audio shots cache temporarily to increase responsiveness during scrubbing. If you need to clear the
audio cache, navigate to Cache > Clear Audio Cache.
Note: Audio scrubbing is not currently available through monitor output cards. Audio
scrubbing is only supported through internal audio output devices.
USER GUIDE
1292
Synchronizing Audio and Video |
Note: Latency adjustments can take a few seconds to affect the audio track.
1. Mark a portion of the timeline containing the target audio and video shots using In and Out
markers.
USER GUIDE
1293
PulseAudio on Linux | Stopping PulseAudio
PulseAudio on Linux
PulseAudio on Linux distributions has been linked with fluctuating frame rates due to the latency
when retrieving audio samples. If detects that your setup is running PulseAudio alongside the
application, a warning message displays.
Stopping PulseAudio
You can disable PulseAudio for the current user or all users on a machine. To stop the daemon, do
the following:
Note: PulseAudio restarts automatically when you restart you machine, but you can prevent
this by navigating to System > Preferences > Startup Applications and disabling the
PulseAudio Sound System.
1. Open the ~/.pulse/client.conf file to disable PulseAudio for the current user,
OR
Open the /etc/pulse/client.conf file to disable PulseAudio for all users.
2. Set the following attribute and ensure the line is not commented out:
autospawn = no
3. Call pulseaudio --kill to end the PulseAudio process.
4. Call ps -e | grep pulse to check the process stopped correctly.
Note: Ending PulseAudio while other applications are running may disable audio output.
Stop and start the application to re-enable audio output. Additionally, the desktop audio
slider may be removed.
USER GUIDE
1294
PulseAudio on Linux | Restarting PulseAudio
Restarting PulseAudio
To start the PulseAudio daemon, do the following:
1. Open the ~/.pulse/client.conf file to enable PulseAudio for the current user,
OR
Open the /etc/pulse/client.conf file to enable PulseAudio for all users.
2. Set the following attribute and ensure the line is not commented out:
autospawn = yes
3. Call pulseaudio --start to start the PulseAudio daemon.
4. Call ps -e | grep pulse to check the process started correctly.
USER GUIDE
1295
Using Reference Media | Restarting PulseAudio
To import reference media, click Set Reference Media and use the browser to locate the required
file.
The reference media is automatically imported into Reference tracks, pushing existing tracks
outward, and marked with the Reference Media tag.
After importing the reference media, use the show/hide icon or A/B input tools to compare the
current timeline against the reference clip. SeeComparing Media for more information.
USER GUIDE
1296
Comparing Media | Restarting PulseAudio
Comparing Media
The Viewer A/B tools allow you to quickly compare media using the two Viewer input buffers. Select a
clip, sequence, shot or track and press 1 or 2 to place your selection in the Viewer input buffers. You
can also drag-and-drop items into the input buffers using the Viewer hotspots.
Note: The Viewer currently treats all alpha channels as premultiplied, which can result in
the Viewer background being “added” to the image. If you’re working with un-premultiplied
images, set the Viewer background to Black. See Appendix A: Preferences for more
information.
When the Viewer input buffers contain sequences, the A and B dropdowns control what is displayed
in the Viewer using track names and tags. Selecting a track or tag from the dropdown displays the
selected media in the Viewer.
Use the wipe, stack, horizontal, and vertical modes to control how the buffers are displayed in the
Viewer.
Note: If you're working in a multi-view project, using stereo footage for example, you can
set which view is output in the A and B buffers using the Views buttons over the Viewer. See
Displaying Views in the Viewer for more information.
USER GUIDE
1297
Comparing Media | Restarting PulseAudio
The wipe and stack modes also allow you to blend the two buffers together, and in the case of wipe
mode, provides a handle in the Viewer to quickly wipe between the two inputs.
The color picker overlay displays a description of the contents of the A and B inputs, or No Clip
when there is no clip at the playhead, for instance, when there is a gap in a timeline or if a track is
disabled.
The orange triangle in the overlay denotes the clip currently supplying audio and timecode
information in the Viewer.
USER GUIDE
1298
Caching Frames in the Playback Cache | Restarting PulseAudio
The white bar under the Viewer represents the contents of the playback cache, a full bar indicating
that the entire clip or timeline is currently accessible from RAM, optimizing playback. You can:
• Temporarily disable caching using the pause button above the Viewer, or use the P keyboard
shortcut.
There are also a number of Preferences that affect how much RAM is available and when caching
should occur. To set the caching behavior:
1. Navigate to Nuke > Preferences (OS X) or Edit > Preferences (Linux and Windows),
OR
Use the Preferences keyboard shortcut Shift+S.
2. Select Performance > Caching and set the total RAM cache available using the playback cache
size field.
Note: You can't set this to a value higher than 80% of the memory available (rounded down
to the nearest half-GB). For example, if you have 6 GB of memory available, the maximum
cache size available 4.5 GB.
3. You can enable free timeline playback RAM to discard any frames cached to RAM (the white bar
in the timeline Viewer) when you switch to the Node Graph within Nuke Studio, freeing the RAM
for use in Nuke.
Note: When you switch back to the timeline, the cached files are re-cached, which can be
time consuming.
USER GUIDE
1299
Caching Frames in the Playback Cache | Restarting PulseAudio
4. Enable pause caching when the application goes to the background to pause playback
caching when the application loses focus.
When you click back into Nuke, caching picks up from where it stopped.
5. Enable clear cache when the application goes to the background to flush the playback cache
when the application loses focus.
When you click back into Nuke, caching starts again from the position of the playhead.
USER GUIDE
1300
Caching Frames in the Disk Cache | Restarting PulseAudio
Note: Frames are always cached at the sequence resolution, regardless of source clip
format and Viewer proxy settings.
You can cache whole sequences, selections of clip ranges, and frame ranges specified using In and
Out points. Files in the disk cache are frames identical to what you see rendered in the timeline
Viewer, written into .exr sequences, and saved in NUKE_TEMP_DIR/TimelineCache by default.
Tip: You can find the location of Nuke's general cache directory from within Nuke by hitting
X on your keyboard, when the focus is on the Node Graph, and then running the following
Tcl command:
getenv NUKE_TEMP_DIR
Cached frames are represented in the timeline by the state of the timeline cache icon:
Cached frames are represented in the Viewer with an orange bar, under the RAM cache bar, which is
white by default.
USER GUIDE
1301
Caching Frames in the Disk Cache | Restarting PulseAudio
See Caching Sequence Ranges, Caching Selected Shot Ranges, and Caching In/Out Ranges for more
information.
You can set the cache directory location, size of the timeline cache, and type of EXR compression used
by:
• Clicking and holding the timeline cache icon and selecting Cache Settings, or
• Opening the Preferences and navigating to Performance > Caching.
USER GUIDE
1302
Caching Sequence Ranges | Restarting PulseAudio
Hiero can only cache one sequence at a time, either from the timeline itself, the Cache menu, or the
Project bin:
Tip: You can pause caching at any time by navigating to Cache > Disk Cache > Pause in the
menu bar.
• Select the required sequence in the timeline tab, click and hold the icon, and then select Cache
Sequence Range.
• Select the required sequence in the timeline tab and then select Cache > Disk Cache > Cache
Sequence Range from the menu bar.
USER GUIDE
1303
Caching Sequence Ranges | Restarting PulseAudio
• In the Project bin, right-click the sequence you want to cache, and then select Cache > Cache
Sequence Range.
See Clearing Cached Frames for information on how to clear frames from the disk cache.
USER GUIDE
1304
Caching Selected Shot Ranges | Restarting PulseAudio
Tip: You can pause caching at any time by navigating to Cache > Disk Cache > Pause in the
menu bar.
As a result of this, you may not get the frames you expect. For example, caching the shot in the image
produces frames from the three shots on the highest track, including the soft effect, not the selected
reference media.
You can cache clip ranges from the timeline itself or from the Cache menu:
• Select the required clip range in the timeline tab, right-click and then select Disk Cache > Cache
Selected Shot Ranges.
USER GUIDE
1305
Caching Selected Shot Ranges | Restarting PulseAudio
• Select the required clip range in the timeline tab and then select Cache > Disk Cache > Cache
Selected Shot Ranges from the menu bar.
See Clearing Cached Frames for information on how to clear frames from the disk cache.
USER GUIDE
1306
Caching In/Out Ranges | Restarting PulseAudio
Tip: You can pause caching at any time by navigating to Cache > Disk Cache > Pause in the
menu bar.
After setting In and Out points, you can cache that range from the timeline itself or from the Cache
menu:
• Right-click in the timeline tab and then select Disk Cache > Cache In/Out Range.
• Select Cache > Disk Cache > Cache In/Out Range from the menu bar.
USER GUIDE
1307
Caching In/Out Ranges | Restarting PulseAudio
See Clearing Cached Frames for information on how to clear frames from the disk cache.
USER GUIDE
1308
Clearing Cached Frames | Clearing All Cached Frames
Clearing Sequences
Instead of using the Clear All option, you can clear certain sequences within a project. You can clear a
sequence from the timeline itself, the Cache menu, or the Project bin:
• Select the required sequence in the timeline tab, click and hold the icon, and then select Clear
Sequence Range.
USER GUIDE
1309
Clearing Cached Frames | Clearing Sequences
• Select the required sequence in the timeline tab and then select Cache > Disk Cache > Clear
Sequence Range from the menu bar.
• In the Project bin, right-click the sequence you want to clear, and then select Cache > Clear
Sequence Range.
USER GUIDE
1310
Clearing Cached Frames | Clearing Selected Shot Ranges
USER GUIDE
1311
Clearing Cached Frames | Clearing In/Out Ranges
• Select the required clip range in the timeline tab and then select Cache > Disk Cache > Clear
Selected Shot Ranges from the menu bar.
After setting In and Out points, you can clear that range from the timeline itself or from the Cache
menu:
• Right-click in the timeline tab and then select Disk Cache > Clear In/Out Range.
USER GUIDE
1312
Clearing Cached Frames | Clearing In/Out Ranges
• Select Cache > Disk Cache > Clear In/Out Range from the menu bar.
USER GUIDE
1313
Viewing Multi-Format Timelines | Clearing In/Out Ranges
Reformatting applied to shots on a timeline carry over into any export, including Create Comp. The
reformat options in the Export dialog are applied after the transforms applied here. See Exporting
from Nuke Studio for more information.
USER GUIDE
1314
Viewing Multi-Format Timelines | Setting the Sequence Format
Tip: Enabling the Custom Sequence Format guide at the top of the Viewer makes it easier
to see differences between output resolution and shot format.
Similarly, setting the Output Resolution to a format smaller than the shot's native resolution results
in the clip resolution being larger than the sequence resolution.
Shots with a higher resolution than the sequence format enable you to apply soft effects, such as
Transform, more easily. See Soft Effects for more information.
USER GUIDE
1315
Viewing Multi-Format Timelines | Reformatting Shots
Reformatting Shots
Shots on the timeline retain the source clip's resolution by default. You can force shots to the
sequence format using the timeline's Properties tab:
1. Select the target shots on the timeline.
2. Click the Properties tab to display the shot options.
Note: The Volume control is only available when you have an audio shot selected.
USER GUIDE
1316
Viewing Multi-Format Timelines | Reformatting Shots
• Distort - scales the original until all its sides match the lengths specified by the format. This
option does not preserve the original aspect ratio, so distortions may occur.
Tip: When Clip Reformat is To Sequence Resolution, disabling center places the clip at
the bottom-left of the Output Resolution, rather than the center.
USER GUIDE
1317
Refreshing and Replacing Shots | Reformatting Shots
Though all four options deal with reloading shots, each has a particular use dependent on context:
• Reconnect Media - allows you to redirect the file path when the source file location changes.
• Replace Clip - replaces the selected shot with a specified source clip. Nuke Studio assumes that any
source clip you choose is acceptable, regardless of timecode.
• Refresh Clips (F8) - allows you to reload the shot when the source file location has not changed,
such as when work has been done on the clip offline. Selecting refresh only refreshes the clip’s
current frame range.
• Rescan Clip Range (Alt+F5) - similar to Refresh Clips, above, but rescan also checks for additional
frames that may have been added to the source file and adds them to the shot’s frame range.
• Set Soft Trims - sets the files handles on the selected clip(s). SeeSetting Soft Trims for more
information.
USER GUIDE
1318
Setting Soft Trims | Reformatting Shots
• Use full available range - sets the handles to the full extent of the source clip frame range.
• Use Frames - adds the specified number of frames to the head and tail of the shot(s).
4. Click OK to add the specified number of handles.
If the handles requested are not within the available frame range, a warning dialog displays with a
suitable correction for each selected shot.
USER GUIDE
1319
Setting Soft Trims | Reformatting Shots
Note: With shots used in multiple sequences, click Yes to All to accept the correction in all
instances.
USER GUIDE
1320
Enabling and Disabling Shots | Reformatting Shots
Tip: You can also use the D keyboard shortcut to disable or enable your selection.
Disabled items appear gray, and are effectively removed from the timeline.
3. Right-click the item and select Enable Clip, or press D again, to re-enable the clip.
USER GUIDE
1321
Adding Transitions | Reformatting Shots
Adding Transitions
Nuke Studio supports basic video and audio fade transitions as well as dissolves between shots on
the same track. Transitions come in three flavors:
• Fade in - fades in from black on a single shot.
• Fade out - fades out to black on a single shot.
• Dissolve - fades out from one shot and into the next, by merging frames.
Tip: Once a transition is in place, it can be nudged in the same way as an edit using the ,
(comma) and . (period) keyboard shortcuts, providing the required handles exist.
USER GUIDE
1322
Adding Transitions | Reformatting Shots
Note: You can only add dissolves between shots when they're on the same track and have
sufficient handles available on both sides of the transition.
1. Select the Multi Tool or Roll Edit tool and hover the mouse pointer over an edit between two
shots.
Tip: Clicking and holding the edit point displays available handles as a red overlay.
2. Right-click and select Editorial > Add Transition > Dissolve or Audio Crossfade, or use the
Ctrl/Cmd+T keyboard shortcuts, to add the dissolve icon to the edit.
3. Adjust either side of the dissolve by dragging the icon, in a similar way to using the Multi Tool or
Move/Trim tool.
USER GUIDE
1323
Invalid Transitions | Reformatting Shots
Invalid Transitions
Transitions are controlled in a similar way to shots, in that you can drag-and-drop them, but with the
following restrictions:
• A fade can not be dragged past the ends of the shot it's attached to, and if the item is deleted, the
fade is deleted with it.
• Dissolve ends can not be dragged past the ends of the shots they are attached to, and if both items
are deleted, then the dissolve is also deleted.
If only one of the shots linked by the dissolve is deleted, the transition remains so that another item
can be placed on the other side.
Invalid transitions are colored red on the timeline. In most cases, adjusting the length of the
transition should be enough to correct the error.
USER GUIDE
1324
Retiming Shots | Reformatting Shots
Retiming Shots
In addition to transitions, Nuke Studio supports constant retimes on shots. Decreasing the speed of a
shot causes frames to play more than once, whereas increasing the speed skips frames.
Note: Audio is not currently supported for retimes and is automatically muted to avoid
playback problems.
The following example shows a shot and the results of 50% and 200% retimes with the Keep source
duration and Keep timeline duration methods selected.
Notice that the Keep timeline duration method doesn’t change the length of the shot on the
timeline and inserts blank filler frames on the 200% retime?
USER GUIDE
1325
Retiming Shots | Reformatting Shots
Original clip
You can also retime shots using the Src, Dst, and Duration columns of the spreadsheet, though the
calculation method depends on the Time Edit Behaviors applied.
1. Select the event(s) in the spreadsheet view.
2. Click the cog icon and select the required Time Edit Behaviors:
Src In Retime Adjusts the event’s Src In and retimes the remaining frames to maintain
Dst Duration.
USER GUIDE
1326
Retiming Shots | Reformatting Shots
Src Out Retime Adjusts the event’s Src Out and applies a retime to maintain Dst
Duration.
Src Dur Retime Adjusts the event’s Src Dur and Src Out, and applies a retime to maintain
Dst Duration.
Dst In Retime Adjusts the event’s Dst In and retimes the remaining frames to maintain
the relationship between Dst In and Out.
Dst Out Retime Adjusts the event’s Dst Out and retimes the remaining frames to
maintain the relationship between Dst Out and In.
USER GUIDE
1327
Retiming Shots | Reformatting Shots
Dst Dur Retime Adjusts the event’s Dst Dur and Dst Out, and applies a retime to
accommodate the new Dst Duration.
3. Adjust the values as required to retime the shot(s) by the specified amount.
Note: Any source or destination field highlighted in yellow indicates that the entry has been
rounded down for display purposes.
USER GUIDE
1328
Using Freeze Frames | Reformatting Shots
Note: Freeze Frames can also be created using the spreadsheet retime modes to modify
Src Dur to 0, or make Src In and Src Out equal.
3. The selection is retimed to 0% and colored blue on the timeline for easy identification.
4. Use the Multi Tool or Slip Clip to set the freeze frame from the available range.
5. Drag the item’s edit points, using the Multi Tool or Move/Trim as required, to set the length of
the shot. There’s no upper limit for the length of a freeze frame shot.
USER GUIDE
1329
Blending Tracks on the Timeline | Adding New Blend Tracks
See the Nuke Online Help for a full description of the available blend modes.
Note: The Viewer currently treats all alpha channels as premultiplied, which can result in
the Viewer background being “added” to the image.
You can add soft effects to blended tracks as normal (see Soft Effects for more information) and
blended tracks are included along with the shot in Export operations. See Exporting from Nuke
Studio and Create Comp for more information.
USER GUIDE
1330
Blending Tracks on the Timeline | Converting Tracks to Blend Tracks
A new track is added at the top of the track stack, colored blue to indicate that it's going to be
blended over the track below.
2. Add the required shot to the blend track as you would any other shot. See Adding Clips to the
Timeline for more information.
3. Click and hold the Blend icon to select the blend mode.
USER GUIDE
1331
Blending Tracks on the Timeline | Masking Blended Tracks
The selected track is converted into a blend track, colored blue to indicate that it's going to be
blended over the track below.
2. You can add shots to the blend track as you would any other shot. See Adding Clips to the
Timeline for more information.
The Viewer displays the higher track blended with the track below.
3. Click and hold the Blend icon to select the blend mode.
USER GUIDE
1332
Blending Tracks on the Timeline | Masking Blended Tracks
See the Nuke Online Help for a full description of the available blend modes.
Click the Mask icon to toggle alpha masking on and off. The mask option also carries over into the
Node Graph when you Create Comp for a masked blend operation:
Comp of A over B using the multiply merge The same comp using the multiply merge
operation with masking disabled. operation, but with masking enabled.
USER GUIDE
1333
Stereoscopic and Multi-View
Projects
Nuke Studio provides multi-view support for as many views as you need. The views do not have to be
stereo pairs, but since that is the most obvious application, these pages mainly deal with stereoscopic
projects. See Creating Views in a Project and Importing Source Clips for more information.
Existing views inside a project are managed in the Viewer, timeline, and in the Properties panel of
most soft effects. In the Viewer, all views in the current project are represented by buttons that allow
you to switch between views with a single click. See Displaying Views in the Viewer for more
information.
The timeline employs a views button that allows you to switch between views per track. See
Displaying Views in the Timeline for more information.
USER GUIDE
1334
Stereoscopic and Multi-View Projects |
The Properties panel includes a split button for controls that support multiple views. Split
controls only affect individual views. See Applying Changes to Selected Views for more information.
You can create comps or export multi-view shots and effects in a similar way to regular shots. See
Exporting Multi-View Source Clips for more information.
USER GUIDE
1335
Creating Views in a Project | Creating and Managing Views
3. If you want to remove the view called main and add views called left and right, click the Set up
views for stereo button. The two views are assigned colors. To change the colors, double-click on
the color field and select another color from the color picker that opens.
4. Enable Use colors in UI to apply the selected color for each view to the associated button above
the Viewer.
USER GUIDE
1336
Creating Views in a Project | Creating and Managing Views
You can add and remove views using the + and - buttons or move views using the up and down
arrows above the views panel.
Each view has its own button above the Viewer controls.
Tip: If you decide that you only need the main view in the project, click Set up Views for
Mono in the Project Settings.
See Importing Multi-View Clips for information on reading source clips in to Nuke Studio.
USER GUIDE
1337
Importing Source Clips | Importing Single-View Clips
Note: Nuke Studio can assign any shot on the timeline to any view in the project, but stereo
is the most common use case.
Note: You can enable detect views in the file browser to automatically substitute the %V or
%v variable where possible.
USER GUIDE
1338
Importing Source Clips | Importing Single-View Clips
1. Click File > Import File(s) or press Ctrl/Cmd+I to display the file browser.
2. Locate a single-view file, for example pubstitch.left.####.dpx
3. Replace the view name with the %V variable, continuing the example pubstitch.%V.####.dpx
4. Click Open.
Nuke Studio reads in both pubstitch.left.####.dpx and pubstitch.right.####.dpx with the same
Read node, provided that views called left and right exist in the Project Settings.
Note: Mac and Linux operating systems can be case-sensitive or case-insensitive. If your OS
is case-sensitive, you'll need to make sure you use the correct case when naming your left
and right views, as the %v variable can only retrieve the case used in the view name.
Both input images are combined into a single source clip, marked with a icon, which can
display any of the combined views.
USER GUIDE
1339
Importing Source Clips | Importing Single-View Clips
See Displaying Views in the Viewer and Displaying Views in the Timeline for more information.
USER GUIDE
1340
Importing Source Clips | Importing Single-View Clips
All three input images are combined into a single source clip, marked with a icon, which can
display any of the combined views.
See Displaying Views in the Viewer and Displaying Views in the Timeline for more information.
USER GUIDE
1341
Importing Source Clips | Importing Multi-View Clips
USER GUIDE
1342
Displaying Views in the Viewer | Displaying a Particular View
Tip: You can also press the ; (semicolon) and ’ (forward single quote) keys to move between
different views in the Viewer.
Note: Nuke Studio lists the views in .exr files in the order they appear in the clip's header,
so a view named 'left' may not always be the first view displayed above the Viewer.
If your views do not appear in the correct order, you can rearrange them in the Project >
Edit Settings > Views tab. See Creating Views in a Project for more information.
USER GUIDE
1343
Displaying Views in the Viewer | Displaying a Blend Between Two Views
• Side by Side - displays the views side by side at the correct aspect ratio, and adds selection
controls above the Viewer.
• Squeezed Side by Side - displays the views side by side and squeezed to fit the format
horizontally, and adds selection controls above the Viewer.
• Squeezed Above by Below - displays the views above and below each other and squeezed to fit
the format vertically, and adds selection controls above the Viewer.
Note: OpenGL Stereo mode is not supported on Mac due to limitations in macOS and not
supported with AMD GPUs on Linux.
Windows
To enable NVIDIA GPU stereo output:
1. Right-click on the desktop and select NVIDIA Control Panel.
USER GUIDE
1344
Displaying Views in the Viewer | Displaying OpenGL Stereo in Timeline Viewers
USER GUIDE
1345
Displaying Views in the Viewer | Displaying OpenGL Stereo in Timeline Viewers
Linux
To enable NVIDIA GPU stereo output:
1. Open a command prompt and enter:
nvidia-xconfig --stereo=3
Tip: For more information on the nvidia-xconfig utility, please see the man page: man
nvidia-xconfig
Note: OpenGL Stereo mode is not supported with AMD GPUs on Linux.
The first time you select OpenGL Stereo, a warning message is displayed.
Tip: You can disable the warning by enabling Don't show again and clicking OK.
USER GUIDE
1346
Displaying Views in the Viewer | Displaying OpenGL Stereo in Timeline Viewers
Note: Switching to and from OpenGL Stereo mode causes playback to pause. Press play to
resume playback.
USER GUIDE
1347
Displaying Views in the Timeline | Splitting Views to Separate Tracks
Adding a multi-view clip to the timeline groups all views into a single track. All the views in the clip are
assigned a Viewer button. Click the assigned view icon to display the views available in the shot. All
Views are visible by default.
Selecting a particular view for a track in the timeline, such as left, means that only the left view is
visible in the Viewer for that track.
Note: You can also import single-view files manually and then assign them views in the
timeline individually, providing that the views exist in the Project Settings.
USER GUIDE
1348
Displaying Views in the Timeline | Splitting Views to Separate Tracks
The new track names are suffixed with the view name, for example Video1_left, and the views are
assigned appropriately.
Note: If a view exists in the Project Settings, but there's no corresponding view in the source
files, empty placeholder tracks are added.
2. You can change the view assigned to a track by clicking the icon and selecting from the list of
available views.
USER GUIDE
1349
Displaying Views in the Timeline | Splitting Views to Separate Tracks
See Applying Changes to Selected Views for information on adding soft effects to different views.
USER GUIDE
1350
Displaying Views in the Timeline | Splitting Views to Separate Tracks
• Anaglyph - displays the views simultaneously using a red hue for left and green hue for right,
and adds selection controls above the Viewer.
• Flicker - displays both views alternately, and adds selection controls above the Viewer.
USER GUIDE
1351
Applying Changes to Selected Views | Splitting Views to Tracks
2. Right-click the track to which you want to add the soft effect, select Effects and then the required
soft effect. For example, adding a Transform to the left view applies the effect to only the left view
track. See Soft Effects for more details on adding effects to shots.
USER GUIDE
1352
Applying Changes to Selected Views | Splitting Views in the Properties Panel
You can create comps or export multi-view shots and effects in a similar way to regular shots. See
Exporting Multi-View Source Clips for more information.
2. Select the view you want to make changes to using the buttons above the timeline Viewer.
USER GUIDE
1353
Applying Changes to Selected Views | Showing Separate Values for Each View
3. Open the effect’s Properties and click the view button on the right, next to the control you
want to adjust.
4. Select Split off [view name]. For example, to apply changes to a view called left, select Split off
left. You can also split all the effect’s controls by selecting Split all knobs from the right-click
menu.
An eye appears on the split view button . Any changes you make using the control in question
are only applied to the view you chose to split off. Changes to controls that have not been split off
are still applied to all views.
You can create comps or export multi-view shots and effects in a similar way to regular shots. See
Exporting Multi-View Source Clips for more information.
In the example, the left view is split for the saturation control and left and cam3 views are split for
the contrast control.
USER GUIDE
1354
Applying Changes to Selected Views | Unsplitting Views
Note: The * (asterisk) denotes there is more than one unsplit view remaining for the
saturation control and ( ) denotes that the right view is the only unsplit view for the
contrast control.
Unsplitting Views
1. In the effect’s controls, click the view button .
2. Select Unsplit [view]. For example, to unsplit a view called left, you’d select Unsplit left.
The view is unsplit, and all changes you made to individual views are lost.
USER GUIDE
1355
Soft Effects
You can add soft effects to your timeline in any of the workspaces. A soft effect is a real-time effect,
processed on GPU instead of CPU.
You can add custom plug-in or gizmo soft effects to the Add Effect menu using Python. Valid custom
soft effects must have a GPUEngine implementation using DD::Image::Iop::gpuEngine type
functions. For more information see Nuke's NDK Reference Guide.
Soft Effects must also be registered after creation. An example of how to register a plug-in or gizmo
as a custom soft effect is located in:
<install_directory>/pythonextensions/site-packages/hiero/examples/custom_
soft_effect.py
Note: Create Comp and Create Comp Special are not soft effects.
Transform Allows you to translate, rotate, scale, and skew shots from a single control panel.
Mirror Allows you to flip the input image around the center of the format area. A flip on
the x axis mirrors the image vertically. A flop on the y axis mirrors the image
horizontally.
Crop Allows you to cut out the unwanted portions of the image area. You can fill the
cropped portion with black or adjust the image output format to match the
cropped image.
TimeWarp Allows you to slow down, speed up, or even reverse selected frames in a clip
without necessarily altering its overall length. Sequences imported from .xml
and .aff files also support non-linear retimes.
USER GUIDE
1356
Soft Effects |
Grade Allows you to define white and black points by sampling pixels from the Viewer.
For example, you can use this for matching foreground plates to background
plates.
LUT Allows you to uses the OpenColorIO library to load a colorspace conversion from
a file (usually a 1D or 3D LUT) and apply it. You can also load other file-based
transformations, for example an ASC ColorCorrection XML.
CDL Allows you to apply an ASC CDL (American Society of Cinematographers Color
Decision List) grade based on the OpenColorIO Library. For more information,
see http://opencolorio.org
Colorspace Allows you to convert images from one colorspace to another, for example from
Nuke’s native colorspace to other color spaces more appropriate to a given
process or intended display device. This supports RGB, HSV, YUV, CIE, and CMS
formats (and various sub-formats). It can adjust for different primaries, white
point, and different encodings.
ColorCorrect Allows you to make quick adjustments to saturation, contrast, gamma, gain, and
offset. You can apply these to a clip’s master (entire tonal range), shadows,
midtones, or highlights.
You can control the range of the image that is considered to be in the shadows,
midtones, and highlights using the lookup curves on the Ranges tab. However,
do not adjust the midtone curve - midtones are always equal to 1 minus the
other two curves.
Text Allows you to add text overlays on your images. You can simply type in the text
you want to have displayed or use Tcl expressions (such as [metadata values])
or Tcl variables to create a text overlay. Text overlays can also be animated using
animation layers in the Groups tab, so that their properties (such as position,
size, and color) change over time.
Burn-In Allows you to quickly add standard burn-in elements on the timeline. You can
control the color, opacity, font, scale, and so on, as well as use the dropdowns to
determine what element is added from the file or sequence metadata.
USER GUIDE
1357
Soft Effects |
You can also reference custom metadata from shots. For example:
hiero/tags/Approved
Extracts the Approved tag from the shot. You can also append note to include
any notes associated with the tag:
hiero/tags/Approved/note
Note: You must precede spaces and slashes in the tag name with \\
(backslashes) to enable Nuke Studio to process the tag name correctly.
For example:
hiero/tags/Blue\\ Screen/note
You can also add burn-in through the Export dialog, see Adding Burn-in Text to
Exports for more information.
ChromaKeyer Allows you to pull a quick chroma key from green or bluescreen areas of your
footage.
Use the screen color selector to choose a color from the Source input to use as
the blue/green screen color. To remove blue/green spill from the foreground
object, use the despill controls to pick skin tones from the source. Use the
matte parameters to improve the matte.
BlinkScript Allows you to run Foundry's Blink framework on the timeline, enabling you to
write code once and run it on any supported device.
The BlinkScript soft effect supports a subset of the functionality available in the
full BlinkScript node:
• You can't publish your kernels to Groups or Gizmos.
• Due to the way stacks of soft effects are processed in Nuke Studio, the
BlinkScript soft effect only contains one input source and produces only one
USER GUIDE
1358
Soft Effects | Adding Sequence-Level Soft Effects
output.
• Currently, the BlinkScript soft effect only supports eAccessPoint data access,
which means that only one point from the input can be accessed at a time, and
only one point from the output can be written, for each iteration position.
• The following functions are not supported by the BlinkScript effect:
• log10
• round
• rsqrt
• abs for integer types
• modf(a, *b)
• sign
• rcp
• max, min, and clamp for integer types
• median, atomicInc and atomicAdd.
• The only data types supported by the BlinkScript effect are int, float, and bool.
As well as adding soft effects using the spreadsheet view (see next section), the timeline provides
some additional ways to add soft effects. You can either:
USER GUIDE
1359
Soft Effects | Adding Sequence-Level Soft Effects
• Right-click a shot on the timeline, select Effects and then select the soft effect you want to apply, or
• Select a shot on the timeline, click the Add Effect button to the left of the timeline, and then select
the soft effect you want to apply.
Note: You can add a soft effect to multiple shots by selecting the required shots first and
then right-clicking on one of them and selecting the soft effect you want to add. A soft effect
is added to each of the selected shots. You can also add a single soft effect for the whole
track by right-clicking on the track header and then selecting the soft effect you want to add.
Note: TimeWarp effects are only allowed on tracks with clips (and therefore linked to clips).
USER GUIDE
1360
Soft Effects | Adding Sequence-Level Soft Effects
This loads the sequence in the spreadsheet view that you previously opened.
4. Right-click an event from the list in the spreadsheet view and select Effects to open a list of all
available soft effects.
Note: Create Comp and Create Comp Special are the only items in the Effects list that are
NOT a soft effect.
When you insert a soft effect, its properties panel opens automatically. If you have it open, the
effect properties panel displays in the Properties pane. If the Properties pane is not open, the
effect's properties panel appears as a floating dialog.
USER GUIDE
1361
Soft Effects | Adding Shot-Level Soft Effects
Warning: Soft effects added at shot-level, must match the length of the shot on the locked
track. Any soft effect that is trimmed beyond the end of a shot, or a different length from the
shot is marked with red hashing to show that it is invalid.
You can add shot-level soft effects on the timeline, by doing the following:
1. Right-click the shot that you want to add a soft effect to.
2. Select Open In > Timeline View.
3. Click the Effects menu icon and select the soft effect you want to apply. For example, you can
select Grade.
The soft effect is then displayed above the shot as a colored box.
When you close the timeline view of the shot – as it is a shot-level soft effect – the soft effect is
displayed as a colored line within the top of the shot. The color of the line displayed reflects the
highest soft effect added to the shot.
USER GUIDE
1362
Soft Effects | Soft Effect Controls
If you intend to animate soft effect controls using keyframes, you can use the Curve Editor and Dope
Sheet to fine-tune the output. To add the Curve Editor or Dope Sheet to the interface, navigate to
Window and select the required panel.
USER GUIDE
1363
Soft Effects | Editing Sequence-Level Soft Effects
Moving
You can move a sequence-level soft effect by simply clicking and dragging the soft effect to a different
shot, or even onto a different video track.
Copying
Nuke Studio allows you to copy a sequence-level soft effect above the original to create a stack, to a
different track, or to a different sequence. You can also copy a sequence-level soft effect to a shot
open in the timeline view, therefore pasting it as a shot-level soft effect. You can copy a soft effect by
doing the following:
1. Select the soft effect you want to copy by clicking it.
2. Select Edit > Copy (or Ctrl/Cmd+C).
3. Move the playhead to where you want to paste the copy.
4. Select Edit > Paste (or Ctrl/Cmd+V).
Cloning
Nuke Studio allows you to clone a sequence-level soft effect. This copies the soft effect and links it to
the original, which means when one of these is edited, the changes are reflected in the other one. You
can clone a soft effect to a different track or even a different sequence. You cannot clone a soft effect
in different projects.
USER GUIDE
1364
Soft Effects | Editing Sequence-Level Soft Effects
Clones are indicated by a C highlighted in red in the left of the soft effect.
Copying as Clone
You can also copy a sequence-level soft effect as a clone. This means, when you paste a new copy of
the soft effect above a selected shot, it is automatically linked to the original soft effect as a clone.
Therefore, any changes made to either of the cloned soft effects, are reflected in the other.
Decloning
To declone a soft effect, simply click on the clone you want to declone and select Edit > Declone (or
press Alt+Shift+K).
Note: For more information about copying, moving, and cutting soft effects, see Timeline
Editing Tools .
Deleting
To delete a soft effect, simply right-click on it and select Edit > Delete (or press Backspace).
USER GUIDE
1365
Soft Effects | Editing Shot-Level Soft Effects
You can copy and paste the shot-level soft effect on top of the original, creating a stack in the timeline
view. When you close the timeline view, stacked shot-level soft effects are displayed as a single line
within the top of the shot. Nuke Studio allows you to copy a shot-level soft effect, return to the full
sequence, and then paste it as a sequence-level soft effect. You can also paste a shot-level soft effect
to another shot open in the timeline view.
USER GUIDE
1366
Create Comp
In the Timeline environment, you can choose to create a Nuke Comp of a shot to be able to open it in
the Compositing environment. You can then add any necessary compositing work and render out the
script.
You can only create comps from the timeline when the Frame Server is running. You can check the
status of the server in the status bar at the bottom-right of the interface.
Before you create a Nuke Comp, you can choose to change Export settings, and set the required Shot
Preset setting in the Project Settings dialog to get the required result.
It is not necessary to change the Export and Project Settings. If you don't change these settings when
creating a Nuke Comp, the default settings are used.
Note: You can use Nuke Studio's internal Frame Server to take advantage of external slave
machines to process renders faster. See Using the Frame Server on External Machines for
more information.
USER GUIDE
1367
Create Comp | Edit Project Settings
To change the Shot Preset setting in the Project Settings dialog, do the following:
1. Select Project > Edit Settings.
2. Open the Export / Roundtrip section by clicking on it.
3. Use the Shot Preset dropdown to select your required setting.
Note: You can use custom shot presets, but they must contain a Nuke Project File and
Nuke Write Node Content preset to be valid for selection. See Using Local and Project
Presets, Nuke Project File Settings, and Nuke Write Node Settings for more information.
USER GUIDE
1368
Create Comp | Creating and Editing a Comp
4. After selecting the required setting, close the Project Settings dialog.
USER GUIDE
1369
Create Comp | Creating and Editing a Comp
The Nuke Comp is displayed in light red, signifying that the Nuke Comp has not been rendered.
You can choose to render it by either, right-clicking and selecting Render Comp, or by selecting
Render > Render Selected Comp Containers.
Note: You can render all Nuke Comps by selecting Render > Render All Comp Containers.
4. Open the Nuke Comp in the Compositing environment in the same session by double-clicking the
Nuke Comp. You can also open the Nuke Comp in the Compositing environment in the same
session by either right-clicking on the Nuke Comp above the timeline, or in the Project bin and
selecting Open In > Node Graph.
To open the Nuke Comp in a new NukeX session you can either hold Ctrl/Cmd and double-click
on the Nuke Comp, or you can right-click on the Nuke Comp and select Open In > New Nuke
Session.
If you have not set a project root folder up in the Project Setting dialog, Nuke Studio asks you if
you want to save and set a project root folder.
USER GUIDE
1370
Create Comp | Nuke Comp Colors
You can now edit the script and add VFX using any of the tools available in the Compositing
environment. See Using the Compositing Environment.
Light Red This signifies that the comp has not been
rendered.
Dark Red (with OFF) This signifies that the comp is offline.
USER GUIDE
1371
Create Comp | Creating Multiple Shot Comps
USER GUIDE
1372
Create Comp | Creating Multiple Shot Comps
3. The Create Comp dialog displays all the selected clips, and allows you to select a master clip from
the list simply by clicking on it.
The master clip is highlighted yellow.
4. To create one Nuke Comp for all the shots, select the Add a single comp across all shots radio
button. Or, if you want to create a Nuke Comp for each of the selected shots, select the Add a
separate comp for each shot radio button.
When you create a Nuke Comp on multiple shots on a single track, the Node trees are
automatically connected and are displayed in reverse chronological order, as shown below.
USER GUIDE
1373
Create Comp | Create Comp Special
When you create a Nuke Comp on multiple shots across different tracks, the Node trees from the
same track are connected, but the Node trees on different tracks are not connected by default
(see below). You can choose to have them connected using the Create Comp Special settings. See
Create Comp Special for more information.
USER GUIDE
1374
Create Comp | Create Comp Special
You can use this dialog to set the export location, set a version number, define the tracks to
export, filter by tag, and define the range. See Introduction to the Export Dialog for more
information.
3. Select the Nuke script in the Path section of the dialog, and then go to the Content section.
A number of additional controls are displayed. You can use these to specify what your Nuke Comp
includes and how it is created. You can select the Connect Tracks checkbox to connect all the
Node trees – across different tracks – in the Node Graph. See Introduction to the Export Dialog for
more information about these options.
4. After specifying your required settings, click Create Comp.
A dialog appears stating you have changed the export templates. You can choose to keep the
changes by selecting Yes or click No to discard the changes.
The Nuke Comp is displayed in light red, signifying that the Nuke Comp has not been rendered.
You can choose to render it by either, right-clicking and selecting Render Comp, or by selecting
Render > Render Selected Comp Containers.
5. Double-click on the Nuke Comp to open it in the Compositing environment.
USER GUIDE
1375
Create Comp | Enabling and Disabling a Nuke Comp
You can now add VFX using any of the toolsets available in the Compositing environment. See
Compositing with Nuke.
After saving a new version of the Comp, you can update the original Nuke Comp you created. To
version-up the Nuke Comp, do the following:
1. On the timeline, right-click the original Nuke Comp.
2. Select Versions > Version Up.
The Nuke Comp is versioned-up. Depending on your Preferences > Performance >
Threads/Processes > Rendering > background renders setting, the comp may need rendering
manually.
For separate tracks, you can right-click a single track to export all views or select all the per-track
views and right-click.
USER GUIDE
1376
Create Comp | Stereo and Multi-View Comps
If you're using independent files per track, that is without importing multi-view files or using %V
functionality, the separate tracks in the Comp script are not connected by default. If you want the
tracks to be connected in the script, click the cog icon to display the Create Comp dialog and
enable Connect Tracks in the Nuke Project File preset.
USER GUIDE
1377
Create Comp | Stereo and Multi-View Comps
4. Click OK.
A Nuke Comp is created, and placed directly above the original shot on the next available track.
The Nuke Comp is displayed in light red, signifying that the Nuke Comp has not been rendered.
You can choose to render it by either, right-clicking and selecting Render Comp, or by selecting
Render > Render Selected Comp Containers.
Note: You can render all Nuke Comps by selecting Render > Render All Comp Containers.
5. Open the Nuke Comp in the Compositing environment in the same session by double-clicking the
Nuke Comp. You can also open the Nuke Comp in the Compositing environment in the same
session by either right-clicking on the Nuke Comp above the timeline, or in the Project bin and
selecting Open In > Node Graph.
USER GUIDE
1378
Create Comp | Stereo and Multi-View Comps
To open the Nuke Comp in a new NukeX session you can either hold Ctrl/Cmd and double-click
on the Nuke Comp, or you can right-click on the Nuke Comp and select Open In > New Nuke
Session.
If you have not set a project root folder up in the Project Setting dialog, Nuke Studio asks you if
you want to save and set a project root folder.
You can now edit the script and add VFX using any of the tools available in the Compositing
environment. See Using the Compositing Environment.
USER GUIDE
1379
Annotations
Annotations can be used as quick instructions for a compositor to implement in Nuke Studio's
Compositing environment. You can add annotations to a clip, a section marked with in and out
points, or a whole sequence.
Annotations can be exported with a Nuke Comp and can then be viewed and/or deleted in the
Compositing environment. When all the suggested changes have been made to the script in the
Compositing environment, this can be saved as a new comp version and then rendered back to the
Timeline environment. If you want to add new annotations to the rendered Nuke Comp, you can
choose to re-export annotations only.
Workflow
The following steps show an example of Nuke Studio workflow for annotations:
1. In the Viewer, open the Annotations menu.
See The Annotations Menu for more information for more information about it.
2. Add an annotation to a shot(s) at sequence or shot-level, by using the Annotation menu tools.
See Adding Annotations for more information.
3. You can choose to edit a sequence or shot-level annotation after it has been created. See Editing
Sequence-Level Annotations or Editing Shot-Level Annotations for more information.
4. Create a Nuke Comp of the shot with the annotations, ensuring annotations are enabled in the
export settings.
5. Open the Nuke Comp by double-clicking it.
See Viewing Annotations in the Compositing Environment for more information.
6. After the suggested changes are made in the Compositing environment, select File > Save New
Comp Version.
7. Return to the timeline, and version up the Nuke Comp by right-clicking it and selecting Versions >
Version Up.
The Nuke Comp is versioned up. Depending on your Preferences > Performance >
Threads/Processes > Rendering > background renders setting, the comp may need rendering
manually.
8. You can add new annotations to the rendered Nuke Comp by ensuring you select the Clip radio
button and then using the Annotations menu tools.
USER GUIDE
1380
Annotations | The Annotations Menu
9. After adding the new annotations, right-click the rendered Nuke Comp and select Export > Re-
Export Annotations.
10. Open the rendered Nuke Comp by double-clicking it.
11. Double-click the Precomp node to open its properties and version it up. For example, if the file
path has v01.nk at the end, change it to v02.nk. See Re-Exporting Annotations from the Timeline
for more information.
12. Display the Precomp in the Viewer.
Your new annotations are displayed.
The Annotations menu displays down the left side of the Viewer.
Note: Annotations on sequences and shots are only visible when you have the Annotations
menu open.
Adding Annotations
To add an annotation, do the following:
1. After you have opened the Annotations menu, move the playhead on the timeline to where you
want to add your annotation.
2. Click the + (addition) icon.
USER GUIDE
1381
Annotations | Adding Annotations
3. You can choose which level you want to add your annotation to, sequence or shot-level, by
selecting either the Sequence or Clip radio buttons.
When you add an annotation to the clip level, a turquoise line is displayed within the top of the
shot. When you apply an annotation to the sequence level, a turquoise box appears above the
selected section on a separate Annotations track.
4. From the Range dropdown select one of the following:
• Current Item - Applies the annotation to the shot at the current playhead position.
• Current Frame - Applies the annotation to the frame at the current playhead position.
• In/Out Points - Applies the annotation to in and out points that have already been marked on
the timeline.
• All - Applies the annotation to the whole track.
• Custom - When you select this from the Range dropdown, the in and out point fields within the
dialog, become active. You can then use these to set the section that you want your annotation
to appear on.
Note: The timecode displayed in the In and Out fields is derived from the clip's metadata,
not its position in the sequence.
5. When you have set where you want your annotation to appear, click New.
A label is added to the location of your annotations, detailing the clip timecode and name.
You can click and drag this label to place it anywhere in the Viewer.
6. To draw in your annotation, select the paint brush tool from the Annotation menu.
This is highlighted orange when selected.
7. Before drawing in the Viewer, you can set the brush and paint settings:
• Select the brush and/or background color by clicking the paint colors icon .
USER GUIDE
1382
Annotations | Adding Annotations
This opens a color wheel that allows you to select the color and brightness, and an opacity slider
underneath that you can use to set the opacity of the paint.
• Select the paint brush size icon to set the required brush size. You can either use the slider
to drag to your required brush size, or enter it into the brush size field.
Note: You can also edit these settings after drawing by clicking the selection tool in the
Annotations menu, selecting the lines that you've drawn in the Viewer, and then adjusting
the paint brush settings.
8. Click and drag in the Viewer to draw with your selected brush settings.
9. To add text to your annotation, click the text icon in the Annotations menu and then click
anywhere in Viewer to enter your required text.
A text dialog appears allowing you to type your required text, align it horizontally and vertically,
and adjust the text size. You can then click and drag the text box to anywhere in the Viewer.
USER GUIDE
1383
Annotations | Enabling and Disabling Annotations
To remove an annotation from the sequence-level, simply select the turquoise box representing the
annotation you want to move from the Annotation track, right-click and select Edit > Delete (or press
Backspace or Delete on the keyboard).
Note: You can also copy and paste annotations, that were added at sequence-level, between
different sequences.
To move an annotation that was added at sequence level, you can simply click and drag it to the
required location. You can also drag annotations to different track levels.
You can trim an annotation at either end by hovering the cursor over one end of the annotation until
it changes into the trim icon:
Then click and drag to where you want to trim the annotation to.
To edit the actual annotation, you can use the selection tool in the Annotations menu to select the
annotation in the Viewer and move it, delete it, or replace it.
USER GUIDE
1384
Annotations | Editing Shot-Level Annotations
To edit a shot-level annotation, you first need to open the annotated shot as a timeline. To do this:
1. Right-click the shot with the annotation you want edit.
2. Select Open In > Timeline View.
The shot opens in the Timeline View, and the annotation now appears as on a separate level from
the video. To view the annotation in the Viewer, ensure the Annotation menu is open.
To move a shot-level annotation from the Timeline view, hover the cursor over the annotation until it
changes into a move icon:
Then simply click and drag it to where you want to move it to.
You can trim an annotation at either end by hovering the cursor over one end of the annotation until
it changes into the trim icon:
Then click and drag to where you want to trim the annotation to.
To delete the annotation, click the turquoise box and select Edit > Delete (or press Backspace or
Delete on the keyboard).
To edit the actual annotation, you can use the selection tool in the Annotations menu to select the
annotation in the Viewer and move it, delete it, or replace it.
USER GUIDE
1385
Annotations | Viewing Annotations in the Compositing Environment
USER GUIDE
1386
Annotations | Re-Exporting Annotations from the Timeline
The node tree displays in two parts. The top part represents the shot-level settings and the
bottom part represents the sequence-level settings. Depending on where you set your annotation
to be, an Annotations node group is displayed in the node tree.
3. Add an annotation using the brush or text tools in the Annotation menu.
4. Right-click the Nuke Comp, and select Export > Re-Export Annotations.
USER GUIDE
1387
Annotations | Re-Exporting Annotations from the Timeline
5. Return to the Nuke script and double-click the Precomp node to open its properties, and version
it up.
For example, if the file path has v01.nk at the end, change it to v02.nk. You can also version up
the Precomp node by doing one of the following:
• Select the Precomp node and press Alt+Up Arrow.
• Select the Precomp node and click Edit > Node > Filename > Version Up.
6. Ensure the Precomp node is connected to a Viewer node.
Your new annotation is now visible in the Viewer.
USER GUIDE
1388
Timeline Editing Tools
The timeline editing tools allow you to manipulate your shots directly in the timeline, in single- or
multi-view projects, using a series of modal editorial tools that complement the Multi Tool. Select the
tool you need for the job and then select a new tool and continue editing.
The timeline editing tools are grouped for convenience - each tool group contains several tools and
you can cycle between them by clicking the tool or using keyboard shortcuts. The editing tools work
the same way in single- and multi-view timelines.
Multi Tool The Multi Tool’s functionality is equivalent to most of the other tools
combined, but doesn’t require modal tool selection.
Move/Trim The Move/Trim tool allows you to manipulate the position of a shot or
its output by adding or removing handles.
Select The marquee Select tool allows you to make multiple selections quickly
by lassoing shots. Hold Shift to add to the selection and Alt to subtract
from the selection.
Selection by The track selection tools allow you to quickly select multiple items
Track depending on the initial selection. For example, the Select Track to
Right tool selects all shots to the right of the target shot, within a single
track.
Slip Clip The Slip Clip tool allows you to shift a shot’s In and Out points by the
same amount and in the same direction, retaining the original duration
but altering the timeline output.
Slide Clip The Slide Clip tool allows you to move a shot in relation to the item
before and/or after the target item, without changing its length or
timeline output.
Roll Edit The Roll Edit tool enables you to roll a single edit within the available
handles, shortening one shot while lengthening the other, but keeping
the overall duration the same.
USER GUIDE
1389
Timeline Editing Tools |
Ripple Edit The Ripple Edit tool operates similarly to the trim function of the
Move/Trim tool, except that downstream shots are rippled to
automatically close any resulting gaps in the timeline.
Retime Clip The Retime Clip tool allows you to trim a shot’s In or Out point and
automatically retime the clip to fill the new shot duration.
Razor The Razor and Razor All tools allow you to cut shots in to separate
parts so you can remove sections or rearrange items on the timeline.
Join The Join tool can only be used on edit points between two razored
shots, denoted by the yellow arrows at the edit.
Tip: Enabling Preferences > Panels > Timeline > show frame end marker draws an extra
line on the timeline to the right of the playhead, indicating the end of the current frame.
The modal editorial tools are mapped to the Q, W, E, R, and T keyboard shortcuts when the timeline
is the active tab.
Note: For a full list of keyboard shortcuts, please see Appendix B: Keyboard Shortcuts.
Pressing a keyboard shortcut multiple times selects the tools within each mode. For example,
pressing E twice, rapidly in succession activates Slide Clip. Pressing them slowly in succession does
USER GUIDE
1390
Timeline Editing Tools |
not achieve the same result, but instead, remains on the first item in the menu. This allows you to
activate a tool without knowing the current state of tool selection.
• mapped to Q, cycles through Multi Tool, Move/Trim, and Select.
• mapped to W, cycles through Track Selection tools.
• mapped to E, cycles through Slip Clip and Slide Clip.
• mapped to R, cycles through Roll Edit, Ripple Edit, and Retime Clip.
• mapped to T, cycles through Razor, Razor All, and Join.
USER GUIDE
1391
Using the Multi Tool |
The Multi Tool’s functionality is equivalent to most of the other tools combined, but doesn’t require
modal tool selection:
• Move - placing the mouse in the center of a shot activates the tool. Drag the selected shot to the
required position on the timeline.
• Trim - placing the mouse at the left or right of the shot activates the tool. Drag the edit point to the
new position and release the mouse to complete the trim.
USER GUIDE
1392
Using the Multi Tool |
See Using the Razor and Join Tools for more information.
USER GUIDE
1393
Using the Move/Trim Tool | Moving Shots
Moving Shots
Click and drag the selected shot(s) to the required position on the timeline. A time count popup, in
conjunction with the snap to edit function, helps you to reposition the shot(s) accurately.
You can also move shots up and down the track hierarchy using drag-and-drop or the Alt+, (comma)
and Alt+. (period) keyboard shortcuts.
USER GUIDE
1394
Using the Move/Trim Tool | Moving Shots
The following table describes the Move/Trim tool’s modifiers and actions:
Overwrite drag-and-drop The default move mode. The dragged shot overwrites
any items that are present in the move location.
Ripple drag then hold Alt and Drag-and-drop shots on top of other items without
drop overwriting content - items are pushed down the
timeline to accommodate the move.
Duplicate hold Alt and drag then Copy the shot, then drag-and-drop on top of other
release Alt and drop items overwriting existing content - items are not
pushed down the timeline to accommodate the move.
Ripple and hold Alt then drag and Copy the shot, then drag-and-drop items on top of
Duplicate drop while holding Alt others without overwriting content - items are pushed
down the timeline to accommodate the move.
USER GUIDE
1395
Using the Move/Trim Tool | Moving Shots
Ripple Shift + Backspace Remove the selected shot(s) and ripple items down stream to
Delete close gaps in the timeline.
If you need to nudge shots horizontally by just a frame or two, you can select the items on the
timeline and press , (comma) to nudge it left or . (period) to nudge it right. Press Shift+, (comma) or .
(period) to nudge the shot horizontally by the FrameIncrement set under the Viewer.
Note: You cannot overwrite other shots on the timeline horizontally using the nudge keys.
However, vertical nudging (Alt+, and Alt+.) overwrites other tracks.
Dst In Move Adjusts the event’s Dst In and Out by the same amount, moving the
Destination shot’s position on the timeline by the specified amount, while
maintaining Speed.
Dst Out Move Adjusts the event’s Dst Out and In by the same amount, moving the
USER GUIDE
1396
Using the Move/Trim Tool | Trimming Shots
3. Adjust the Dst In or DstOut to move the shot(s) by the specified amount.
Trimming Shots
Click-and-drag the edit point to the new position and release the mouse to complete the trim.
Tip: Use the Ripple Edit tool, activated by pressing R twice, to ripple downstream shots
automatically.
USER GUIDE
1397
Using the Move/Trim Tool | Trimming Shots
The Viewer displays the new In or Out point (depending on whether you’re adjusting the beginning or
end of the shot), allowing you to accurately gauge the new output.
Note: Trimming multiple shots simultaneously trims each item by the same amount and in
the same direction.
Alternatively, click an edit point and nudge the edit using the Ctrl/Cmd+ßà (numeric pad) keys or
hold Shift to nudge by the Frame Increment set under the Viewer.
By holding Ctrl/Cmd and dragging an edit, you can add blank frames past the end of the shot’s
handles. Blank frames are colored red on the timeline for clarity:
USER GUIDE
1398
Using the Move/Trim Tool | Trimming Shots
Src In Trim In Trims the event’s Src In, Dst In, and durations while maintaining speed.
Src Out Trim Out Trims the event’s Src Out, Dst Out, and durations while maintaining
speed.
USER GUIDE
1399
Using the Move/Trim Tool | Trimming Shots
Src Dur Trim Out Trims the event’s Src Dur, Dst Dur, and Src/Dst Out while maintaining
speed.
Dst In Trim In Trims the event’s Dst In, Src In, and durations while maintaining speed.
Dst Out Trim Out Trims the event’s Dst Out, Src Out, and durations while maintaining
speed.
Dst Dur Trim Out Trims the event’s Dst Dur, Src Dur, and Dst/Src Out while maintaining
speed.
USER GUIDE
1400
Using the Move/Trim Tool | Trimming Shots
3. Adjust the values as required to trim the shot(s) by the specified amount.
USER GUIDE
1401
Using the Selection Tools | Trimming Shots
The marquee Select tool, activated by clicking the tool or pressing Q three times, allows you to make
multiple selections quickly by lassoing shots.
The track selection tools, activated by clicking the tool or by pressing W, selects multiple items
depending on the initial selection:
• Select Track to Right or Left - all shots right or left of the target shot are selected, within a single
track.
USER GUIDE
1402
Using the Selection Tools | Trimming Shots
• Select All in Track - all shots on the target track are selected, regardless of the item selected.
• Select All Tracks Right or Left - all shots right or left of the target item are selected, regardless of
which track they occupy.
USER GUIDE
1403
Using the Selection Tools | Trimming Shots
USER GUIDE
1404
Using the Slip Clip Tool | Trimming Shots
Note: The target shot must have handles to use the Slip tool.
The Slip Clip tool displays different Viewer previews depending on whether the playhead is on the
target shot or not, but the basic principles are the same.
Click the target clip to display the available handles and then drag the shot to the new position.
Release the mouse to complete the slip.
Note: Using the Slip Clip tool does not move the shot on the timeline, only the output is
changed.
Alternatively, nudge the slip using the , (comma) or . (period) keys or hold Shift to nudge by the
Frame Increment set under the Viewer.
Tip: If you’re using the Multi Tool, you can nudge using the “slip bar” by clicking at the
bottom the shot.
The following Viewer previews are displayed, depending on the playhead position:
Note: The Viewer background always displays the playhead’s current position.
USER GUIDE
1405
Using the Slip Clip Tool | Slipping Using the Spreadsheet View
• When the playhead is not currently on the target shot, the Viewer displays the In frame (1) and Out
frame (2), allowing you to accurately gauge the new output.
• When the playhead is on the target shot, the Viewer displays the In frame (1), the current frame (2),
and Out frame (3), allowing you to accurately gauge the output of the shot against the current
frame.
• When the playhead is on the target shot and A/B compare is active, the Viewer displays the target
shot (1) and the reference shot (2), allowing you to synchronize your working track against the
reference track.
USER GUIDE
1406
Using the Slip Clip Tool | Slipping Using the Spreadsheet View
2. Click the cog icon and select the required Time Edit Behaviors depending on whether you’re
using the In or Out point:
Src In Slip Adjusts the Src In and Src Out by the same amount, slipping the event
Source while maintaining speed.
Src Out Slip Adjusts the Src Out and Src In by the same amount, slipping the event
Source while maintaining speed.
3. Adjust the Src In or Src Out to slip the shot(s) by the specified amount.
USER GUIDE
1407
Using the Slide Clip Tool | Slipping Using the Spreadsheet View
The shot either side of the target are shortened or lengthened within the limits of their handles to
accommodate the slide.
Note: The surrounding shots must have handles to use the Slide tool.
Click the target shot and then drag it to the new position and release the mouse to complete the
slide.
For example, if you slide the target shot (2) five frames to the right, the preceding item (1) ends five
frames later and the next item (3) starts five frames later.
The first image shows a timeline containing three shot, and the second shows the same shots with
the target (2) sliding to the right.
USER GUIDE
1408
Using the Slide Clip Tool | Slipping Using the Spreadsheet View
The Viewer displays the new end point of the previous shot on the left and the new start point of the
next shot on the right, allowing you to accurately gauge the slide.
The two center images (2) represent the start and end frames of the target shot, which don’t change.
USER GUIDE
1409
Using the Roll Edit Tool | Slipping Using the Spreadsheet View
Note: At least one of the target items must have handles to use the Roll tool.
1. Click an edit point between two shots to display the available handles as a red overlay.
2. Drag the edit to the new position and release the mouse to complete the roll.
For example, if you roll a number of frames at the end of one shot (1), the next item (2) starts that
number of frames later. The first image shows a timeline containing two shots, and the second
shows the same items with the edit point “rolled” to the right.
USER GUIDE
1410
Using the Roll Edit Tool | Slipping Using the Spreadsheet View
The Viewer displays the pre-edit shot on the left and the post-edit item on the right, allowing you to
accurately gauge the new position of the edit.
Alternatively, click the edit point between the shot and nudge the edit using the , (comma) or . (period)
keys or hold Shift to nudge by the Frame Increment set under the Viewer.
USER GUIDE
1411
Using the Retime Clip Tool | Slipping Using the Spreadsheet View
Click-and-drag the edit point to the new position and release to complete the trim and retime. For
example, trimming a 50 frame shot to 25 frames retimes the clip to 200%.
Alternatively, click an edit point and nudge the edit using the , (comma) or . (period) keys or hold Shift
to nudge by the Frame Increment set under the Viewer.
USER GUIDE
1412
Using the Retime Clip Tool | Slipping Using the Spreadsheet View
Tip: By holding Ctrl/Cmd and dragging an edit, you can retime past the end of the shot’s
handles.
USER GUIDE
1413
Using the Razor and Join Tools | Slipping Using the Spreadsheet View
Place the cursor on the target shot, and if the cut is permissible, click to razor the shot or all shots
depending on which tool you have selected.
Tip: The Razor cursor indicates whether a cut is permissible or not, such as on existing
edits.
You can also apply cuts at the playhead position from the menu bar using Timeline > Razor
Selected, or all tracks using Timeline > Razor All.
Tip: Use the C (with the shot under the playhead selected) and Shift+C keyboard shortcut, or
the right-click context menu, to perform the respective cuts.
The Join tool can only be used on edit points between razored shots, denoted by the yellow arrows at
the edit.
USER GUIDE
1414
Using the Razor and Join Tools | Copying Cuts Between Tracks
To copy cuts:
1. Select the shots containing the cuts to copy, or if you intend to copy all the cuts from a track you
don’t need to make a selection.
2. Right-click in the timeline and select Editorial > Copy Cuts.
The Copy Cuts dialog displays.
USER GUIDE
1415
Using the Razor and Join Tools | Copying Cuts Between Tracks
3. If you made a selection on the timeline, use the dropdown to select Copy All Cuts or Copy
Selected Cuts as required.
This dropdown is not displayed if no shots were selected.
4. Click the From dropdown to select the source track.
5. Check all the destination tracks in the To field to which you want to copy the cuts.
6. Choose whether or not the resulting shots are named identically to the source track.
Selecting None retains the destination clip name.
7. Click OK to copy the cuts to the destination track(s).
USER GUIDE
1416
Insert, Overwrite, and 3-Point Editing | Inserting Clips
Inserting Clips
By default, Insert places the entire contents of the clip Viewer into the timeline at the current
playhead position, on the lowest available track. All shots downstream of the playhead are rippled to
make room for the clip. No items are overwritten or removed.
Note: If the playhead is not positioned at an edit point, or there are shots on other tracks,
the Insert action cuts the shot(s) at the playhead and ripples the cut downstream.
For example, the Post-insert image shows the audio shot being cut and rippled, even though
it doesn’t reside on the same track.
You can select a track before inserting if you don’t want to target the lowest available track. Even if the
target track is empty, shots on all other unlocked tracks are rippled by the same amount.
You can also use In and Out points to control where the clip is inserted and how many frames are
included. See 3-Point Editing for more information.
USER GUIDE
1417
Insert, Overwrite, and 3-Point Editing | Overwrite Edits
2. Double-click your sequence in the bin view to load it into the right-hand sequence Viewer .
3. Double-click the source clip to load it into the left-hand clip Viewer .
4. Place the playhead at the required edit point or timecode and select the target track, if necessary.
5. Navigate to Clip > Insert, or press N, to insert the clip into the timeline.
All shots downstream of the clip are rippled to make room for the duration of the edit.
2. Double-click your sequence in the bin view to load it into the right-hand sequence Viewer .
3. Double-click the source clip to load it into the left-hand clip Viewer .
4. Place an In or Out point on the timeline to determine the clip’s position:
• In point - the source clip is inserted so that the first frame is at the In point specified.
• Out point - the source clip is inserted so that the last frame is at the Out point specified.
5. Navigate to Clip > Insert, or press N, to insert the clip into the timeline.
All shots downstream of the In or Out point are rippled to make room for the duration of the edit.
Overwrite Edits
Unlike inserting, Overwrite does not incorporate downstream ripple and doesn’t alter the length of
your sequence. Any shots you overwrite are destroyed, though they can easily be recovered from the
source clips in the bin view.
You can select a track before overwriting if you don’t want to target the lowest available track.
You can also use In and Out points to control what the clip overwrites and how many frames are
included. See 3-Point Editing for more information.
2. Double-click your sequence in the bin view to load it into the right-hand sequence Viewer .
USER GUIDE
1418
Insert, Overwrite, and 3-Point Editing | 3-Point Editing
3. Double-click the source clip to load it into the left-hand clip Viewer .
4. Place the playhead at the required edit point or timecode and select the target track, if necessary.
5. Navigate to Clip > Overwrite, or press M, to overwrite from the playhead for the duration of the
source clip.
All shots under the source clip are overwritten.
2. Double-click your sequence in the bin view to load it into the right-hand sequence Viewer .
3. Double-click the source clip to load it into the left-hand clip Viewer .
4. Place an In or Out point on the timeline to determine the clip’s behavior:
• In point - the source clip begins overwriting from its first frame at the In point specified
downstream for the duration of the clip.
• Out point - the source clip begins overwriting from its last frame at the Out point specified
upstream for the duration of the clip.
5. Navigate to Clip > Overwrite, or press M, to overwrite from the In or Out point for the duration of
the source clip.
All shots under the source clip are overwritten.
3-Point Editing
Setting the output of a source clip and then editing the clip into a timeline at a specific point is
sometimes referred to as 3-point editing. Using this method, you can insert and overwrite edits in an
existing timeline or quickly construct scratch timelines from your source clips.
Firstly, set the output of your source clip using In and Out points in a clip Viewer, then set the
reference In or Out point on your timeline to determine the clip’s position. Finally, add the clip to the
timeline using Insert or Overwrite.
Tip: You can set both In and Out points on the timeline, but bear in mind that there may be
insufficient source frames for the range specified. If this is the case, blank frames are added
and highlighted in red.
You can select a track before editing if you don’t want to target the lowest available track. When
inserting, even if the target track is empty, shots on all other unlocked tracks are rippled by the same
amount.
1. Navigate to Workspace > Editing to display the 2-up Viewer layout.
USER GUIDE
1419
Insert, Overwrite, and 3-Point Editing | 3-Point Editing
2. Double-click the required source clip to load it into the left-hand clip Viewer .
3. Set the required frame range using In and Out points.
4. Double-click your sequence in the bin view to load it into the right-hand sequence Viewer .
5. Set In and/or Out points on the timeline to specify where the clip should be added and use Insert
(N) or Overwrite (M) as required.
As an example, assuming your clip Viewer and timeline are represented by the following image,
and the Overwrite function is used:
• No In or Out points - insert or overwrite at the current playhead position, for the range
currently set in the clip Viewer.
USER GUIDE
1420
Insert, Overwrite, and 3-Point Editing | 3-Point Editing
• In point but no Out point - insert or overwrite from the In point position downstream, for the
range currently set in the clip Viewer.
• Out point but no In point - insert or overwrite from the Out point position upstream, for the
range currently set in the clip Viewer.
USER GUIDE
1421
Insert, Overwrite, and 3-Point Editing | 3-Point Editing
• In and Out points - insert or overwrite at the current In point position, for the duration set by
the timeline's In and Out points. If there are insufficient source frames for the range specified,
blank frames are added highlighted in red.
USER GUIDE
1422
Versions and Snapshots
In addition to the regular project save and restore options, Nuke Studio can record the different
states of your workflow as you progress using versions and snapshots.
Versions are children of clips. You can have any number of versions per clip as long as they follow
the correct naming conventions, as shown in Using Versions. Versions can only be applied to source
clips and shots and can be swapped in and out without overwriting existing work.
Snapshots are time-stamped copies of a sequence, allowing you to save its current state without the
inconvenience of saving the entire project. When you restore a snapshot, a warning displays prior to
the restore reminding you that edits since the snapshot was taken are lost. See Using Snapshots for
more information.
USER GUIDE
1423
Using Versions |
Using Versions
Versions can be added to source clips and shots to allow greater flexibility in your workflow. You can
have as many versions as required and cycle through them quickly using keyboard shortcuts.
Note: You cannot use versions when a clip is opened as a timeline, that is, by using the
right-click Open In > Timeline View option.
The application relies on specific file naming or folder structure conventions to discover versions:
Clip name The file name base must remain the same. myClip_v1.0001.dpx
myClip_v2.0001.dpx
myClip_v3.0001.dpx
Version prefix The delineation between the file name and myClip_v1.0001.dpx
version information must be either _
(underscore) or . (period) and remain the myClip_v2.0001.dpx
same for all versions. myClip_v3.0001.dpx
myClip_v03.0001.dpx
Frame padding The frame padding in the clip name can be myClip_v1.01.dpx
increased or decreased.
myClip_v1.1.dpx
myClip_v1.0001.dpx
USER GUIDE
1424
Using Versions |
Note: If the file extension is a movie format, such as .r3d or .mov, the Frame padding
can be omitted.
Root folder The root folder name must remain the ~/version/v1/myClip_v1.0001.dpx
same for all folders containing versions.
~/version/v2/myClip_v2.0001.dpx
~/version/v3/myClip_v3.0001.dpx
09_WF_Shot004_v03
USER GUIDE
1425
Versions in Bins |
Versions in Bins
Versions behave similarly in both bins and sequences, and in both cases, you first have to ingest an
existing version.
Tip: You can also use the Alt+Up/Down Arrow keyboard shortcuts to increment versions or
Alt+Shift+Up/Down Arrow to go to the maximum or minimum.
When you reach the end of the discovered versions, incrementing the version automatically scans
for new versions that may have become available.
3. For source clips only, you can right-click the clip and select Open In > Versions Bin to display all
discovered versions of the target clip.
The versioning conventions may allows clips into the Version Bin that you weren’t expecting. You
can disable versions by selecting them and pressing D or by selecting the Set Active Version of a
clip using the right-click Version menu.
The Active Version is the version displayed when you drag the source clip to the timeline,
denoted by the orange V in the top left-hand corner of the thumbnail.
USER GUIDE
1426
Versions in Bins |
4. Once you’ve sorted all the available versions, select a clip in the bin view and press V to display all
versions for that clip in a convenient window. Disabled versions are not displayed.
5. Select the required clip to set the Active Version and apply it to the clip.
USER GUIDE
1427
Versions in Sequences |
Versions in Sequences
As mentioned previously, versions behave similarly in both bins and sequences, but swapping
versions in sequences allows you to compare results more easily.
Note: You cannot use versions when a clip is opened as a sequence, that is, using the right-
click Open In > Timeline View option.
Locate the ingested version clip and drag it to the timeline, right-click and select the Version menu:
• Scan For Versions to locate new versions of the clip.
• Version Up or Version Down to increment the version by one.
• Go to the Minimum or Maximum Version.
Tip: You can also use the Alt +Up/Down Arrow keyboard shortcuts to increment versions
or Alt+Shift+Up/Down Arrow to go to the maximum or minimum.
Once you’ve scanned for versions, select a shot on the timeline and press V to display all available
versions for that item in a convenient window.
USER GUIDE
1428
Using Snapshots |
Using Snapshots
Within a project you can save the current state of a sequence as a snapshot, including a comment or
tag to describe that snapshot. You can see what snapshots exist for a sequence in the bin view and
flip it back to any previously saved state.
1. Two snapshots of the sequence (SQ) are recorded after edits. See Creating Snapshots.
2. Snapshot 1 is then restored. See Restoring Snapshots.
3. Further edits are made, then the sequence is recorded as snapshot 3.
USER GUIDE
1429
Creating Snapshots |
Creating Snapshots
To create a snapshot for a sequence:
1. Locate the sequence in the bin view.
2. Right-click the sequence and select Snapshot > Add Snapshot.
USER GUIDE
1430
Creating Snapshots |
USER GUIDE
1431
Restoring Snapshots |
Restoring Snapshots
To restore a snapshot:
1. Locate the sequence in the bin view.
2. Right-click the sequence and select Snapshot > Restore Snapshot.
3. Select the required snapshot from the list.
A warning displays reminding you that edits since the snapshot was taken are lost.
4. Click OK to restore the sequence to the point at which the snap was recorded.
USER GUIDE
1432
Exporting from Nuke Studio
This section deals primarily with shot management and export functionality when you're farming out
shots or sequences to other artists. It also deals with the presets, which dictate how Create Comp
passes data between the Timeline environment and Compositing environment.
The export suite can transcode, export clip selections from a timeline or bin, write out EDLs and
XMLs, or bake out an entire timeline as a single clip in your required delivery format. The Export
presets are also used to manage how Create Comp sends clips back and forth between Nuke Studio's
Timeline environment and Compositing environment using Local and Project Presets.
Nuke Studio ships with several context-sensitive and ad hoc export options:
• Exporting Sequences and Shots - the process of preparing a sequence or individual shots for export
and paving the way for VFX work to come back into Nuke Studio.
• Transcoding - converts one file format to another. You can transcode sequences, timeline
selections, and clips from the bin view.
• Ad Hoc Exports - an umbrella covering exports that you might not perform on a per project basis,
such as EDL or XML exports.
• Create Comp - edit or create the presets used during Create Comp, passing source clips or shots to
the Compositing environment and sending rendered Write nodes from the Node Graph back to the
Timeline environment.
With the addition of Python bindings to perform the same functions, this infrastructure provides a
massive amount of flexibility, whether your pipeline is GUI or command line orientated.
Note: Nuke Studio is non-destructive and can slot into your pipeline if you setup your shot
template to mirror the existing file structure.
USER GUIDE
1433
Introduction to the Export Dialog |
The Export dialog is accessed from the File menu, from the right-click bin and timeline menus, or by
using the keyboard shortcut Ctrl/Cmd+Shift+E.
The Shot Template is also used to create the presets used during Create Comp, passing shots from
the Compositing environment and sending rendered Write nodes from the Node Graph back to the
Timeline environment.
Nuke Studio uses Content Presets in all shot templates, enabling you to create commonly used
export conditions, which are then available across all projects. Some presets are only available with
certain exporters, for example, the EDL Exporter preset cannot be used with Process as Shots
exports.
USER GUIDE
1434
Introduction to the Export Dialog |
You can filter your exports using the Tracks for this Export and Filter by Tag lists, exporting only
certain tracks or shots marked with a particular tag. See Using Tags for more information.
For your convenience, Nuke Studio ships with a number of ready-made Content Presets, but you can
edit these as required:
• Transcode Images - defines transcode parameters allowing you to save your most-used file type
conversions.
• Nuke Project File - defines the script name and paths used by Nuke Read and Write nodes during a
round-trip or Create Comp.
• Nuke Write Node - defines the render format for Nuke Write nodes. Add multiple Nuke Write Node
presets to create multiple Write nodes in the resulting Nuke script.
• Nuke Annotations File - defines the script name and paths used by Nuke Write nodes and
Precomp group during a round-trip or Create Comp.
• Render with - selects how Nuke Studio renders your export: Single Render Process or Frame
Server. This dropdown defaults to Frame Server using the number of slave processes specified in
the Preferences > Performance > Threads/Processes. If you set this preference to 0, Nuke Studio
relies on external machines set up as render slaves. See Using the Frame Server on External
Machines for more information.
• EDL Exporter - used to export a sequence to the EDL format.
• SymLink Exporter - creates symlinks to the location of the source files, rather than making copies.
• XML Exporter - used to export a sequence to XML format.
• Copy Exporter - creates copies of the source files to a specified location, rather than symlinking.
• Audio Export - copies any audio tracks to .wav files in a specified location.
USER GUIDE
1435
Using Local and Project Presets | Using the Shot Template
Nuke Studio ships with default templates for your convenience, but you can quickly create custom
templates using folders and “tokens”, which are replaced with the relevant information during export.
Tip: Clicking an entry in the shot template displays a preview file path with the tokens
resolved under the Version token number field.
Token Resolves to
{binpath} The bin structure to preserve. Including this token recreates your bin
structure up to the nearest parent bin.
USER GUIDE
1436
Using Local and Project Presets | Using the Shot Template
Token Resolves to
{day} The local weekday name, abbreviated to Mon, Tue, and so on.
{DD} The day of the month as a decimal, 01, 02, and so on.
{event} The timeline event number associated with the shot to process.
{filebase} The base of the clip name to process. For example, the filebase of
Shot01_####.dpx is Shot01_####.
{filehead} The source clip filename not including frame padding or extension.
For example, the filehead of Shot01_####.dpx is Shot01.
{filepadding} The source filename padding, which you might use for formatting
frame indices.
{filepath} The full file path to the source media referenced in the export.
{fullbinpath} The full bin structure to preserve. Including this token recreates the
bin structure up to the project level.
{MM} The month of the year as a decimal, 01, 02, and so on.
{month} The local month name, abbreviated to Jan, Feb, and so on.
USER GUIDE
1437
Using Local and Project Presets | Using the Shot Template
Token Resolves to
{projectroot} The root export file path as specified in the Timeline Environment
Project Settings.
{timestamp} The export start time in the 24-hour clock format (HHMM).
{track} The name of the track to process. Exporting EDLs using this token
generates a separate EDL for each track.
{version} The string v#, defined by the number (#) set in the Version section of
the export dialog
{YY} The year of the century as a decimal, 01, 02, and so on.
Tip: Double-click the path column, right-click, and then choose Select Keyword to display a
list of available export tokens, though only valid tokens for the current selection are listed.
USER GUIDE
1438
Using Local and Project Presets | Custom Shot Templates
Token substrings are valid if you need to extract a certain part of an evaluated string. For example, if
{shot} resolves to JB100, then:
• {shot [0:2] } - resolves to JB
• {shot [-3:] } - resolves to 100
Similarly, anything within the outer brackets is evaluated as a Python string. For example, if {shot}
resolves to JB_10_20, then:
• {shot.split(’_’) [0] } - resolves to JB
• {shot.split(’_’) [2] } - resolves to 20
Multi-format Exports
The following example describes how to build a shot template to export a sequence of .mov clips,
create .dpx and .jpg Write nodes in Nuke, and bring the .dpx clips back into the timeline.
1. In the Export dialog, select Basic Nuke Shot in the Local Presets panel to auto-complete the
shot template with the preset values.
2. Click Duplicate selected preset and give the new preset a name.
3. Rename the renders folder renders_dpx.
4. Select the nuke folder and click the folder icon to add a new folder. Name the new folder
renders_jpg.
Note: The #### marks represent frame numbers for image sequences. If you were creating
.mov clips, they’d be omitted.
USER GUIDE
1439
Using Local and Project Presets | Custom Shot Templates
Note: When using a third party application to produce the VFX work, select
ExternalRender instead of Nuke Write Node.
8. In the Content settings tab, use the File Type dropdown to select jpeg.
USER GUIDE
1440
Using Local and Project Presets | Custom Shot Templates
Notice that the settings available change depending on the File Type selected.
9. Click Nuke Project File in the shot template and check that both Write nodes are enabled.
10. Set up the rest of the export as described in Exporting Sequences and Shots and click Export.
USER GUIDE
1441
Adding Burn-in Text to Exports | Custom Shot Templates
The gizmo contains controls for the font style and fields denoting the position of the text. You can
also add burn-in directly on timeline using the Burn-In soft effect. See Soft Effects for more
information.
Note: The Font field only accepts the full file path and name of the font file to use. For
example, on Mac ~/Library/Fonts/Verdana.ttf
{shot}_comp
Extracts the shot nam from the timeline and appends _comp.
USER GUIDE
1442
Adding Burn-in Text to Exports | Custom Shot Templates
[metadata hiero/tags/Approved]
Extracts the Approved tag from the clip or shot. You can also append note to include any notes
associated with the tag:
[metadata hiero/tags/Approved/note]
Note: You must precede spaces and slashes in the tag name with \\ (backslashes) to enable
Nuke Studio to process the tag name correctly. For example: [metadata hiero/tags/Blue\\
Screen/note]
Tip: If you're not sure what metadata keys and values are available on a shot, you can add a
Text soft effect containing the Tcl expression [metadata values] to display all metadata in
the Viewer. See Soft Effects for more information.
USER GUIDE
1443
Adding Additional Nodes During Export | Custom Shot Templates
You can add nodes to shots, tracks, or sequences, or include them as unconnected ad hoc nodes in
the script, filtered by tags if necessary.
1. In the Content tab, scroll down to the Additional Nodes control and click Edit.
The Additional Nodes Setup dialog displays.
3. Click the Apply To field and select what the current entry applies to:
• Shot - the additional nodes are added to the script for each shot in the export.
• Track - the additional nodes are added to the script for each track in the export.
• Sequence - the additional nodes are added to the script for the entire sequence.
• Unconnected - the additional nodes are added to the script, but are not connected to the
export node tree.
• None - temporarily disables the current entry.
4. Select the Tags that you intend to use to filter which items receive the additional nodes.
If you want to affect only the Reference track, for example, select the Reference tag. All items
without that tag are ignored.
5. Copy and paste a node from the Node Graph into the Script panel.
USER GUIDE
1444
Adding Additional Nodes During Export | Custom Shot Templates
Note: If you need more than one node, you might consider creating a Group in the Node
Graph and pasting that into the Script panel.
USER GUIDE
1445
Using the Frame Server on External Machines | Configuring the Frame Server on External Machines
Note: The Frame Server requires a Nuke Studio license (nukestudio_i) on the main
workstation, but only a Nuke render license (nuke_r) on the slave machines. Local Frame
Server processes use ports 5558-5662.
If you want to use an interactive license (nuke_i) on the slave machines, add the --
useInteractiveLicense argument to the runframeserver.py command described below.
Warning: In order for everything to work smoothly, you need to ensure that both your
external slave machines and main Nuke Studio session can read and write files to a shared
location, such as an NFS share.
Depending on platform this can be done by manipulating your default umask setting, but
be aware that this alters the permissions of the created files.
Additionally, Mac and certain Linux distributions, such as RHEL, can not function as the main
workstation if the firewall is blocking the communication port 5560. You can configure the
firewall to allow certain ports through the firewall using the iptables command, but use
caution when doing so. For example:
USER GUIDE
1446
Using the Frame Server on External Machines | Configuring the Frame Server on External Machines
Please refer to the documentation on firewalls for your particular platform for more
information.
The Frame Server uses a number of worker processes on the external machine, each of which
requires allocated resources, such as threads, memory, and so on. There are a number of arguments
that you must pass to runframeserver.py for the server to work correctly:
• --numworkers - this is the number of concurrent Nuke processes that are launched when you run
this server render node.
• --nukeworkerthreads - the number of threads that each worker is allocated. This is similar to
setting the -m argument when running Nuke from the command line.
• --nukeworkermemory - the amount of memory, in MB, allocated to each frame server worker.
• --workerconnecturl - the TCP port address of the main workstation you want to serve. For
example:
tcp://bob:5560
where bob is the resolved hostname of a machine you wish to serve. You can also use an IP address.
Tip: To ensure that you're entering a valid URL, try using the ping command to see if you get
a response.
Tip: On Windows, if there are spaces in the file path, remember to place the path in quotes.
For example, --nukepath="C:\Program Files\Nuke11.3v5\Nuke11.3.exe"
On a Linux slave machine, an example command prompt entry running from the install directory
might look like this:
./python ./pythonextensions/site-
packages/foundry/frameserver/nuke/runframeserver.py --numworkers=2 --
nukeworkerthreads=4 --nukeworkermemory=8096 --workerconnecturl=tcp://bob:5560
--nukepath=./Nuke11.3
On a Windows slave machine, an example command prompt entry running from the install directory
might look like this:
python.exe pythonextensions\site-
packages\foundry\frameserver\nuke\runframeserver.py --numworkers=2 --
nukeworkerthreads=4 --nukeworkermemory=8096 --workerconnecturl=tcp://bob:5560
--nukepath=Nuke11.3.exe
USER GUIDE
1447
Using the Frame Server on External Machines | Frame Server Logs
In the examples, we specify that the slave uses two Nuke workers, with four threads and 8 GB RAM
each, and are slaved to the main Nuke Studio workstation running on bob.
Tip: If your slave machines run a different OS than your main Nuke Studio machine, you can
use the --remap command line argument to convert file paths between them. The host file
path is read first followed by the slave file path. Nuke Studio expects all file paths to use /
(forward slash) between directories. For example:
--remap "P:/,/mnt/renders/"
converts host paths beginning with P:/ (Windows style) to slave paths beginning with
/mnt/renders/ (Linux style).
You can check that the Frame Server and workers are connected by running the following lines in the
Script Editor on the main workstation:
from hiero.ui.nuke_bridge.FnNsFrameServer import frameServer
print [worker.address for worker in frameServer.getStatus(1).workerStatus]
Successful connections should report something similar to the following in the output panel:
['Worker 0 - henry.local - 192.168.1.11', 'Worker 0 - bob.local -
192.168.1.111', 'Worker 1 - henry.local - 192.168.1.11']
Where henry.local is the name of the remote slave, and bob.local is the name of the main Nuke
Studio session.
Note: If the workers cannot contact the Frame Server, an exception is printed in the Script
Editor's output panel.
USER GUIDE
1448
Using the Frame Server on External Machines | Frame Server Logs
Note: Running the Frame Server using Python, as described above, always writes log files to
the specific OS temporary directory. For example, on Windows C:\temp is used.
Tip: You can use the FRAMESERVER_LOG_DIR environment variable to force Frame Server
logs into a different location. See Environment Variables in the Nuke Online Help for more
information.
USER GUIDE
1449
Exporting Sequences and Shots | Frame Server Logs
The tokens in the Basic Nuke Shot template break down as follows:
• {shot} simply extracts the shot names as they appear in the timeline.
• {shot}_comp{_nameindex}_{version}.nk extracts the shot name for each clip and the version
selected in the Tracks and Handles controls. For example, Shot01_comp_v03.nk
• {shot}_comp{_nameindex}_{version}.####.{ext} appends padding and the specified file
extension. For example, Shot01_comp_v03.0001.dpx
Note: The {_nameindex} token is included to avoid conflicts with non-unique shot names.
Tip: Select a file entry in the shot template to display a preview of the file path with all the
tokens resolved.
5. Proceed to Nuke Project File Settings to determine the Nuke script's behavior.
USER GUIDE
1450
Nuke Project File Settings | Frame Server Logs
1. Click the Nuke Project File Content preset to display the script settings.
2. Select Write Nodes from the dropdown and check which path from the shot template should be
used for the Nuke Write node. For example:
{shot}/nuke/renders/{shot}_comp{_nameindex}_{version}.####.{ext} to resolve the render
path where Nuke Studio expects to find the files when they're rendered.
Note: If you included a Nuke Annotations File Content preset, enable the Annotations
Precomp creator. See Annotations for more information.
3. If you're exporting retimed media, set how you want the Nuke script to handle the retime:
• None - no retime is applied.
• Motion - vector interpolation is used to calculate the in between frames. This is the most
accurate retime method, but takes longer to render.
• Frame - the nearest original frame is displayed.
• Blend - a mix between two frames is used for the in between frames. This is quick to render and
is useful when tweaking the timing in the Curve Editor before setting the method to Motion.
4. Soft Effects added to shots in your export are included in the resulting Nuke script by default. If
you don't need the soft effects, disable Include Effects to omit them from the script. See Soft
Effects for more information.
5. Select the required Reformatting options:
• Plate Resolution - exports at the clip's original resolution, regardless of what is set in the
timeline.
• To Sequence Resolution - exports at the resolution set in the timeline Sequence panel Output
Resolution dropdown.
• Custom - activates the Reformat controls allowing you to customize the export resolution.
6. Enable Collate Shot Timings or Collate Shot Name to create additional Nuke Read nodes in the
same script for clips that would normally be hidden by clips higher up the track hierarchy or clips
on the same track with the same shot name.
USER GUIDE
1451
Nuke Project File Settings | Frame Server Logs
Note: If you have a Read node selected, you can’t enable the Collate functions.
For example:
• Collate Shot Timings - Items on track 1 that would otherwise be hidden by track 2.
Note: Shots on different tracks are not connected by default. If you want all the exported
clips to be connected to the Nuke script Write node, enable Connect Tracks.
This applies to stereo and multi-view sequences as well when you use separate files for the
tracks per view. See Stereoscopic and Multi-View Projects for more information.
• Collate Shot Name - Two items on the same track with the same shot name.
USER GUIDE
1452
Nuke Write Node Settings | Frame Server Logs
1. Click the Nuke Write Node Content preset to display the write settings.
2. Set the following controls common to all file types:
• Channels - set the channels to export using the dropdown. If you want to export a non-standard
channel, type the name of the channel into the field manually.
• Write Node Name - if you intend to create more than one Nuke Write node, define the name
here. The default, Write_{ext}, appends the individual Write nodes with the file extension being
written. You can, however, use any of the tokens Nuke Studio recognizes.
• Colorspace - use the dropdown to set the colorspace to render, such as linear, REDLog, or raw.
3. Select the file type to render using the dropdown and complete the relevant fields, dependent on
the file type selected.
Note: Selecting mov from the dropdown provides additional QuickTime specific controls,
allowing you to choose a codec, encoder, and in some cases, YCbCrMatrix. The matrix
control enables you to use the new Rec 601 and Rec 709 or the Legacy encoding methods,
which are the methods used previously in Nuke. There's also an Advanced dropdown
containing mov32 and mov64 encoder specific controls.
Similarly, selecting exr provides an additional metadata dropdown allowing you to export or
round-trip selected metadata along with your .exr output.
4. Create Directories is enabled by default, which enables the corresponding control in the .nk
script's Write node. This control allows Nuke to create the required directories when you render
out a new version from the Write node.
Disabling this control causes versioned renders to fail because the target directories don't exist.
You can manually create the correct directories or enable Create Directories in the script's Write
node if this happens.
5. Use the Reformat controls to determine how the Write node is set up in the Nuke script:
• None - the clip or sequence resolution is used, no additional formatting is applied during
export.
• To Sequence Resolution - exports at the resolution set in the timeline Sequence panel Output
Resolution dropdown. This option also allows you to set the Filter used to resize the output.
USER GUIDE
1453
Nuke Write Node Settings | Frame Server Logs
Note: The filters available are generally listed in order of quality and processing time. Cubic
can be faster to render, but Lanczos4 may be produce better results. See Choosing a
Filtering Algorithm for more information on filters in Nuke.
• To Scale - activates all the Reformat controls, except Format, allowing you to customize the
export resolution.
• Custom - activates all the Reformat controls, except Scale, allowing you to customize the
export resolution.
USER GUIDE
1454
Nuke Write Node Settings | Frame Server Logs
6. You can apply text burn-in to the media using a Nuke gizmo. Enable Burn-in Gizmo and click Edit
to define the information applied. See Adding Burn-in Text to Exports for more information.
7. Proceed to Tracks, Range, and Handles Settings to select which items are processed during
export.
USER GUIDE
1455
Tracks, Range, and Handles Settings | Frame Server Logs
Note: See Using Versions for more information on how versioning works in Nuke Studio.
2. Select Tracks for this export by enabling or disabling the tracks in the list. Nuke Studio exports
all tracks by default.
3. Enable or disable tags using the Filter by tag panel. Click the checkbox to cycle through the
available tag states.
4. If you're exporting a sequence, set the Range controls as required:
• Select Whole Sequence or In/Out Points to export only the selected frames.
• Set how clip Start Frames are derived using the dropdown menu:
• Sequence - use the sequence’s start frame.
• Custom - specify a start frame for all clips using the field to the right.
5. If you're exporting shots, set the Handles controls as required:
• Clip Length - exports the full clip length available, as if the clip was opened as a Viewer.
• Cut Length - exports only the cuts included on the timeline.
Note: Selecting Cut Length allows you to add handles to each clip, up to the maximum
available source clip length.
Note: When Apply Retimes is disabled, which is the default state for Create Comp, any
TimeWarp soft effects are not included in the resulting Nuke script. When the new shot is
USER GUIDE
1456
Tracks, Range, and Handles Settings | Frame Server Logs
created through Create Comp or Build Track from Export Tag, TimeWarp soft effects are
copied from the original shot to the new one.
• Set how clip Start Frames are derived using the dropdown menu:
• Source - use the source clip’s start frame.
• Custom - specify a start frame for all clips using the field to the right.
6. Set how Nuke Studio should render your export using the Render with dropdown. Nuke Studio
provides the following options:
• Frame Server - uses multiple Nuke processes to speed up render times and shares a render
queue with any Nuke Comp renders in the timeline, improving resource management.
See Using the Frame Server on External Machines for more information.
• Single Render Process - uses a single Nuke process to render your export. Rendering
QuickTimes falls back to this setting, but it's also used when a problem is detected with the
Frame Server.
• Custom Render Process - uses a custom render process. Nuke Studio requires a Python script
to pass exports to your render farm of choice. Scripts must be located in specific directories,
dependent on platform, as listed in Loading Gizmos, NDK Plug-ins, and Python and Tcl Scripts.
If no scripts exist, the dropdown only contains the default render processes.
7. Click Export.
The Export Queue window displays an estimate of how long each component of the export is
expected to take.
Once the export is complete, the file structure specified in the shot template is created. You can
then import the Nuke clips on a separate track when they’re ready.
Tip: Click the magnifying glass icon to reveal the file structure in a browser window.
When clips are exported from Nuke Studio, they are marked with a Nuke tag flagging which clips
have an export history. Clips tagged in this way can be used to build VFX tracks quickly as
described in Building VFX Tracks and Comp Clips.
USER GUIDE
1457
Building VFX Tracks and Comp Clips | Building Tracks From Export Structure
Alternatively, if you have a history of rendered VFX clips, different versions and so on, you can also
build tracks from export tags to select from a list of available clips. This method allows you to add
Comp Clips to the timeline, which act as containers for Nuke .nk scripts, or placeholders for Nuke
renders. See Building Comp Clips From Export Tags or Building Render Placeholders From Export
Tags for more information.
Tip: You may find it easier to select clips in the spreadsheet and then right-click on the
timeline.
USER GUIDE
1458
Building VFX Tracks and Comp Clips | Building Tracks From Export Structure
4. Select an Export Preset using the dropdown menu. In this case, select the same preset used
during the export.
5. Enter the file path of the Export Root directory or click Choose and browse to the location.
Note: The root directory is the location entered in Export To when exporting the project.
6. Select the Content preset you intend to ingest from the shot template. In this case, the Nuke
Write Node.
7. Click Build to create the VFX track.
Note: Nuke Studio warns you if no selection is made in the Content column.
Nuke Studio automatically creates a new track containing the VFX clips, if they exist, or offline
place holders if the clips are a work in progress.
If a shot already exists in any of the target tracks, a new track is created to hold the new shots.
The clips are automatically updated when work is complete as long as they are saved with the
expected name and location, as specified in the shot template.
USER GUIDE
1459
Building VFX Tracks and Comp Clips | Building Comp Clips From Export Tags
Tip: You may find it easier to select clips in the spreadsheet and then right-click on the
timeline.
If you just want to import the offline renders when they're finished, disable the Create Comp
Clips checkbox. See Building Render Placeholders From Export Tags for more information.
5. Click Build to create the VFX track.
Nuke Studio automatically creates a new track containing the Comp Clips. If a shot already exists
in any of the target tracks, a new track is created to hold the new shots.
USER GUIDE
1460
Building VFX Tracks and Comp Clips | Building Render Placeholders From Export Tags
6. You can double-click Comp Clips to open them in Nuke Studio's Compositing environment to
make edits as required.
Tip: You may find it easier to select clips in the spreadsheet and then right-click on the
timeline.
USER GUIDE
1461
Building VFX Tracks and Comp Clips | Building Render Placeholders From Export Tags
If you want to import the .nk Comp Clips, enable the Create Comp Clips checkbox. See Building
Comp Clips From Export Tags for more information.
6. Click Build to create the VFX track.
Nuke Studio automatically creates a new track containing the VFX clips, if they exist, or offline
place holders if the clips are a work in progress.
If a shot already exists in any of the target tracks, a new track is created to hold the new shots.
USER GUIDE
1462
Exporting Multi-View Source Clips | Building Render Placeholders From Export Tags
See Stereoscopic and Multi-View Projects for more information on working with multi-view footage.
1. Right-click on the sequence or shot that you want to export.
Sequences are exported from the bin view.
Shots can be a multi-view or single views split into separate tracks. See Displaying Views in the
Timeline for more information.
For separate tracks, you can right-click a single track to export all views or select all the per-track
views and right-click.
2. Select Export.
USER GUIDE
1463
Exporting Multi-View Source Clips | Building Render Placeholders From Export Tags
5. Set the track and handle preferences as described in Tracks, Range, and Handles Settings and
then click Export.
Once the export is complete, the file structure specified in the shot template is created. You can
then import the Nuke clips on a separate track when they’re ready.
Tip: Click the magnifying glass icon in the Export Queue to reveal the file structure in a
browser window.
When clips are exported from Nuke Studio, they are marked with a Nuke tag flagging which clips
have an export history. Clips tagged in this way can be used to build VFX tracks quickly as
described in Building VFX Tracks and Comp Clips.
USER GUIDE
1464
Transcoding | Transcoding a Sequence
Transcoding
Transcoding in Nuke Studio uses a background render process to convert one file format to another.
You can transcode sequences, timeline selections, and clips from the bin view.
Transcoding a Sequence
1. Select a sequence in the bin view and navigate to File > Export...
The Export dialog displays.
2. Select Process as Sequence and the preset you intend to use, or use the default dpx preset.
3. Enter the Export To directory or click Choose... and browse to the location.
4. Click the Content column in the shot template to display the transcode options.
5. Set the following controls common to all file types:
• Channels - set the channels to export using the dropdown. If you want to export a non-standard
channel, type the name of the channel into the field manually.
• Colorspace - use the dropdown to set the colorspace to render, such as linear, REDLog, or raw.
6. Select the File Type to render using the dropdown and complete the relevant fields, dependent on
the File Type selected.
Note: Selecting mov from the dropdown provides additional QuickTime specific controls,
allowing you to choose a codec, encoder, and in some cases, YCbCrMatrix. The matrix
control enables you to use the new Rec 601 and Rec 709 or the Legacy encoding methods,
which are the methods used previously in Nuke. There's also an Advanced dropdown
containing mov32 and mov64 encoder specific controls.
Similarly, selecting exr provides an additional metadata dropdown allowing you to export or
round-trip selected metadata along with your .exr output.
7. Use the Reformat controls to determine how the Write node is set up in the Nuke script:
• None - the clip or sequence resolution is used, no additional formatting is applied during
export.
• To Scale - activates all the Reformat controls, except Format, allowing you to customize the
export resolution.
• Custom - activates all the Reformat controls, except Scale, allowing you to customize the
export resolution.
USER GUIDE
1465
Transcoding | Transcoding a Sequence
Format - sets the format to render out in Nuke, such as 1920x1080 HD 1080.
Resize - sets the method by which you want to preserve or override the original
aspect ratio:
• width - scales the original until its width matches the format’s width. Height is
then scaled in such a manner as to preserve the original aspect ratio.
• height - scales the original until its height matches the format’s height. Width is
then scaled in such a manner as to preserve the original aspect ratio.
• fit - scales the original until its smallest side matches the format’s smallest side.
The original’s longer side is then scaled in such a manner as to preserve original
aspect ratio.
• fill - scales the original until its longest side matches the format’s longest side.
The input’s shorter side is then scaled in such a manner as to preserve original
aspect ratio.
• distort - scales the original until all its sides match the lengths specified by the
format. This option does not preserve the original aspect ratio, so distortion may
occur.
Center - when enabled, transform image to the center of the output. When
disabled, the image is aligned with the bottom-left corner of the output.
Filter - sets the filtering algorithm used to transform pixels. See Choosing a
Filtering Algorithm for more information on filters in Nuke.
USER GUIDE
1466
Transcoding | Tracks and Range Settings
10. Specify any Additional Nodes required during export by clicking Edit. See Adding Additional
Nodes During Export for more information.
11. Check Keep Nuke Script if you require the .nk files after the transcode operation.
Note: The following controls may improve render times for certain exports:
• For .dpx exports, you can enable Read All Lines, which can speed up transcode times for
I/O heavy scripts.
• For machines with multiple CPU sockets using a Single Render Process, you may find that
limiting the render with Use Single Socket may improve render times.
Note: See Using Versions for more information on how versioning works in Nuke Studio.
2. Select Tracks for this export by enabling or disabling the tracks in the list. Nuke Studio exports
all tracks by default.
3. If you set in and out point on the sequence, enable In/Out Points to export only the selected
frames.
4. Set how clip Start Frames are derived using the dropdown menu:
• Sequence - use the sequence’s start frame.
• Custom - specify a start frame for all clips using the field to the right.
5. Set how Nuke Studio should render your export using the Render with dropdown. The following
options are available:
• Frame Server - uses multiple Nuke processes to speed up render times and shares a render
queue with any Nuke Comp renders in the timeline, improving resource management.
See Using the Frame Server on External Machines for more information.
• Single Render Process - uses a single Nuke process to render your export. Rendering
QuickTimes falls back to this setting, but it's also used when a problem is detected with the
Frame Server.
• Custom Render Process - uses a custom render process. Nuke Studio requires a Python script
to pass exports to your render farm of choice. Scripts must be located in specific directories,
USER GUIDE
1467
Transcoding | Tracks and Range Settings
dependent on platform, as listed in Loading Gizmos, NDK Plug-ins, and Python and Tcl Scripts.
If no scripts exist, the dropdown only contains the default render processes.
6. Click Export.
The Export Queue window displays an estimate of how long each component of the export is
expected to take.
Once the export is complete, the file structure specified in the shot template is created containing
the transcoded files.
Tip: Click the magnifying glass icon to reveal the exported file in a browser window.
USER GUIDE
1468
Transcoding a Sequence as Shots | Tracks and Range Settings
Creates a folder for each shot, containing a clip with the {shot} name and the required file
padding (####) and extension {ext}.
3. Enter the Export To directory or click Choose... and browse to the location.
The Export To directory is the starting point from which the shot template builds your shot
hierarchy.
4. In the Content tab, complete the File Type specific and general controls common to all file types
as described in Transcoding a Sequence.
5. Click the Tracks and Handles tab, select the Tracks For This Export by enabling or disabling the
tracks in the list. Nuke Studio exports all tracks by default.
6. Enable or disable tags using the Filter by Tag panel. Click the checkbox to cycle through the
available tag states.
7. Set the Range and Handles, as required:
• Clip Length - exports the full clip length available, as if the clip was opened as a Viewer.
• Cut Length - exports only the cuts included on the timeline.
Note: Selecting Cut Length allows you to add handles to each clip, up to the maximum
available source clip length.
Note: When Apply Retimes is disabled, which is the default state for Create Comp, any
TimeWarp soft effects are not included in the resulting Nuke script. When the new shot is
USER GUIDE
1469
Transcoding a Sequence as Shots | Tracks and Range Settings
created through Create Comp or Build Track from Export Tag, TimeWarp soft effects are
copied from the original shot to the new one.
9. Set how clip Start Frames are derived using the dropdown menu:
• Source - use the source clip’s start frame.
• Custom - specify a start frame for all clips using the field to the right.
10. Set the Version number for the export, if applicable. Use the arrows to increment the version
number and the +/- buttons to increase or decrease the padding. You can also type directly into
the numeric field.
Note: SeeUsing Versions for more information on how versioning works in Nuke Studio.
11. Set how Nuke Studio should render your export using the Render with dropdown. Nuke Studio
provides the following options:
• Frame Server - uses multiple Nuke processes to speed up render times and shares a render
queue with any Nuke Comp renders in the timeline, improving resource management.
See Using the Frame Server on External Machines for more information.
• Single Render Process - uses a single Nuke process to render your export. Rendering
QuickTimes falls back to this setting, but it's also used when a problem is detected with the
Frame Server.
• Custom Render Process - uses a custom render process. Nuke Studio requires a Python script
to pass exports to your render farm of choice. Scripts must be located in specific directories,
dependent on platform, as listed in Loading Gizmos, NDK Plug-ins, and Python and Tcl Scripts.
If no scripts exist, the dropdown only contains the default render processes.
12. Click Export.
The Export Queue window displays an estimate of how long each component of the export is
expected to take.
Once the export is complete, the file structure specified in the shot template is created. You can
then import the Nuke clips on a separate track when they’re ready.
Tip: Click the magnifying glass icon to reveal the file structure in a browser window.
USER GUIDE
1470
Transcoding Timeline Selections | Tracks and Range Settings
USER GUIDE
1471
Transcoding from the Bin View | Tracks and Range Settings
USER GUIDE
1472
Ad Hoc Exports | Tracks and Range Settings
Ad Hoc Exports
This section covers exports that you might not perform on a per project basis, such the EDL or XML
Exporters and Copy Exporter. Exporters are available for sequences, shots, and clips as described in
the following table.
Exporter Source
EDL Exporter
XML Exporter
Audio Exporter
Copy Exporter
SymLink Exporter
USER GUIDE
1473
Exporting EDLs and XMLs | Tracks and Range Settings
Note: Nuke Studio can read AAF files, but not write them out.
Note: EDLs only support one video track per file. If you have more than one track, include
the {track} token in the shot template to write out an EDL for each track preset.
For example, {filename}_{track}.{ext} might produce a separate EDL for each track on your
timeline called myTimeline_Video1.edl, myTimeline_Video2.edl, and so on.
4. Enter the Export To directory or click Choose... and browse to the location.
The Export To directory is the starting point from which the shot template builds your shot
hierarchy.
5. If you're exporting to EDL, set the additional EDL Exporter controls in the Content tab, if required:
• Reel Name - define the reel name written into the EDL, independent of the clip's reel name.
Enter text or standard shot-level tokens in this field. See Using the Shot Template for more
information.
If the field is left blank, the reel name from the clip is used or the name of the shot, if no reel
name exists.
• Truncate Reel Name - restricts the Reel name to eight characters.
• Use Absolute Path - adds the full file path for each clip to the EDL comments field.
• From Clip Name - define the text appended to “from” comment fields in EDLs, such as *FROM
CLIP NAME. Text and/or standard shot-level tokens are valid in this field: {shot}, {clip}, {track},
{sequence}, {event}, {fps}, and the default {filename}.
OR
USER GUIDE
1474
Exporting EDLs and XMLs | Tracks and Range Settings
If you're exporting to XML, you can enable Include Markers to convert any frame tags present
in the sequence to markers in Final Cut Pro or Premiere. See Tagging Using the Viewer for more
information on adding tags to frames.
6. Click the Tracks and Range tab and select the Tracks For This Export by enabling or disabling
the tracks in the list. Nuke Studio exports all tracks by default.
7. If you set in and out point on the sequence, enable In/Out Points to export only the selected
frames.
8. Set how clip Start Frames are derived using the dropdown menu:
• Sequence - use the sequence’s start frame.
• Custom - specify a start frame for all clips using the field to the right.
9. Set the Version number for the export, if applicable. Use the arrows to increment the version
number and the +/- buttons to increase or decrease the padding. You can also type directly into
the numeric field.
Note: See Using Versions for more information on how versioning works in Nuke Studio.
10. Set how Nuke Studio should render your export using the Render with dropdown. Nuke Studio
provides the following options:
• Frame Server - uses multiple Nuke processes to speed up render times and shares a render
queue with any Nuke Comp renders in the timeline, improving resource management.
See Using the Frame Server on External Machines for more information.
• Single Render Process - uses a single Nuke process to render your export. Rendering
QuickTimes falls back to this setting, but it's also used when a problem is detected with the
Frame Server.
• Custom Render Process - uses a custom render process. Nuke Studio requires a Python script
to pass exports to your render farm of choice. Scripts must be located in specific directories,
dependent on platform, as listed in Loading Gizmos, NDK Plug-ins, and Python and Tcl Scripts. If
no scripts exist, the dropdown only contains the default render processes.
11. Click Export.
The Export Queue window displays an estimate of how long each component of the export is
expected to take.
Once the export is complete, the file structure specified in the shot template is created.
Tip: Click the magnifying glass icon to reveal the exported file in a browser window.
USER GUIDE
1475
Using the Audio Exporter | Exporting Audio from Sequences
6. Set the Version number for the export, if applicable. Use the arrows to increment the version
number and the +/- buttons to increase or decrease the padding. You can also type directly into
the numeric field.
Note: See Using Versions for more information on how versioning works in Nuke Studio.
7. Select Tracks for this export by enabling or disabling the tracks in the list. Nuke Studio exports
all tracks by default.
8. Set the Range controls as required:
• Select Whole Sequence or In/Out Points to export only the selected frames.
USER GUIDE
1476
Using the Audio Exporter | Exporting Audio from Shots
• Set how clip Start Frames are derived using the dropdown menu:
• Sequence - use the sequence’s start frame.
• Custom - specify a start frame for all clips using the field to the right.
9. Set how Nuke Studio should render your export using the Render with dropdown. Nuke Studio
provides the following options:
• Frame Server - uses multiple Nuke processes to speed up render times and shares a render
queue with any Nuke Comp renders in the timeline, improving resource management.
See Using the Frame Server on External Machines for more information.
• Single Render Process - uses a single Nuke process to render your export. Rendering
QuickTimes falls back to this setting, but it's also used when a problem is detected with the
Frame Server.
• Custom Render Process - uses a custom render process. Nuke Studio requires a Python script
to pass exports to your render farm of choice. Scripts must be located in specific directories,
dependent on platform, as listed in Loading Gizmos, NDK Plug-ins, and Python and Tcl Scripts. If
no scripts exist, the dropdown only contains the default render processes.
10. Click Export.
The Export Queue window displays an estimate of how long each component of the export is
expected to take.
Once the export is complete, the file structure specified in the shot template is created.
Tip: Click the magnifying glass icon to reveal the exported file in a browser window.
USER GUIDE
1477
Using the Audio Exporter | Exporting Audio from Shots
6. Set the Version number for the export, if applicable. Use the arrows to increment the version
number and the +/- buttons to increase or decrease the padding. You can also type directly into
the numeric field.
Note: SeeUsing Versions for more information on how versioning works in Nuke Studio.
7. Select Tracks for this export by enabling or disabling the tracks in the list. Nuke Studio exports
all tracks by default.
8. Enable or disable tags using the Filter by tag panel. Click the checkbox to cycle through the
available tag states.
9. If you're exporting a sequence, set the Range controls as required:
• Select Whole Sequence or In/Out Points to export only the selected frames.
• Set how clip Start Frames are derived using the dropdown menu:
• Sequence - use the sequence’s start frame.
• Custom - specify a start frame for all clips using the field to the right.
10. If you're exporting shots, set the Handles controls as required:
• Clip Length - exports the full clip length available, as if the clip was opened as a Viewer.
• Cut Length - exports only the cuts included on the timeline.
Note: Selecting Cut Length allows you to add handles to each clip, up to the maximum
available source clip length.
11. Set how clip Start Frames are derived using the dropdown menu:
• Source - use the source clip’s start frame.
• Custom - specify a start frame for all clips using the field to the right.
12. Set how Nuke Studio should render your export using the Render with dropdown. Nuke Studio
provides the following options:
USER GUIDE
1478
Using the Audio Exporter | Exporting Audio from Source Clips
• Frame Server - uses multiple Nuke processes to speed up render times and shares a render
queue with any Nuke Comp renders in the timeline, improving resource management.
See Using the Frame Server on External Machines for more information.
• Single Render Process - uses a single Nuke process to render your export. Rendering
QuickTimes falls back to this setting, but it's also used when a problem is detected with the
Frame Server.
• Custom Render Process - uses a custom render process. Nuke Studio requires a Python script
to pass exports to your render farm of choice. Scripts must be located in specific directories,
dependent on platform, as listed in Loading Gizmos, NDK Plug-ins, and Python and Tcl Scripts. If
no scripts exist, the dropdown only contains the default render processes.
13. Click Export.
The Export Queue window displays an estimate of how long each component of the export is
expected to take.
Once the export is complete, the file structure specified in the shot template is created.
Tip: Click the magnifying glass icon to reveal the exported file in a browser window.
USER GUIDE
1479
Using the Audio Exporter | Exporting Audio from Source Clips
6. Set the Version number for the export, if applicable. Use the arrows to increment the version
number and the +/- buttons to increase or decrease the padding. You can also type directly into
the numeric field.
Note: See Using Versions for more information on how versioning works in Nuke Studio.
7. Set how clip Start Frames are derived using the dropdown menu:
• Source - use the source clip’s start frame.
• Custom - specify a start frame for all clips using the field to the right.
8. Set how Nuke Studio should render your export using the Render with dropdown. Nuke Studio
provides the following options:
• Frame Server - uses multiple Nuke processes to speed up render times and shares a render
queue with any Nuke Comp renders in the timeline, improving resource management.
See Using the Frame Server on External Machines for more information.
• Single Render Process - uses a single Nuke process to render your export. Rendering
QuickTimes falls back to this setting, but it's also used when a problem is detected with the
Frame Server.
• Custom Render Process - uses a custom render process. Nuke Studio requires a Python script
to pass exports to your render farm of choice. Scripts must be located in specific directories,
dependent on platform, as listed in Loading Gizmos, NDK Plug-ins, and Python and Tcl Scripts. If
no scripts exist, the dropdown only contains the default render processes.
9. Click Export.
The Export Queue window displays an estimate of how long each component of the export is
expected to take.
Once the export is complete, the file structure specified in the shot template is created.
Tip: Click the magnifying glass icon to reveal the exported file in a browser window.
USER GUIDE
1480
Using the Copy Exporter | Exporting Audio from Source Clips
6. Set the Version number for the export, if applicable. Use the arrows to increment the version
number and the +/- buttons to increase or decrease the padding. You can also type directly into
the numeric field.
Note: See Using Versions for more information on how versioning works in Nuke Studio.
7. Set how clip Start Frames are derived using the dropdown menu:
• Source - use the source start frame.
• Custom - specify a start frame for all clips using the field to the right.
8. Set how Nuke Studio should render your export using the Render with dropdown. Nuke Studio
provides the following options:
USER GUIDE
1481
Using the Copy Exporter | Exporting Audio from Source Clips
• Frame Server - uses multiple Nuke processes to speed up render times and shares a render
queue with any Nuke Comp renders in the timeline, improving resource management.
See Using the Frame Server on External Machines for more information.
• Single Render Process - uses a single Nuke process to render your export. Rendering
QuickTimes falls back to this setting, but it's also used when a problem is detected with the
Frame Server.
• Custom Render Process - uses a custom render process. Nuke Studio requires a Python script
to pass exports to your render farm of choice. Scripts must be located in specific directories,
dependent on platform, as listed in Loading Gizmos, NDK Plug-ins, and Python and Tcl Scripts. If
no scripts exist, the dropdown only contains the default render processes.
9. Click Export.
The Export Queue window displays an estimate of how long each component of the export is
expected to take.
Once the export is complete, the file structure specified in the shot template is created.
Tip: Click the magnifying glass icon to reveal the exported file in a browser window.
USER GUIDE
1482
Using the SymLink Generator | Exporting Audio from Source Clips
Note: Windows only: Symbolic links are only supported by Windows Vista, or later. if you're
linking across file systems, the remote file servers must also be running Windows Vista, or
later. Additionally, you may need administrator privileges and a local NTFS drive to create
symbolic links.
6. Set the Version number for the export, if applicable. Use the arrows to increment the version
number and the +/- buttons to increase or decrease the padding. You can also type directly into
the numeric field.
Note: See Using Versions for more information on how versioning works in Nuke Studio.
7. Set how clip Start Frames are derived using the dropdown menu:
• Source - use the source start frame.
USER GUIDE
1483
Using the SymLink Generator | Exporting Audio from Source Clips
• Custom - specify a start frame for all clips using the field to the right.
8. Set how Nuke Studio should render your export using the Render with dropdown. Nuke Studio
provides the following options:
• Frame Server - uses multiple Nuke processes to speed up render times and shares a render
queue with any Nuke Comp renders in the timeline, improving resource management.
See Using the Frame Server on External Machines for more information.
• Single Render Process - uses a single Nuke process to render your export. Rendering
QuickTimes falls back to this setting, but it's also used when a problem is detected with the
Frame Server.
• Custom Render Process - uses a custom render process. Nuke Studio requires a Python script
to pass exports to your render farm of choice. Scripts must be located in specific directories,
dependent on platform, as listed in Loading Gizmos, NDK Plug-ins, and Python and Tcl Scripts. If
no scripts exist, the dropdown only contains the default render processes.
9. Click Export.
The Export Queue window displays an estimate of how long each component of the export is
expected to take.
Once the export is complete, the file structure specified in the shot template is created.
Tip: Click the magnifying glass icon to reveal the exported file in a browser window.
USER GUIDE
1484
Advanced Compositing with
NukeX and Nuke Studio
These pages explain in detail key feature of NukeX and Nuke Studio. For more information on the
differences between the various applications, see Nuke Products. These are the topics covered:
USER GUIDE
1485
Advanced Compositing with NukeX and Nuke Studio |
• Particles - The Particle node set is a solution for creating particles in a 3D environment. You can use
the Particle nodes for emitting, manipulating and displaying limitless types of particles in your 3D
scene. For more information, see Creating 3D Particles.
• PrmanRender - PrmanRender is a render node that works together with Pixar’s PhotoRealistic
RenderMan® Pro Server software to give you an even better quality render result. PrmanRender is
an alternative to the ScanlineRender node for rendering 3D scenes, and it gives you control over
features such as shadows, reflections, refractions and depth-of-field. For more information, see
PrmanRender .
• FurnaceCore - This plug-in bundle consists of Foundry’s best Furnace tools, including regraining,
rig-removal, and more. For more information, see Using F_DeFlicker2, Using F_ReGrain, Using F_
WireRemoval Using F_Align, Using F_RigRemoval, and Using F_Steadiness.
Note: The following FurnaceCore nodes have been replaced by other nodes and can no
longer be found in the FurnaceCore menu:
F_DeGrain and F_Denoise were replaced by Denoise (Filter > Denoise) in Nuke 6.3.
F_Kronos was replaced by Kronos (Time > Kronos) in Nuke 7.0.
F_MotionBlur was replaced by MotionBlur (Filter > MotionBlur) in Nuke 7.0.
F_VectorGenerator was replaced by VectorGenerator (Time > VectorGenerator) in Nuke 7.0.
• BlinkScript - The BlinkScript node runs Foundry's Blink framework enabling you to write your code
once and run it on any supported device. For more information, see Using the BlinkScript Node on
page 1817.
USER GUIDE
1486
Retiming and Motion Blur
This chapter looks at creating motion vectors using VectorGenerator, retiming sequences using
Kronos, and adding motion blur using MotionBlur.
USER GUIDE
1487
VectorGenerator |
VectorGenerator
VectorGenerator allows you to produce images containing motion vector fields. A vector field for an
image in a sequence has the same dimensions as the image, but contains an (x,y) offset per pixel.
These offsets show how to warp a neighboring image onto the current image. Clearly, as most of the
images in a sequence have two neighbors, each can have two vector fields:
1. The backward vector field: the x and y offsets per pixel that, when applied to the previous frame
in the sequence, allow you to reconstruct an approximation to the current frame.
2. The forward vector field: the x and y offsets needed to transform the next frame into an
approximation to the current one.
The output from VectorGenerator is stored in the vector channels. The images below show the
different vector images for a clip.
When viewing 'forward' or 'backward' motion vectors, the Viewer represents the x values as amounts
of red and y values as amounts of green. Motion vectors can be positive or negative, where zero
represents no motion.
In general, once you have generated a sequence of motion vector fields that describe the motion in a
particular clip well, they are suitable for use in any nodes which can take vector inputs. These include
Kronos and MotionBlur. If you are going to be using more than one of these effects in your project, it
might be worth generating the vector fields beforehand with VectorGenerator, so that they can be
reused.
USER GUIDE
1488
Quick Start |
Quick Start
Here's a quick overview of the workflow:
1. Add VectorGenerator to your node tree. See Connecting VectorGenerator below.
2. View and refine the results. See Viewing and Refining the Results.
Tip: You can check Use GPU if available to have the node run on the graphics processing
unit (GPU) rather than the central processing unit (CPU).
For more information on the minimum requirements, please see Windows, Mac OS X and
macOS, or Linux or refer to the Nuke Release Notes available in Help > Release Notes.
You can select the GPU to use in the Preferences. Press Shift+S to open the Preferences
dialog, make sure you’re viewing the Preferences > Performance > Hardware tab, and set
default blink device to the device you want to use. You must restart Nuke for the change to
take effect.
If you are using a render license of Nuke, you need to add --gpu on the command line.
USER GUIDE
1489
Connecting VectorGenerator |
Connecting VectorGenerator
To connect VectorGenerator:
1. Select Time > VectorGenerator to insert a VectorGenerator node after the sequence from which
you want to generate motion vectors.
2. Attach a Viewer to the output of the VectorGenerator node.
3. If your sequence is composed of a foreground object moving over a background, the motion
estimation is likely to get confused at the edge between the two. To fix this, add a matte of the
foreground region to the Matte input. Then, use Matte Channel in the VectorGenerator
properties to select which component of the matte to use.
This helps the motion estimation algorithm inside VectorGenerator understand what is
foreground and background in the image, so that the dragging of pixels between overlapping
objects can be reduced.
White areas of the matte are considered to be foreground, and black areas background. Gray
areas are used to attenuate between foreground and background
4. If you supplied a foreground matte in the previous step, you can set Output in the
VectorGenerator properties to:
• Foreground - to output the vectors for the foreground regions.
• Background - to output the vectors in the background regions.
5. Proceed to Viewing and Refining the Results.
USER GUIDE
1490
Viewing and Refining the Results |
Note: Scripts loaded from previous versions of Nuke default to Local motion estimation for
backward compatibility. Adding a new VectorGenerator node to the Node Graph defaults the
Method to Regularized motion estimation.
2. To view the generated motion vector fields, click the channels dropdown menu on top of the
Viewer and select:
• motion - to view both forward and backward motion vectors.
• forward - to view the forward motion vectors.
• backward - to view the backward motion vectors.
3. If the calculated motion vector fields do not produce the results you’re after when used with other
nodes (such as Kronos and MotionBlur), try adjusting Vector Detail in the VectorGenerator
properties.
This determines the resolution of the vector field. The larger vector detail is, the greater the
processing time, but the more detailed the vectors should be. A value of 1.0 generates a vector at
each pixel. A value of 0.5 generates a vector at every other pixel. For some sequences, a high
vector detail near 1.0 generates too much unwanted local motion detail, and often a low value is
more appropriate.
4. If you're using the Regularized vector calculation method, adjust the Strength control to
determine the strength of pixel matching between frames. Higher values allow you to accurately
match similar pixels in one image to another, concentrating on detail matching even if the
resulting motion field is jagged. Lower values may miss local detail, but are less likely to provide
you with the odd spurious vector, producing smoother results.
Note: The default value should work well for most sequences.
5. If you're using the Local vector calculation method, adjust the Smoothness control to improve
your results. A high smoothness can miss lots of local detail, but is less likely to provide you with
USER GUIDE
1491
Viewing and Refining the Results |
the odd spurious vector, whereas a low smoothness concentrates on detail matching, even if the
resulting field is jagged.
Note: The default value should work well for most sequences.
6. If there are variations in luminance and overall flickering in your Source sequence, enable Flicker
Compensation to avoid problems with your output.
Examples of variable luminance include highlights on metal surfaces, like vehicle bodies, or
bodies of water within a layer that reflects light in unpredictable ways.
7. By default, VectorGenerator analyzes motion based on the brightness of the image. Specifically
this is the mean of the red, green, and blue channels. However, you can bias this using the
Weight Red, Weight Green, and Weight Blue controls under Tolerances. For example, if you set
the Weight Red and Weight Green parameters to zero, VectorGenerator only looks for motion in
the blue channel.
8. Once you’re happy with the results, we recommend that you insert a Write node after
VectorGenerator to render the original images and the vector channels as an .exr file. This format
allows for the storage of an image with multiple layers embedded in it. Later, whenever you use
the same image sequence, the motion vector fields are loaded into Nuke together with the
sequence.
USER GUIDE
1492
Kronos |
Kronos
Kronos is NukeX’s retimer, designed to slow down or speed up footage. It works by calculating the
motion in the sequence in order to generate motion vectors. These motion vectors describe how each
pixel moves from frame to frame. With accurate motion vectors, it is possible to generate an output
image at any point in time throughout the sequence by interpolating along the direction of the
motion.
By default, Kronos is set to perform a half-speed slow down. This is achieved by generating a new
frame at position 0.25 and 0.75 between the original frames at 0 and 1. Frames are created at a
quarter and three quarters instead of zero (an original frame) and a half so as not to include any
original frames in the re-timed sequence. This avoids the pulsing that would otherwise be seen on
every other frame on a half-speed slow down, and can introduce motion blur.
Kronos only interpolates between input frames, as it cannot extrapolate images before the first frame
or after the last frame. A retime with a constant speed s "stretches" the output time by a factor 1/s,
and generates the required images to fill in all intervals between the input frames.
In the following table, | denotes where we need to have images to fill the video sequence. In this
example, we assume that the input sequence has 5 frames, denoted by X, and we want to retime it
with constant speed 0.5 (the default setting). This operation corresponds to stretching the time
between the input frames by a factor of 2, which leaves a number of gaps that Kronos fills by
generating the images denoted by O.
Samples | | | | | | | | |
Input X X X X X
Input Stretched X X X X X
Output X O X O X O X O X
USER GUIDE
1493
Kronos |
The output sequence is number_of_intervals / speed + 1 frames long. For example, if speed is 0.5
and the input frame is in the range [1,10], the output sequence length will be (10 - 1) / 0.5 + 1 = 19
frames long.
The start frame t_start is the same for both the input and output sequence. If the speed parameter s
is not animated, and therefore s is a constant, we get:
So, if we want to know where the last frame of the sequence maps to, we use:
Let's look at an example. If the input sequence is in the range [1, 10] and speed is 0.5, the output
sequence has a range [1, 19], as follows:
t_o_start = 1
t_o_end = 1 + 2 * (10 - 1) = 19
USER GUIDE
1494
Quick Start |
Quick Start
Here's a quick overview of the workflow:
1. Create a node tree with Kronos. See Connecting Kronos.
2. Retime your footage. See Retiming a Sequence.
3. If you’re not happy with the results, adjust the vector generation parameters. See Refining the
Results.
4. If necessary, add motion blur to the retimed footage. See Adding Motion Blur.
Tip: You can check Use GPU if available to have the node run on the graphics processing
unit (GPU) rather than the central processing unit (CPU).
For more information on the minimum requirements, please see Windows, Mac OS X and
macOS, or Linux or refer to the Nuke Release Notes available in Help > Release Notes.
You can select the GPU to use in the Preferences. Press Shift+S to open the Preferences
dialog, make sure you’re viewing the Preferences > Performance > Hardware tab, and set
default blink device to the device you want to use. You must restart Nuke for the change to
take effect.
If you are using a render license of Nuke, you need to add --gpu on the command line.
USER GUIDE
1495
Connecting Kronos |
Connecting Kronos
To connect Kronos:
1. Select Time > Kronos to insert a Kronos node after the sequence you want to retime.
The Input Range is set automatically by the source clip when you first create the node. After that,
it is only updated if you click Reset.
2. If you intend to use Output Speed or Frame timing, attach a Viewer to the output of the Kronos
node,
OR
If you intend to use Input Speed timing, attach a Viewer before the Kronos node.
3. Enable Use GPU if available to render output on the Local GPU specified, if available, rather than
the CPU.
For more information on the minimum requirements, please see Windows, Mac OS X and macOS,
or Linux or refer to the Nuke Release Notes available in Help > Release Notes.
4. Select the channels you want to apply the retime to using the channels dropdown. Kronos
retimes all channels by default.
5. If your sequence is composed of a foreground object moving over a background, the motion
estimation is likely to get confused at the edge between the two. To fix this, add a matte of the
foreground region to the Matte input. Then, use Matte Channel in the Kronos properties to
select which component of the matte to use.
This forces the motion of the foreground to be calculated separately to the motion of the
background and so should produce fewer artifacts in the retimed sequence.
6. If the motion in your input sequence has been estimated before (for example, using
VectorGenerator or third-party software), you can supply the motion vectors to the Background
Vectors (BgVecs) and Foreground Vectors (FgVecs) inputs to save processing time.
Note: The BgVecs input appears as an arrowhead on the side of the node.
If you have separate vectors for the background and foreground, you should connect them to the
appropriate inputs and supply the matte that was used to generate them to the Matte input. If
you have a single set of vectors, you should connect it to the FgVecs input.
7. You can set Output in the Kronos controls to:
• Result - displays both the foreground and background retimed footage.
• Matte - displays the retimed Matte input.
• Foreground - displays the retimed foreground. The background regions outside the matte input
may show garbage.
USER GUIDE
1496
Connecting Kronos |
• Background - displays the retimed background. The foreground regions inside the matte input
may show garbage.
8. If your Source sequence is very noisy and interfering with the motion estimation, you can supply
a smoothed version of the sequence in the MoSrc input. When a MoSrc input is connected,
motion vectors are calculated from that sequence and applied to the Source sequence.
9. Proceed to Retiming a Sequence.
USER GUIDE
1497
Retiming a Sequence | Retiming a Sequence Using Output Speed
Retiming a Sequence
Kronos allows you to retime a sequence by speed or by frame. Speed retimes describe the retime by
a percentage of full speed, either against the output or input frames. For example, the default setting
Output Speed = 0.5 is equal to a 50% retime on the output frames. Frame retimes describe the
retiming in terms of ‘at frame 100 in the output clip, I want to see frame 50 of the source clip‘.
Note: Input Range in the Kronos properties defines which frames are used for the retime.
When you first create the node, the range is automatically set to the frame range of the
Source clip. If you change the Source clip later, you need to click the Reset button to make
sure Input Range matches the current input.
Tip: If you want to retime at a certain event in the clip, you may find that using Input Speed
is easier to predict where keyframes should be placed.
1. Ensure that the Viewer is connected to the Kronos node and Timing is set to Output Speed.
USER GUIDE
1498
Retiming a Sequence | Retiming a Sequence Using Input Speed
USER GUIDE
1499
Retiming a Sequence | Retiming a Sequence Using Frame
• Blend - a mix between two frames is used for the in-between frame. This is quick to render and
is useful when tweaking the timing on a curve before setting the Method to Motion.
• Motion - vector interpolation is used to calculate the in-between frame.
3. Move the playhead to the frame you want to start retiming and enter the required Input Speed.
4. Click the Animation button and select Set Key.
5. Move the playhead to the frame you want to change the retime value and enter the required
Input Speed.
A new keyframe is added automatically.
6. Once you've added all the required keyframes, connect the Viewer to the Kronos node, and then
click the Curve Editor tab to view your keyframes in context of the output sequence.
7. If you're not happy with the results of the retime, try Refining the Results.
8. If you’d like to add motion blur to your retimed footage, proceed to Adding Motion Blur.
USER GUIDE
1500
Retiming a Sequence | Retiming a Sequence Using Frame
3. Go to a frame in the timeline, and set Frame to the input frame you want to appear at that output
position. You’ll need atleast two key frames to retime the clip.
For example, to speed up a 50 frame clip and then return to normal speed at the end:
• Set Frame to 1 at frame 1,
• Set Frame to 10 at frame 20,
• Set Frame to 40 at frame 30,
• Set Frame to 50 at frame 50.
These keyframes produce the following curve in the Curve Editor.
4. If you're not happy with the results of the retime, try Refining the Results.
5. If you’d like to add motion blur to your retimed footage, proceed to Adding Motion Blur.
USER GUIDE
1501
Refining the Results | Retiming a Sequence Using Frame
Note: Motion vectors displayed in the Viewer are added to your output if you don’t turn off
the overlay before rendering.
2. To set the spacing between motion vectors displayed on the Viewer, adjust Vector Spacing. The
default value of 20 means every 20th vector is drawn. Note that Vector Spacing only affects the
Viewer overlay rather than the retimed result.
USER GUIDE
1502
Refining the Results | Retiming a Sequence Using Frame
Areas of unwanted local motion detail. Lower Vector Detail is more appropriate
in this case.
4. Vector fields usually have two important qualities: they should accurately match similar pixels in
one image to another and they should be smooth rather than noisy. Often, it is necessary to trade
one of these qualities off against the other. A high Strength misses lots of local detail, but is less
likely to provide you with the odd spurious vector. A low Strength concentrates on detail
matching, even if the resulting field is jagged. The default value of 1.5 should work well for most
sequences.
USER GUIDE
1503
Refining the Results | Retiming a Sequence Using Frame
USER GUIDE
1504
Adding Motion Blur | Retiming a Sequence Using Frame
USER GUIDE
1505
MotionBlur | Retiming a Sequence Using Frame
MotionBlur
MotionBlur adds realistic motion blur to a sequence.
It uses the same techniques and technology as the motion blur found in Kronos, but presents the
controls in a less complex, more user friendly way. However, if you need precise control over the
motion vectors used for adding blur, or a large temporal range (that is, a very high shutter time), you
should use Kronos.
USER GUIDE
1506
Quick Start | Retiming a Sequence Using Frame
Quick Start
Here's a quick overview of the workflow:
1. Create a node tree with MotionBlur. See Connecting MotionBlur.
2. Adjust the amount and quality of the motion blur produced. See Adjusting MotionBlur Controls.
Tip: You can check Use GPU if available to have the node run on the graphics processing
unit (GPU) rather than the central processing unit (CPU).
For more information on the minimum requirements, please see Windows, Mac OS X and
macOS, or Linux or refer to the Nuke Release Notes available in Help > Release Notes.
You can select the GPU to use in the Preferences. Press Shift+S to open the Preferences
dialog, make sure you’re viewing the Preferences > Performance > Hardware tab, and set
default blink device to the device you want to use. You must restart Nuke for the change to
take effect.
If you are using a render license of Nuke, you need to add --gpu on the command line.
USER GUIDE
1507
Connecting MotionBlur | Retiming a Sequence Using Frame
Connecting MotionBlur
To connect MotionBlur:
1. Select Filter > MotionBlur to insert a MotionBlur node after the clip you want to add motion blur
to.
2. If your sequence is composed of a foreground object moving over a background, the motion
estimation is likely to get confused at the edge between the two. To fix this, add a matte of the
foreground region to the Matte input. Then, use Matte Channel in the MotionBlur controls to
select which component of the matte to use.
This forces the motion of the foreground to be calculated separately to the motion of the
background and so should produce fewer artifacts in the motion blur.
3. If the motion in your input sequence has been estimated before (for example, using
VectorGenerator or third-party software), you can supply the motion vectors to the Background
Vectors (BgVecs) and Foreground Vectors (FgVecs) inputs to save processing time.
If you have separate vectors for the background and foreground, you should connect them to the
appropriate inputs and supply the matte that was used to generate them to the Matte input. If
you have a single set of vectors, you should connect it to the FgVecs input.
4. Attach a Viewer to the output of the MotionBlur node.
5. Proceed to Adjusting MotionBlur Controls below.
USER GUIDE
1508
Adjusting MotionBlur Controls | Retiming a Sequence Using Frame
Note: Scripts loaded from previous versions of Nuke default to Local motion estimation for
backward compatibility. Adding a new MotionBlur node to the Node Graph defaults the
Method to Regularized motion estimation.
3. Use Vector Detail to alter the density of the calculated motion vector field. A value of 1 generates
a vector at each pixel, whereas a value of 0.5 generates a vector at every other pixel.
Bear in mind that higher Vector Detail values require longer to process, but can pick up finer
movement and enhance your results in some cases.
4. Set the type of re-sampling applied when retiming:
• Bilinear - the default filter. Faster to process, but can produce poor results at higher zoom
levels. You can use Bilinear to preview a motion blur before using one of the other re-sampling
types to produce your output.
• Lanczos4 and Lanczos6 - these filters are good for scaling down, and provide some image
sharpening, but take longer to process.
5. Render the sequence to see the motion blurred result.
USER GUIDE
1509
Adjusting MotionBlur Controls | Retiming a Sequence Using Frame
6. If you can see that the motion blur has been created from a few discrete images, try increasing
Shutter Samples. This results in more in-between images being used to generate the motion blur
and so results in a smoother blur.
USER GUIDE
1510
Working with Lens Distortion
Lens distortion can make composting work more difficult because the characteristics of the lens can
cause areas of the footage to warp, making correct placement of assets problematic. One way around
this problem is to undistort your plate before starting work on a comp and then redistort and merge
only the VFX work to produce the final comp.
It's a good idea to shoot grids with the same lenses you use to create your footage as this make
estimating distortion easier. If you have the lens properties, such as Focal Length and Sensor Size,
and a grid shot with the same lens you'll find this process much less painful.
Nuke's LensDistortion node allows you to undistort or distort an image according to several radial
distortion models that ship with Nuke or a custom model you define yourself. You can calculate the
warp for use on the input image or output the warp to an STMap for use elsewhere in the script.
Quick Start
Here's a quick overview of the workflow:
USER GUIDE
1511
Working with Lens Distortion |
Note: If you want, you can calculate the lens distortion on one image and apply that
distortion to another image with the help of an STMap node. For more information, see
Working with STMaps.
USER GUIDE
1512
Estimating Lens Distortion Using a Grid |
The original distorted shot The distorted grid associated with the shot
Tip: If you don't know the Focal Length, switch the Output Mode to Undistort and adjust
the Focal Length until the curved lines in the image appear approximately straight. Don't
forget to switch back to Mode > STMap before continuing.
4. Set the Distortion model preset to use for the estimation. Nuke ships with several models for use
with CaraVR and 3DEqualizer, as well as a NukeX Classic model.
The model you choose sets appropriate Distortion Model controls and populates the read only
Distortion Equation fields showing the math involved in the estimation.
USER GUIDE
1513
Estimating Lens Distortion Using a Grid |
5. The LensDistortion node adds a keyframe on the current frame automatically, but you can add
more using the or Key All buttons.
Adding keyframes can produce a better result for long sequences, but it takes longer to calculate
the result.
6. Click Detect to start the grid calibration. By default, Nuke looks for Features on the grid and then
creates Links between those features to create the distortion grid.
Tip: For difficult shots, you can make adjustments between Features and Links detection to
improve the results. See Adjusting Grid Detection Parameters for more information.
Tip: If the grid does not cover most of the image, try increasing the Number of Features
value on the Grid Detection tab and clicking Detect again.
USER GUIDE
1514
Estimating Lens Distortion Using a Grid |
Green lines represent links that fall within the Threshold value and red lines those that fall
outside the Threshold. You can hover over links to display their solve error.
8. Clicking Solve again can improve the result in some cases. You can also refine the detection and
linking before solving again using the controls on the Grid Detection tab. See Adjusting Grid
Detection Parameters for more information.
9. When you're happy with the solve, switch the Output Mode to Undistort.
Note: You can also output the distortion as an STMap for use in other images. STMaps
contain the pre-computed warp data in the motion channel, allowing you apply the warp
quickly and easily. See Working with STMaps for more information.
Nuke takes the estimated distortion and uses the result to 'straighten' the feature links.
USER GUIDE
1515
Estimating Lens Distortion Using a Grid |
You may notice that the grid expands beyond the bounding box of the footage, which can mean
you're losing image data.
10. Set the Format control to Reformat and select a larger format to include the grid. For example, if
your original grid is UHD_4K, you might reformat to 8K_LatLong.
Reformatting the grid deforms it into a characteristic bow tie shape. Any areas of the image where
there is no data are overscanned, meaning the last pixel available is duplicated to the edge of the
format. The areas at the top and bottom of the image in the center show overscan.
11. If you don't want to reformat the image, or only a small amount of the image is missing, you can
bring more image data into the format bounds using the Adjust Format controls.
12. Enable Override and then use the Add Pixels and Adjust Aspect controls to enlarge the format
as required.
USER GUIDE
1516
Estimating Lens Distortion Using a Grid |
The new format is called lens_distortion_adjusted by default, but you can enter any name you
choose in the adjustedFormatName control. The new name is then added to the Project
Settings > Format dropdown after adjustment to avoid changing Nuke's default formats.
Tip: You can also preserve overscan data by increasing the bounding box. The Add Pixels
control allows you to add an equal number of pixels on all sides of the image or you can edit
the bounding box manually by enabling Override and using the outputBBox controls.
13. Proceed to Removing Lens Distortion from an Image or Adjusting Grid Detection Parameters to
fine tune your grid.
USER GUIDE
1517
Adjusting Grid Detection Parameters | Feature Detection
Tip: For particularly hard solves, you can split the Features and Links detection into two
steps, rather than using Grids, which performs both steps automatically.
Feature Detection
The Features in a solve form the building blocks for accurate Links, so it's important to get the
maximum coverage possible, while still maintaining quality.
Increasing the maximum Number of Features can improve coverage relatively easily. You can use
the Detection Threshold control to reject bad features automatically. If you enter a low detection
threshold value, features are detected evenly on all parts of the image, even if they would otherwise
have been rejected.
The Patch Size control determines how much bias is placed on detecting features on saddle points.
High values force features towards saddle points, which might not be desirable.
USER GUIDE
1518
Adjusting Grid Detection Parameters | Link Detection
The Feature Separation control sets the distribution of features in relation to each other. High
values spread features at even distances over the image. It is important that the features do not
cluster together, if this is the case, try increasing this value.
Increasing the separation too far can reduce the number of features detected dramatically, so use
caution.
Link Detection
The Links in a solve depend on solid Features detection, so it's important to make sure your features
coverage is good before linking. Links provide the curvature data from the lens so that the solve can
be as accurate as possible.
The Angle Threshold control sets how much offset tolerance is allowed between potential features
before they can be linked. Try increasing the Angle Threshold if there are missing links between
features, but higher values can introduce links between features that may be incorrect.
The image on the right shows some potentially poor links on the left-hand side.
USER GUIDE
1519
Adjusting Grid Detection Parameters | Link Detection
The Distance Threshold control determines how far apart Links can be before they are merged into
a single, averaged link. Try increasing the Distance Threshold if features are removed incorrectly
after Links Detection.
The Peak Threshold control determines how much directional tolerance is allowed between
potential features before they can be linked. Reducing the Peak Threshold can increase viable links
with low contrast lens reference grids.
Proceed to Removing Lens Distortion from an Image when you're satisfied with your grid.
USER GUIDE
1520
Removing Lens Distortion from an Image | Link Detection
Note: You can also use STMaps to remove and apply distortion. See Working with STMaps
for more information.
1. Read in the sequence from which the reference grid was taken.
2. Copy and paste the LensDistortion node containing the grid analysis (described in Estimating Lens
Distortion Using a Grid), then connect it to the sequence and a Viewer.
USER GUIDE
1521
Removing Lens Distortion from an Image | Link Detection
You can now apply your VFX work before redistorting the plate back into its original state.
4. If you don't want to reformat the image, or only a small amount of the image is missing, you can
bring more image data into the format bounds using the Adjust Format controls.
5. Enable Override and then use the Add Pixels and Adjust Aspect controls to enlarge the format
as required.
USER GUIDE
1522
Removing Lens Distortion from an Image | Link Detection
Note: You can use expressions to control the number of pixels added as a percentage of
the format by right-clicking the Add Pixel control and selecting Add Expression. For
example, input.width*0.05 adds pixels equal to 5% of the input format's width.
Tip: You can also preserve overscan data by increasing the bounding box. The Add Pixels
control allows you to add an equal number of pixels on all sides of the image or you can edit
the bounding box manually by enabling Override and using the outputBBox controls.
6. You can now track, matchmove, composite, and so on in the undistorted space before
redistorting the image. See Applying Lens Distortion to an Image for more information.
USER GUIDE
1523
Estimating and Removing Lens Distortion Using Lines | Link Detection
The LensDistortion node has five tools for selecting and drawing features and lines in the Viewer:
Select - a multi-purpose tool used to select, move, and delete features and lines.
Select Feature - used to select, move, and delete features. You cannot affect lines using this
tool.
Select Line - used to select, move, and delete lines. You cannot affect features using this tool.
Add Feature - used to add, select, move, and delete features. You cannot affect lines using this
tool.
Add Line - used to add and delete lines. You can connect existing features or create new lines
using this tool.
Tip: You can also draw lines immediately using the Add Line tool, but adding features first
can be more accurate.
USER GUIDE
1524
Estimating and Removing Lens Distortion Using Lines | Link Detection
3. When the features are complete for a particular line in the image, switch to the Add Line tool.
4. Select the first feature in the Viewer and then click the next feature to add a line between the two.
Tip: When you've finished drawing a line, either select a different tool or press Enter to
finish the current line before starting another.
Tip: You can adjust the position of features and lines using the selection tools in the Viewer.
5. The solve requires at least as many lines as there are Distortion Parameters to calculate the
distortion. In the case of NukeX Classic, two vertical and two horizontal to cover the
Denominator and Centre parameters. Good line drawing practices include:
USER GUIDE
1525
Estimating and Removing Lens Distortion Using Lines | Link Detection
• Drawing lines with three or more features - lines with only two points are ignored.
• Drawing longer lines - they contain more useful information on the curvature resulting from
lens distortion.
• Distributing lines evenly - avoid biasing the solve by covering as much of the image as
possible.
The following example shows a typical set of lines.
Tip: Clicking Solve again can improve the result in some cases.
7. When you're happy with the solve, switch the Output Mode to Undistort.
USER GUIDE
1526
Estimating and Removing Lens Distortion Using Lines | Link Detection
Note: You can also output the distortion as an STMap for use in other images. STMaps
contain the pre-computed warp data in the motion channel, allowing you apply the warp
quickly and easily. See Working with STMaps for more information.
Nuke takes the estimated distortion and uses the result to 'straighten' the feature links.
You may notice that the lines expand beyond the bounding box of the footage, which can mean
you're losing image data.
8. Set the Format control to Reformat and select a larger format to include the grid. For example, if
your original grid is UHD_4K, you might reformat to 8K_LatLong.
Reformatting the feature lines deforms it into a characteristic bow tie shape. Any areas of the
image where there is no data are overscanned, meaning the last pixel available is duplicated to
the edge of the format. The area at the bottom of the image in the center shows overscan.
You can now apply your VFX work before redistorting the plate back into its original state.
USER GUIDE
1527
Estimating and Removing Lens Distortion Using Lines | Link Detection
9. If you don't want to reformat the image, or only a small amount of the image is missing, you can
bring more image data into the format bounds using the Adjust Format controls.
10. Enable Override and then use the Add Pixels and Adjust Aspect controls to enlarge the format
as required.
Note: You can use expressions to control the number of pixels added as a percentage of
the format by right-clicking the Add Pixel control and selecting Add Expression. For
example, input.width*0.05 adds pixels equal to 5% of the input format's width.
Tip: You can also preserve overscan data by increasing the bounding box. The Add Pixels
control allows you to add an equal number of pixels on all sides of the image or you can edit
the bounding box manually by enabling Override and using the outputBBox controls.
11. You can now track, matchmove, composite, and so on in the undistorted space before
redistorting the image. See Applying Lens Distortion to an Image for more information.
USER GUIDE
1528
Applying Lens Distortion to an Image | Link Detection
Note: You can also use STMaps to remove and apply distortion. See Working with STMaps
for more information.
1. Copy and paste the LensDistortion node containing the grid analysis (described in Estimating Lens
Distortion Using a Grid), then connect it downstream of your VFX work.
2. Change the Mode control to Redistort to reverse the warp that was applied during the
undistortion of the plate.
3. Merge the redistorted VFX work back over the plate to complete the comp.
The undistorted plate and comp The comp work after redistortion
USER GUIDE
1529
Working with STMaps | Link Detection
4. Set the STMap UV channels control to the motion layer to remove the distortion.
You can now track, matchmove, composite, and so on in the undistorted space before
redistorting the image.
5. After the comp work is complete, you can warp the VFX work by applying the backward layer in
the UV channels control using another STMap node.
USER GUIDE
1530
Working with STMaps | Link Detection
6. The final step is merging the warped VFX work back over the original image to create the comp.
The output from nodes placed before the second STMap node are distorted by the same warp as
the sequence.
USER GUIDE
1531
Tracking with PlanarTracker
PlanarTracker is a powerful tool for tracking surfaces that lie on a plane in your source footage.
Planar tracking is often better than tracking individual points (with the Tracker node for instance) as it
takes a great deal more information into account and gives you a more accurate result. A rigid
surface, like a wall or a side of an object, are good planes to track. You can use your tracking results
to replace the tracked plane with another image for instance. You can define the region to track by
creating and animating roto shapes.
USER GUIDE
1532
Tracking a Plane | Drawing a Plane to Track
Tracking a Plane
Before you can track a plane, you need to draw one using the Roto node.
For instance, a wall or a flat side of an object are good planes, but you can also get good results
tracking faces or people. It’s also important that the plane you’re tracking has some texture and that
the plane isn’t completely obscured at any point of the tracking. Tracking surfaces without texture and
few features to track is not likely to produce good results.
1. You can do one of the following:
• Insert a PlanarTracker node by either selecting Transform > PlanarTracker, or by pressing tab,
typing PlanarTracker, and pressing Return. This inserts a Roto node that is already in
PlanarTracker mode. You can use this to draw a Bezier shape, which is automatically added as a
track object. The shape's boundary appears in purple, denoting this, and the shape is
automatically added to a layer called PlanarTrackLayer1 in the stroke/shape list.
OR
• Create a Roto or RotoPaint node and use it to draw a Bezier shape around the plane you want to
track. Your new shape’s boundaries appear in red in the Viewer, and a Bezier shape item
appears in the stroke/shape list. The shape remains as a normal roto shape until it is converted
into a track object.
USER GUIDE
1533
Tracking a Plane | Tracking the Footage
2. If you’re drawing more than one shape, you can arrange them in the stroke/shape list to tell
PlanarTracker that they are different layers. Order your shapes from closest to camera (top of the
list) to furthest away (bottom of the list), and PlanarTracker automatically holds out any track
layers above the current one.
3. Make sure you’re still on the same frame as you used to draw the Bezier shape.
Note: When you select a frame to draw a roto shape on, that frame becomes your
reference frame. When you proceed with tracking your plane it’s important that you’re
always starting on the same reference frame. Move to your reference frame using the Go to
Reference Frame button . In the course of the process you may decide to change your
reference frame. You can do this by clicking Set Reference Frame in the Viewer.
Depending on whether you have chosen to insert a PlanarTracker node, or a Roto (or RotoPaint)
node, do one of the following:
USER GUIDE
1534
Tracking a Plane | Tracking the Footage
1. Use the tracking tools above the Viewer to track the Roto shape.
Note: You can only toggle a shape between being a roto shape or a track object, after
converting the Roto shape into a track object.
4. Select the Tracking tab in the Roto node properties to display the tracking data, as shown below.
USER GUIDE
1535
Tracking a Plane | Tracker Menu Options in the Viewer
USER GUIDE
1536
Tracking a Plane | Tracking Controls
Tracking Controls
Use the Tracking buttons to track backwards or forwards throughout the whole footage, or if you
want, select a specified frame range.
You can also track on a frame by frame basis. For example, if the plane you’re tracking is visible
throughout the footage, forward tracking might be all you need. If the plane is only partially visible
over a part of the footage though, it might be a good idea to first track the part with the whole plane
visible, and then track the rest of the footage separately.
With the Tracking controls you can track and re-track your footage. For more information see
Tracking and Stabilizing .
USER GUIDE
1537
Tracking a Plane | Planar Tracker Surface Controls
• center planar surface - Select this to center the planar surface in the Viewer during playback.
• display planar surface - Select this to display the boundary of the planar surface.
• enable planar surface editing - Select this so that you can edit the planar surface by dragging the
corner points in the Viewer.
• display grid - Select this to display a grid over the planar surface.
• set planar surface to image bounding box - Select this to change the planar surface to be the
same as the image bounding box.
Keyframe Controls
You can set and remove keyframes, and go to previous or next keyframes using the keyframe
controls above the Viewer.
USER GUIDE
1538
Tracking a Plane | Layer Dropdown
Layer Dropdown
You can use the layer dropdown to quickly select various PlanarTracker layers, or to add a new layer.
CornerPin Dropdown
You can use the CornerPin dropdown to insert a CornerPin node. The CornerPin2D tool is designed
to map the four corners of an image sequence to positions derived from tracking data. In practice,
this allows you to replace any four-cornered feature with another image sequence.
The CornerPin dropdown provides you with several different kinds of CornerPin you can choose
from:
• relative - to warp the image according to the relative transform between the current frame and the
reference frame. The image remains unchanged in the reference frame. You can also pick the baked
version of the relative CornerPin node. A baked node has the keyframe values copied from
PlanarTracker, rather than having them expression linked.
USER GUIDE
1539
Tracking a Plane | Tracking Tab Menu Options
• absolute - to use the to and from controls to place the image exactly within the selected plane. This
may skew the image throughout the footage. This attaches and automatically sets its format to the
dimensions of any currently selected node. You can also pick the baked version of the absolute
CornerPin node. A baked node has the keyframe values copied from PlanarTracker, rather than
having them expression linked.
• stabilize - to apply an inverse transform on the image, which effectively locks the image in its place
and stabilizes it in the footage. This type of corner pinning is most useful for drift corrections and
making sure your tracking results are reliable. You can also select Tracker to create a baked Tracker
node for further reducing jitter. You can also pick the baked version of the stabilize CornerPin node.
A baked node has the keyframe values copied from PlanarTracker, rather than having them
expression linked.
• Tracker - creates a Tracker node with four tracks set to each of the tracked corner points. These
tracked points give you access to the Tracker's comprehensive functions, such as track averaging
and enhanced smoothing controls. See Tracking and Stabilizing for more information.
Settings
track channels Use this dropdown to select the channel set on which you want to
track.
image channels Use this to select an individual channel from the channel set. You do
not need to select an individual channel, and instead can leave it as
none, the default.
pre-track filter Before image patches are compared, the selected filter is applied. You
can select one of the following options:
• none - This disables all pre-filtering, which allows you to have full
control of tuning the input image for tracking.
• adjust contrast - This stretches the image contrast to better suit the
tracking algorithm. This option is recommended.
• grayscale - This converts any input RGB channels to a grayscale
image for faster processing.
adjust for luminance If your footage changes brightness over time, either gradually or
USER GUIDE
1540
Tracking a Plane | Tracking Tab Menu Options
clamp super-white, sub- Select this to clamp the tracking patch pixel values to lie between 0 and
zero footage 1.
hide progress bar As it is possible to stop a track using the tools above the Viewer, you
can choose to hide the progress dialog that appears when you track a
shape.
Export
You can use the CornerPin dropdown to select the type of corner pin node you want to insert. See
CornerPin Dropdown for more information about the different kinds of CornerPin. After you have
selected the required type of CornerPin, you can press Create to insert it.
Select the link output checkbox to link to the PlanarTracker output so that exported nodes are
updated with the track.
Correction
The CornerPin points are populated automatically when you track an object. When you draw a roto
shape and convert it into a track object, Nuke automatically places 4 corner pins around the shape.
These are the points that are tracked.
You can correct the four automatically placed points by offsetting any or all of the four points. To
offset a point, simply click and drag it in the Viewer to the correct position.
Reference Frame
This is the frame used as a reference to compare all other frames containing tracking data. It defaults
to the first frame used to track. You can change this by entering a new frame number in the
reference frame input field.
USER GUIDE
1541
Tracking a Plane | Tracking Tab Menu Options
USER GUIDE
1542
Reusing a Track Result | Reusing a Tracked Plane
USER GUIDE
1543
Placing an Image on the Planar Surface | Reusing a Single Track
2. Check show plane and correct plane on the properties panel to make your planar
surface visible and to enable modifying it. You can also click the corresponding buttons above the
Viewer.
3. A rectangle indicates your planar surface in the Viewer. If the rectangle is very large, you can click
the Show grid lines button in the Viewer to use a guide grid in positioning your rectangle.
USER GUIDE
1544
Placing an Image on the Planar Surface | Reusing a Single Track
This shows grid lines corresponding with the current plane and it helps with realigning your plane.
5. Scrub in the timeline to make sure the planar surface sticks to the area you want.
USER GUIDE
1545
Placing an Image on the Planar Surface | Reusing a Single Track
6. The values in the CornerPin points show how your plane has warped from the reference frame to
the current frame. Adjust them in the Curve Editor by the selecting Curve Editor tab above the
Node Graph.
Note: While you can drag the CornerPin points data to another node or control by simply
dragging selecting all the points and dragging on any of the animation buttons. If you press
Ctrl/Cmd+drag, this creates an expression link to the CornerPin points data instead of
placing them in the new location.
7. Read in the image you want to place on the tracker planar surface.
8. To convert the new image to the same format, insert a Reformat node and select the correct
image format from the output format dropdown.
9. You can now add a CornerPin node to help you place an image on the plane. Click the Create
CornerPin2D Node dropdown in the Viewer (or use the Export dropdown in the properties panel)
and select the type of corner pinning you want to use.
See the 'Tracker Menu Options in the Viewer' section in Tracking a Plane for more information about
the different types of CornerPin.
10. Insert a Merge node and connect the CornerPin node to the A input, and the Roto node to the B
input. Your node tree should now look similar the one shown below:
USER GUIDE
1546
Placing an Image on the Planar Surface | Reusing a Single Track
11. You can now make any other required changes to your image. For example, you can adjust the
mix control in the Merge node's properties, to change the opacity of the image.
12. When you're happy, close all the node property panels to see the result clearly in the Viewer. You
can scrub through the timeline and make sure the position of the image in sorrect throughout.
USER GUIDE
1547
Camera Tracking
Nuke’s CameraTracker node is designed to provide an integrated camera tracking or match-moving
tool, which allows you to create a virtual camera whose movement matches that of your original
camera. Tracking camera movement in a 2D footage enables you to add virtual 3D objects to your 2D
footage.
Introduction
With the CameraTracker node, you can track the camera motion in 2D sequences or stills to create an
animated 3D camera or a point cloud and scene linked to the solve. You can automatically track
features, add User Tracks or tracks from a Tracker node, mask out moving objects using a Bezier or
B-spline shape, and edit your tracks manually. CameraTracker can solve the position of several types
of cameras as well as solve stereo sequences.
Quick Start
The tracking process is outlined below, whether you intend to track a sequence or a set of stills:
1. Connect the CameraTracker node to the sequence you want to track. See Connecting the
CameraTracker Node.
2. Mask out any areas of the image that may cause CameraTracker problems, such as movement
within the scene or burn-in. See Masking Out Regions of the Image.
3. If you're tracking stereoscopic or multi-view images, set the Principal View on the
CameraTracker or Settings tabs. See Working with Multi-View Scripts for more information.
4. Set the camera parameters, such as Focal Length and Film Back Size, if they are known. These
are described under Setting Camera Parameters.
5. Set the Source dropdown to Sequence or Stills, and then:
• If you intend to track a continuous Sequence of frames, set the tracking preferences using the
Settings tab Features and Tracking controls. See Tracking in Sequence Mode for more
information.
• If you're using Stills, you can track all frames in the same way as sequence tracking, or a subset
of Reference Frames using the +/- keyframe buttons above the Viewer or in the properties
panel. See Tracking in Stills Mode for more information.
6. You can place User Tracks to improve difficult solves, use an entirely manual tracking approach,
or set 3D survey points. You can use 3D survey points to tie your sequence to a known 3D world,
such as those created using stills. See Working with User Tracks for more information.
USER GUIDE
1548
Camera Tracking |
Tip: 3D survey points have replaced the ProjectionSolver workflow, but you can still add
ProjectionSolver nodes by pressing X in the Node Graph and entering ProjectionSolver as a
Tcl command.
USER GUIDE
1549
Connecting the CameraTracker Node |
USER GUIDE
1550
Masking Out Regions of the Image |
To mask regions of your sequence, attach a matte to the Mask input to define image regions that
should not be tracked. You can also use the source input’s alpha channel as a matte.
1. If you want to use a separate matte for masking, connect a Roto node to the CameraTracker Mask
input.
2. Scrub through the sequence and keyframe the roto shapes to cover the areas you don't want to
track.
You don't have to be too accurate with the mask, it's only intended to cover areas that are likely to
cause CameraTracker problems. For example, in the image shown, the actors and the copyright
burn-in are masked.
3. In the Properties panel, set Mask to the component you want to use as a mask:
• None - Track features in the whole footage.
• Source Alpha - use the alpha channel of the source clip to define which areas to ignore.
• Source Inverted Alpha - use the inverted alpha channel of the source clip to define which areas
to ignore.
• Mask Luminance - use the luminance of the mask input to define which areas to ignore.
USER GUIDE
1551
Masking Out Regions of the Image |
• Mask Inverted Luminance - use the inverted luminance of the mask input to define which
areas to ignore.
• Mask Alpha - use the mask input alpha channel to define which areas to ignore.
• Mask Inverted Alpha - use the inverted mask input alpha channel to define which areas to
ignore.
4. Track as normal using the automated Analysis Track button. See Tracking in Sequence Mode.
Note: There is no need to mask areas of the image when tracking manually - you specify
where User Tracks are placed.
USER GUIDE
1552
Working with Multi-View Scripts |
USER GUIDE
1553
Setting Camera Parameters |
Note: CameraTracker attempts to refine the focal length during the solve if you select an
Approximate option.
• Unknown Varying - select this option if the focal length is unknown and changing.
• Unknown Constant - this is the default option. Use this option if the focal length is unknown
and there is no zoom.
4. Either choose a Film Back Preset from the dropdown to populate the Film Back Size controls, or
if your camera isn't in the list, enter the Film Back Size manually.
USER GUIDE
1554
Setting Camera Parameters |
Tip: You can add your own defaults by editing the ../NukeScripts/camerapresets.py file in
the Nuke installation package.
USER GUIDE
1555
Tracking in Sequence Mode |
Note: If you intend to remove lens distortion manually using a separate LensDistortion
node, you should do that before you track the sequence. See Working with Lens Distortion.
Otherwise, set Lens Distortion to Unknown Lens before you solve the camera position to
force CameraTracker to calculate the distortion.
Before tracking, use CameraTracker's properties panel to control Viewer output and determine
tracking behavior:
1. On the CameraTracker tab, ensure that Source is set to Sequence.
2. If you intend to mask out parts of your image, set the Mask control to the matte source.
For example, if you're using the alpha channel from a Roto node attached to the Mask input,
select Mask Alpha. For more information, see Masking Out Regions of the Image.
Note: For stereoscopic or multi-view footage, set the Principal View on the
CameraTracker or Settings tab to the main tracking view. Any masking should be applied
to this view, which is then used to calculate the secondary camera.
USER GUIDE
1556
Tracking in Sequence Mode |
If you enter a low detection threshold value, features are tracked evenly on all parts of the image
and vice versa.
USER GUIDE
1557
Tracking in Sequence Mode |
USER GUIDE
1558
Viewing Track Data | Reviewing AutoTracks Curves
Consider masking out areas where tracks are consistently seeded and rejected, such as highly
reflective surfaces, and adjusting the Settings tab Tracking controls to increase track reliability.
See Masking Out Regions of the Image and Troubleshooting Sequence Tracks for more information.
Tip: Pressing F with focus on a curve maximizes the selected curve in the space available.
USER GUIDE
1559
Viewing Track Data | Reviewing AutoTracks Curves
Curves can indicate areas of the sequence where tracking encountered problems. For example, the
number of tracks curve on the right shows a significant dip on the current frame, as indicated by the
playhead position.
In this instance, you could try adjusting the Number of Features or Minimum Length and
retracking. See Troubleshooting Sequence Tracks
USER GUIDE
1560
Troubleshooting Sequence Tracks | Pre-Tracking Checks
Pre-Tracking Checks
• Play through the sequence before tracking and mask out any problem areas in the scene. Large
moving objects can confuse the tracking and solving process as can appear to be fixed areas of the
scene.
Tip: If you're compositing on moving elements, such as faces, try tracking and solving on
just the moving element using masks. You'll then get a camera that moves around the
element as if it was fixed in a single position.
• Textureless areas of the sequence, such as greenscreens, can cause features to cluster together in
other areas, affecting the track and solve.
Turn on Preview Features and use the distribution and separation controls to even out the
features. See Tracking in Sequence Mode
• Regular edges, such as striped patterns, in the scene can confuse CameraTracker.
Again, turn on Preview Features and use the Detection Threshold to force CameraTracker to use
corner-like images textures. See Tracking in Sequence Mode
• You can improve tracking data by adding User Tracks manually, see Working with User Tracksfor
more information.
Tip: Press F in the curve display to fit the selected track(s) to the available screen space.
USER GUIDE
1561
Troubleshooting Sequence Tracks | Reviewing and Refining Tracking Data
In the example, you can see that the number of tracks has dropped significantly around frames
180-200.
2. Move the Viewer playhead to the affected area and examine the tracked features in the Viewer.
3. If you increase the Min Length control in the properties panel, you'll start to see tracks turn red
as they fall below the threshold.
Min Length set at the default value, 3 frames. Min Length set to 50 frames.
4. Click Delete Rejected to remove all the tracks that fall below the specified threshold.
Tip: You can also remove tracks manually, by selecting them in the Viewer, right-clicking,
and choosing tracks > delete selected.
5. You can then retrack the affected frame range by clicking Update Track. See Retracking Partial
Frame Ranges for more information.
USER GUIDE
1562
Troubleshooting Sequence Tracks | Re-tracking Using Tracking Settings
You can also add User Tracks to improve tracking data before solving, see Working with User Tracks.
You can improve a set of feature tracks using the following controls and then retrack to improve your
chances of getting a good solve:
• Minimum Length - sets a threshold value for the minimum acceptable track length. Tracks that fail
to stick to the associated feature for this amount of frames are rejected.
In long slow camera moves, it is best to solve from long tracks generated in the shot. If there are
lots of short tracks, this can lead to noise on the calculated camera. Try removing the short tracks
before solving.
• Track Threshold - CameraTracker’s tolerance to change along the track is determined by this
control.
Reducing this threshold makes tracking more tolerant to image changes, potentially producing
longer tracks.
• Track Smoothness - sets the threshold for smooth track generation. Adjusting this value can be
useful in preventing poor tracks in complex sequences.
Increasing the smoothness value removes tracks that fail over time.
USER GUIDE
1563
Troubleshooting Sequence Tracks | Re-tracking Using Tracking Settings
• Track Consistency - sets the threshold for how inconsistent a feature track can be before
CameraTracker discards it and reseeds in a different location.
Click Delete Rejected to remove all the tracks that fall below the specified thresholds.
USER GUIDE
1564
Extending Existing Camera Tracks | Re-tracking Using Tracking Settings
Note: You can update tracking data as often as you like before solving, but once you've
solved the camera position, updating tracking data should only be used to add a relatively
small number of frames. See Updating Solves with Extended Tracking Data for more
information.
Original frame range track data. Updated track including the extended frame range.
Tip: If the transition between the ranges seems abrupt, you can retrack the frames around
the join using the method described in Retracking Partial Frame Ranges.
USER GUIDE
1565
Retracking Partial Frame Ranges | Re-tracking Using Tracking Settings
Note: You may notice that CameraTracker performs some analysis outside your selected
frame range. This can be necessary to extend existing tracks into the update range, avoid
creating duplicate tracks, and to combine the new tracks with existing tracking data.
USER GUIDE
1566
Tracking in Stills Mode | Re-tracking Using Tracking Settings
Note: If you intend to remove lens distortion manually using a separate LensDistortion
node, you should do that before you track the stills. See Working with Lens Distortion.
Otherwise, set Lens Distortion to Unknown Lens before you solve the camera position to
force CameraTracker to calculate the distortion.
USER GUIDE
1567
Still Photography Guidelines | General Guidelines
CameraTracker has different requirements depending on the subject of the stills. For example, stills
for a near-flat scenes are captured differently to those required for an interior set or model.
General Guidelines
• Don't crop your stills or transform them in anyway, such as rotation.
• Avoid dramatic changes in scale and angle between stills.
• To ensure you capture every part of the scene in 3 to 4 images, aim for a maximum change of 20-
25% in content between frames.
• Avoid unnecessary redundancy where still frames contain large portions of the previous frame.
• Avoid tracking stills containing multiple occlusions - features with complex overlap can result in
drastic changes in content between frames.
Shooting 3D Objects
When moving around an object, a photo every 15-25 degrees should be adequate, so a minimum of
16 shots for a full 360. Of course, taking more can improve the result.
USER GUIDE
1568
Still Photography Guidelines | Shooting Interiors
Shooting Interiors
For enclosed spaces, such as interiors, capture stills from the center facing outward and then around
the perimeter facing inward, rather than from different points within the space.
USER GUIDE
1569
Tracking Still Frames | Selecting the Frames to Track
USER GUIDE
1570
Tracking Still Frames | Adjusting the Features to Track
Scrub to the next frame you want to add as a reference frame and repeat the process until
you're happy with your set of reference frames.
Tip: If necessary, you can also use the delete reference frame button or the Delete
dropdown menu in the CameraTracker properties to remove frames from the set of frames
to analyze.
Note: For stereoscopic or multi-view footage, set the Principal View on the
CameraTracker or Settings tab to the main tracking view. Any masking should be applied
to this view, which is then used to calculate the secondary camera.
2. On the Settings tab, define the starting points for feature tracking:
• Number of Features - define the number of features you want to track in each frame.
USER GUIDE
1571
Tracking Still Frames | Adjusting the Features to Track
Ideally, you should use more than 200 tracks per frame. In most cases, the default 250 should be
sufficient, but in difficult solves you may consider using twice that number.
• Detection Threshold - set the distribution of features over the input image.
If you enter a low detection threshold value, features are tracked evenly on all parts of the image
and vice versa.
USER GUIDE
1572
Tracking Still Frames | Tracking the Selected Frames
USER GUIDE
1573
Viewing Reference Frames and Track Data | Tracking the Selected Frames
Tip: You can click-and-drag to scroll the gallery left and right, or click a thumbnail to move
the playhead to the corresponding reference frame. To adjust the size of the thumbnail
gallery, drag the top of the gallery up and down.
2. To display track information, hover over a feature or marquee select several features.
Note: If you make multiple selections, you won't see the track lengths in frames, only the
tracks themselves.
USER GUIDE
1574
Viewing Reference Frames and Track Data | Reviewing AutoTracks Curves
Tip: Pressing F with focus on a curve maximizes the selected curve in the space available.
Curves can indicate areas of the sequence where tracking encountered problems. For example, the
number of tracks curve on the right shows a significant dip on the current frame, as indicated by the
playhead position.
In this instance, you could try adjusting the Number of Features or Minimum Length and
retracking. See Troubleshooting Still Tracks
USER GUIDE
1575
Disconnected Frame Sets | Reviewing AutoTracks Curves
• work with the connected set by deleting the unconnected reference frames using the button or
Delete dropdown and tracking again, or
• if all the frames in the sequence are needed, create User Tracks that span the sets to connect them.
Make sure to define the tracks in as many frames as possible, and then track again based on the
User Tracks. See Linking Still Reference Frames.
Tip: When a camera track starts and ends in the same place, CameraTracker may not
automatically connect the end frame with the starting frame. You can set the Thumbnail
control to Tracked to review the connections created between stills, and then add User
Tracks between the two frames and click Update Track. See Working with User Tracks for
more information.
USER GUIDE
1576
Troubleshooting Still Tracks | Pre-tracking Checks
You can improve tracking data by adding User Tracks. See Working with User Tracks for more
information.
Pre-tracking Checks
• For standard sequences, avoid too much or too little redundancy between still frames, that is,
frames that contain large portions of the previous frame. As a guide, try to capture every part of the
scene in 3 to 4 images, aiming for a maximum change of 20-25% in content between frames.
• Try to capture the same object in at least 3, but preferably 4 photos.
For example, when moving around an object, a photo every 15-25 degrees would be adequate
(approximately 16 shots for a full 360).
Post-Tracking Refinements
You can refine a set of feature tracks using the following controls and then retrack to improve your
chances of getting a good solve:
• Minimum Length - sets a threshold value for the minimum acceptable track length. Tracks that fail
to stick to the associated feature for this amount of frames are rejected.
In long slow camera moves, it is best to solve from long tracks generated in the shot. If there are
lots of short tracks, this can lead to noise on the calculated camera. Try removing the short tracks
before solving.
• Track Threshold - CameraTracker’s tolerance to change along the track is determined by this
control.
Reducing this threshold makes tracking more tolerant to image changes, potentially producing
longer tracks.
Tip: Press F in the curve display to fit the selected track(s) to the available screen space.
USER GUIDE
1577
Troubleshooting Still Tracks | Retracking Partial Frame Ranges
Note: You may notice that CameraTracker re-detects features on existing frames before re-
tracking. This can happen when the cached feature data has been purged and needs to be
rebuilt.
USER GUIDE
1578
Working with User Tracks | Retracking Partial Frame Ranges
You can create User Tracks before tracking and solving to lock the camera to a particular part of the
shot or afterwards to help improve the results.
USER GUIDE
1579
Adding and Positioning User Tracks | Retracking Partial Frame Ranges
1. Enable the fast-add button at the top of the Viewer and click in the Viewer to add User Tracks
or click Add Track on the UserTracks tab in the properties panel.
Note: Clicking Add Track places the new track in the center of the current Viewer.
Tip: You can quickly add User Tracks by holding Ctrl/Cmd+Alt and clicking in the Viewer.
USER GUIDE
1580
Adding and Positioning User Tracks | Retracking Partial Frame Ranges
• Keyframe (blue) - the first keyframe in the sequence. Adding more keyframes adds a zoom
window per keyframe.
Tip: You can click on a keyframe zoom window to instantly jump to that frame.
Tip: You can hide the zoom windows by setting the Zoom Window Viewer control to Off.
2. Drag the crosshair in the center of the anchor over the feature to be tracked or manually adjust
the track x and y fields in the UserTracks list.
3. Refine the track position by clicking and dragging in the current frame zoom window.
Tip: You can change the magnification of zoom windows by holding Shift and dragging the
magnifying glass cursor away from the center of the window.
To resize a zoom window, drag its lower right corner to a new location.
4. Once you're happy with the track's position, proceed to User Tracking Methods.
USER GUIDE
1581
User Tracking Methods | Auto User Tracks
4. If a track fails or drifts, adjust the position of the tracking anchor by dragging the anchor in the
zoom window.
USER GUIDE
1582
User Tracking Methods | Manual User Tracks
5. Scrub through the sequence a few frames and repeat. Continue on through to the end of the
sequence.
6. At each frame, a new keyframe window is added to the right of the zoom window.
Tip: Generally, you would only manually create User Tracks in stills. Nuke's Tracker node
can create reliable tracks for continuous sequences which you can then import as User
Tracks.
USER GUIDE
1583
User Tracking Methods | Extracting User Tracks
Tip: The keyframe windows at the top of the Viewer show you all of the keyframes for the
currently selected User Track. You can click on a keyframe window to jump directly to that
frame.
6. When you've finally keyframed your User Track in all of the desired frames, the tick marks on the
Viewer's timeline are set on all of those keyframes. By using Alt+left or right arrow, you can
quickly jump to the previous or next keyframe. Doing this while looking at the zoom window
helps show you what keyframes your User Track is slightly off in, making this a very useful trick
for getting perfectly placed User Tracks.
You might also extract auto-tracks to User Tracks if you want to export some auto-tracks to be used
in a Tracker node for 2D work.
1. Right-click on an auto-track in the Viewer and select tracks > extract user track.
The selected track is prefixed with extr. and placed in the User Tracks table.
2. If a track fails or drifts, adjust the position of the tracking anchor by dragging the anchor using the
zoom window.
3. Scrub through the sequence a few frames and repeat. Continue on through to the end of the
sequence.
4. At each frame, a new keyframe window is added to the right of the zoom window.
Importing a Tracker
You can quickly create User Tracks by importing keyframes and tracking data from a Tracker node
within the same script.
1. Click on the UserTracks tab in the properties panel to display the track table.
2. Click Import Tracker.
3. The Select Tracker to Import From dialog displays.
4. Select the required Tracker node from the tracker node dropdown.
A new User Track is added to the tracks list.
USER GUIDE
1584
Tracking Assists | Importing a Tracker
Tracking Assists
Auto-tracking data can be improved by seeding User Tracks in a sequence, as CameraTracker
assumes manually placed tracks are superior to auto-tracking. Re-tracking after adding User Tracks
forces CameraTracker to recalculate auto-tracks using more accurate data.
1. Track your sequence using the steps described in Tracking in Sequence Mode or Tracking in Stills
Mode
2. Track one or two User Tracks using the methods described in User Tracking Methods.
Tip: Adding tracks is time consuming, but the more User Tracks you add, the better the
result is likely to be.
USER GUIDE
1585
Tracking a Scene Manually | Importing a Tracker
The key thing to remember is that you typically need at least 8 to 16 User Tracks per frame to get a
reliable solve.
1. Use the steps described in Manual User Tracks to create the required number of manual tracks.
2. Proceed to Solving the Camera Position.
USER GUIDE
1586
Linking Still Reference Frames | Importing a Tracker
Note: The above workflow describes how to use User Tracks to help connect frames that
weren't automatically tracked. Sometimes, there are so many poorly tracked frames that
instead of hoping that linking frames and clicking Track works, it might be easier to start
from scratch and perform an entirely manual track. See Tracking a Scene Manually for more
details.
USER GUIDE
1587
Assigning 3D Survey Points | Importing a Tracker
Note: 3D survey points have replaced the ProjectionSolver workflow, but you can still add
ProjectionSolver nodes by pressing X in the Node Graph and entering ProjectionSolver as a
Tcl command.
Tip: You can create a 3D model for your footage using ModelBuilder or an external
application.
USER GUIDE
1588
Assigning 3D Survey Points | Importing a Tracker
7. In the CameraTracker properties panel, click the UserTracks tab to display a list of tracks.
The user track table displays the pixel error when matching the 3D vertex to the User Track. You
can use this to review how well the camera solve fits the 3D survey points.
If the solver could not match a point, there will be a high error value. If this happens, try looking
at the 2D feature positions to check they correspond to the same point and also double check the
3D vertex on the model.
8. Repeat the process for the required User Tracks in the scene, and then enable the s checkbox for
each track in the User Tracks table.
The s designates the points as known 3D survey positions during the solve, allowing
CameraTracker to create a camera positioned correctly for the geometry.
Tip: If you have multiple footage sources of the same scene or content available, you can
also use survey points to solve each of your sources and then register them all in the same
world. See Combining Solves.
USER GUIDE
1589
Solving the Camera Position | Importing a Tracker
In the CameraTracker properties panel, click Solve. The solver selects a subset of keyframes
positioned relatively far apart so that there is sufficient parallax in the images to define the 3D points
for the tracks.
When the solve is complete, the Viewer displays the tracked features with solve data applied.
USER GUIDE
1590
Viewing Solve Data | Importing a Tracker
A traffic light scheme applies to the 2D tracks to help find good thresholds for track rejection in the
AutoTracks tab - amber by default, green for good tracks, and red for poor tracks.
The circles and crosses are reprojected solved auto-tracks. The closer the 3D point circles are to the
feature points, the better the solve.
CameraTracker also creates a point cloud in the 3D Viewer allowing you to cross-check the relative
positions of the 2D and solved 3D points. Select some points in 2D and then press Tab in the Viewer
to switch between 2D and 3D space to check the point positions.
USER GUIDE
1591
Viewing Solve Data | Reviewing AutoTracks Curves
Several points selected in the 2D sequence. The same points shown in the 3D Viewer.
Tip: Pressing F with focus on a curve maximizes the selected curve in the space available.
Curves can indicate areas of the sequence where solving encountered problems. For example, the
root mean square error curve on the right shows a significant blip on the current frame, as indicated
by the playhead position. In this instance, you could try adjusting the Keyframe Spacing or
Smoothness and updating the solve. See Troubleshooting Solves
USER GUIDE
1592
Viewing Solve Data | Reviewing Solved User Tracks
The User Track's 3D position (X,Y,Z) is also shown in the table, as well as in the 3D Viewer.
Tip: You can create a User Track after solving the camera in order to extract a specific 3D
position in the shot. To produce an accurate 3D point, the User Track must be defined in 3
or more frames with good parallax. When you've created the User Track, select it in the User
Tracks table and click the Update XYZ button to triangulate the 3D position from the current
solve.
Tip: After auto-tracking, you might want to select an auto-track and extract it as a User
Track. This hints to the solver that this is an important track and should be locked down on.
This is particularly useful if a particular part of the scene is not solving properly, despite the
auto-tracks appearing to have tracked well in that region.
USER GUIDE
1593
Viewing Solve Data | Previewing Matchmove Quality
Method 1
1. In the 2D Viewer, right-click on a track point (or several selected points, ideally on the same plane)
and select create > cube, for example.
CameraTracker creates a Cube node and places it in the average position of the selected points.
You are going to use the cube to test how well it sticks to the input footage.
Tip: If necessary, you can adjust the size of the cube using the uniform scale control in the
Cube properties.
2. In the CameraTracker properties, set the Export menu to Scene+ and click Create.
CameraTracker creates a 3D Scene with a Camera, PointCloud, ScanlineRender, and a
LensDistortion node set to undistort the input.
3. Connect your Cube node to one of the Scene node's inputs.
USER GUIDE
1594
Viewing Solve Data | Previewing Matchmove Quality
5. Scrub through the timeline to see whether the cube and the point cloud stick to the footage. If
they do, delete any nodes you no longer need (such as the Cube node) and proceed to Adjusting
the Scene. If they don't, proceed to Troubleshooting Solves.
Method 2
1. In the CameraTracker properties, set the Export menu to Camera and click Create.
CameraTracker creates a Camera node that emulates the camera used on set.
2. In the 2D Viewer, right-click on a track point (or several selected points, ideally on the same plane)
and select create > cube, for example.
CameraTracker creates a Cube node and places it in the average position of the selected points.
You are going to use the cube to test how well it sticks to the input footage.
USER GUIDE
1595
Viewing Solve Data | Previewing Matchmove Quality
Tip: If necessary, you can adjust the size of the cube using the uniform scale control in the
Cube properties.
in step 1 and click the button to lock the 3D view to that camera.
7. At the top of the Viewer, set the Viewer composite dropdown menu to over, so that you are
viewing your CameraTracker node over the same CameraTracker node.
This overlays the input image currently undistorted by CameraTracker over the point cloud in the
3D Viewer.
8. Scrub through the timeline to see whether the cube you created in step 2 and the point cloud
CameraTracker generated stick to the footage. If they do, delete any nodes you no longer need
(such as the Cube node) and proceed to Adjusting the Scene. If they don't, proceed to
Troubleshooting Solves.
USER GUIDE
1596
Troubleshooting Solves | Using Curve Thresholds to Delete Tracks
Troubleshooting Solves
CameraTracker has several troubleshooting workflows available to improve solve accuracy, but
ultimately, good solves rely on good tracking data.
Tip: Press F in the curve display to fit the selected track(s) to the available screen space.
In the example, you can see that the error curve has increased significantly around frame 195.
2. Move the Viewer playhead to the affected area and examine the tracked features in the Viewer.
3. If you decrease the Max Track Error control in the properties panel, you'll start to see tracks turn
red as they fall below the threshold.
USER GUIDE
1597
Troubleshooting Solves | Using Curve Thresholds to Delete Tracks
Tip: You can also remove tracks manually, by selecting them in the Viewer, right-clicking,
and choosing tracks > delete selected.
5. You can then resolve the affected frame range by clicking Update Solve.
6. Improve the solve further using the Settings tab Solving controls:
• Camera motion - set the camera movement that CameraTracker should account for during the
solve calculation.
• Keyframe Separation - adjusts the separation value between keyframes.
High separation values generate fewer keyframes with a greater spread and are typically used
for slower camera motion.
Low values generate more keyframes with a tighter spread and are typically used for rapid
camera motion.
Note: When enabled, the Reference Frame control determines where the first keyframe is
placed.
• Smoothness - higher values can help smooth a camera path by adding 'weight' to iron out the
path.
• Reference Frame - allows you to specify the start frame for updating camera solves, as well as
determining where the first keyframe is placed.
USER GUIDE
1598
Troubleshooting Solves | Refining a Solve
Refining a Solve
On the AutoTracks tab, in the Refinement section, there are three refinement controls to help
improve your solve. If the Error and per frame controls on the CameraTracker tab show a relatively
high value, try refining the solve using the inlier tracks. The inliers are defined by the curve thresholds
and can refine the focal length, camera position or camera rotation (or a combination of these). You
can manually edit the camera solve first on the Output tab, then select:
• Focal Length - Check to refine the camera’s focal length.
• Position - Check to refine the camera position.
• Rotation - Check to refine the camera rotation.
USER GUIDE
1599
Updating Solves with Extended Tracking Data | Refining a Solve
For example, if you've calculated a solve from frames 1-10, the 3D point for a given track is based on
the data from only those frames. Updating that track by extending it to frame 20 attempts to fit the
2D point from frames 11-20 to the calculated 3D point. This generally doesn't produce a good fit, and
the solve error for the extended range is increased.
USER GUIDE
1600
Adjusting the Scene | Refining a Solve
You can:
• Set the ground plane, axes, or origin for the scene. See Setting the Ground Plane and Axes.
• Manually adjust the scene using the Scene tab's Scene Transform controls. See Transforming the
Scene Manually.
• Use known distances, measured on set, to scale a scene more accurately. See Using Scene
Constraints.
USER GUIDE
1601
Setting the Ground Plane and Axes | Refining a Solve
Setting the ground plane or set of axes is designed to provide CameraTracker with a sensible frame of
reference. While doing so is not strictly necessary, it can simplify working in the 3D environment.
Before placing the ground plane, scan through your sequence to find a frame with good track and
solve data in an area that you know to be at ground level.
1. Hover over likely points to display the track and solve data, typically points with RMS error less
than 1.
2. Hold Shift and select your chosen points, from multiple frames if necessary.
3. Switch between the 2D and 3D Viewers to confirm the position of the selected points.
Ground plane points selected in the 2D Viewer. The same points viewed in the 3D Viewer.
4. Switch back to the 2D Viewer and right-click a selected point to display the track options menu.
5. Select ground plane > set to selected to orient the camera in relation to the selected points.
Points designated as the ground plane are highlighted in magenta and the camera is reoriented in
relation to the new 'ground'.
USER GUIDE
1602
Setting the Ground Plane and Axes | Setting Axes Individually
Camera orientation before the ground Camera orientation after the ground
plane shift. plane shift.
USER GUIDE
1603
Setting the Ground Plane and Axes | Setting the Origin Within a Scene
Point before the origin shift. Point after the origin shift.
USER GUIDE
1604
Transforming the Scene Manually | Transforming Using Channel Files
Note: This control is only displayed if you've scaled the scene on individual axes.
• uniform scale - set a scale for your scene. You can also scale the scene using actual measurements
taken on set, see Using Scene Constraints for more information.
Alternatively, you can also use the Local matrix to perform transforms on your scene.
You can transform the scene using channel files by clicking the button:
• Import chan file - import a channel file and transform the input object according to the
transformation data in the channel file.
• Export chan file - export the translation parameters that you’ve applied to the input object as a
channel file. This is a useful method of sharing setups between artists.
USER GUIDE
1605
Transforming the Scene Manually | Transforming Using Snap To Position
USER GUIDE
1606
Using Scene Constraints | Transforming Using Snap To Position
The unit of measure used is up to you, because Nuke equates any value as being equal to one unit in
3D space. The image shows a point cloud and camera with two User Tracks marked out. The blue
square represents one unit of measure, so the smaller squares represent one tenth of that unit. So, if
you measured on set in meters, one small square could be equal to a meter, centimeter, or
millimeter.
USER GUIDE
1607
Using Scene Constraints | Transforming Using Snap To Position
USER GUIDE
1608
Using Solve Data | Transforming Using Snap To Position
USER GUIDE
1609
Creating Camera Nodes | Creating a Camera Rig
Camera node data can be used in various Nuke workflows, such as Creating Dense Point Clouds
and Generating Depth Maps.
USER GUIDE
1610
Creating Camera Nodes | Creating a Camera Set
3. Click Create.
Note: If you try to create a rig with only one view, an error is displayed.
A Camera node is added to the Node Graph for each view present in the script. Expression linked
cameras are linked to the CameraTracker node with a green expression arrow.
Camera node data can be used in various Nuke workflows, such as Creating Dense Point Clouds
and Generating Depth Maps.
USER GUIDE
1611
Creating Camera Nodes | Creating a Camera Set
You could then write the camera data to an .fbx file ready for import into Modo or Maya for
projection painting work.
USER GUIDE
1612
Creating Scenes | Creating a 3D Scene with ScanlineRender and LensDistortion
Creating Scenes
CameraTracker can create a ready-to-use 3D scene containing a point cloud, camera, and Scene node
from the track and solve data. The Scene+ option adds LensDistortion and ScanlineRender nodes in
addition to the standard scene nodes.
1. Select Scene from the Export dropdown menu.
2. Enable or disable the Link output control to determine whether the scene's Camera node is
expression linked or baked:
• When enabled, CameraTracker creates an expression-linked camera so that any adjustments
made in the properties panel's Output > Camera controls update the camera.
• When disabled, any adjustments made are ignored by the camera.
3. Click Create.
CameraTracker adds Camera, CameraTrackerPointCloud, and Scene nodes to the Node Graph.
Expression linked cameras are linked to the CameraTracker node with a green expression arrow.
USER GUIDE
1613
Creating Scenes | Creating a 3D Scene with ScanlineRender and LensDistortion
USER GUIDE
1614
Creating Point Clouds | Creating a 3D Scene with ScanlineRender and LensDistortion
USER GUIDE
1615
Creating Cards | Creating a 3D Scene with ScanlineRender and LensDistortion
Creating Cards
CameraTracker can automatically create a 3D card for each solved frame using the camera to project
the image at that frame onto the card.
1. Select Cards from the Export dropdown menu.
2. Enable or disable the Link output control to determine whether the cameras are expression
linked or baked:
• When enabled, CameraTracker creates expression linked cameras so that any adjustments
made in the properties panel Output > Camera controls update the cameras.
• When disabled, any adjustments made are ignored by the cameras.
3. Click Create.
If you're processing a large amount of frames, a confirmation dialog displays.
4. Click Yes to continue or No to cancel the export.
CameraTracker adds a Group node to the Node Graph containing Card, FrameHold, and Camera
nodes for every frame specified connected to a Scene node.
5. Double click the Group to open the properties panel, then click the S above the panel to open the
group in the Node Graph.
6. Use the Group node's z slider to control the card distance from the camera. You can use this
setting to create a pan and tile dome at this distance from the camera.
The Cards are scaled automatically using the camera settings.
USER GUIDE
1616
Creating Cards | Creating a 3D Scene with ScanlineRender and LensDistortion
USER GUIDE
1617
Combining Solves | Creating a 3D Scene with ScanlineRender and LensDistortion
Combining Solves
Sometimes, you might have multiple footage sources of the same scene or content available. For
example, you might have footage from witness cameras, or someone has taken detailed still photos
of the scene. CameraTracker provides a way to solve each of your sources and then register them all
in the same world. This allows you to leverage a high-quality camera track from a secondary source
that is good to solve from, and use it in another source that's difficult to solve. You can also use this
technique to tie detailed close-up stills to wide-angle shots.
The key idea is that you pick one of your sources as the 'master' solve. This should be footage that
has good parallax, for example a set of wide-angle stills taken on set. You also need some geometry
created from the solve data. The geometry is to establish 3D survey points, which are then used to tie
together the 'master' and the satellite camera solves.
Tip: You can copy the X, Y, Z position from a track in one CameraTracker node to another by
right-clicking on a track and selecting copy > translate.
USER GUIDE
1618
Placing Objects in the Scene | Creating a 3D Scene with ScanlineRender and LensDistortion
Tip: You might find that swapping between the 2D plate and 3D point cloud helps to locate
potential points.
2. Drag a marquee over the required points or hold down the Shift key and click individual points.
3. Right-click a selected point in the 2D Viewer and choose the create menu to display the available
geometry.
4. Select the required shape to place it in the scene using the average position of all selected points.
The following example shows two cards placed in the scene using points from the vertical and
horizontal planes.
USER GUIDE
1619
Accounting for Lens Distortion | Distorting Your CG Elements to Match Your 2D Footage
Note: The above assumes you set LensDistortion to Unknown Lens before creating the
solve. If you set Lens Distortion to No Lens Distortion and used a separate LensDistortion
node to remove lens distortion from your footage before camera tracking, you can use the
same LensDistortion node to either apply the distortion to your CG elements or to undistort
your 2D footage. See Working with Lens Distortion for more information on using the
LensDistortion node in Nuke.
USER GUIDE
1620
Accounting for Lens Distortion | Undistorting Your 2D Footage to Match Your CG Elements
CameraTracker creates a LensDistortion node that is set to remove the lens distortion that exists
in your 2D footage.
2. Connect the LensDistortion node to the output of your 2D footage.
The LensDistortion node removes the lens distortion in your 2D footage to match your CG
elements.
3. Connect the LensDistortion node to the bg input of ScanlineRender.
The undistorted 2D footage is used as a background image for the 3D scene.
USER GUIDE
1621
About the Lens Model | Undistorting Your 2D Footage to Match Your CG Elements
In normalized coordinates from the distortion center, Xu and Xd are equal to the same point in an
undistorted plate and a distorted plate respectively.
In normalized coordinates from the distortion center, (xu, yu) and (xd, yd) are equal to the same
point in an undistorted plate and a distorted plate respectively.
USER GUIDE
1622
About the Lens Model | Undistorting Your 2D Footage to Match Your CG Elements
USER GUIDE
1623
Using MatchGrade
This chapter teaches you how to use MatchGrade to automatically calculate a grade to match the
colors in the Source input to the colors in the Target input. You can use MatchGrade to:
• extract a baked-in grade if the Target clip that you want to match is simply a graded version of the
Source clip. See Extracting a Baked-In Grade.
• match the grade between two different clips to create the same look. See Matching a Grade Between
Two Different Clips.
In both cases, you can also mask the grade to only match certain elements between the Source and
Target clips, and export LUT or CDL files to re-use the calculated grade elsewhere.
Special thanks to The Mill for use of the above footage, used throughout this chapter.
USER GUIDE
1624
Extracting a Baked-In Grade |
3. In the MatchGrade properties, make sure Task is set to Match Graded Source.
4. To extract a baked-in grade, MatchGrade requires pixel-to-pixel correspondence between the
Source and Target clips. If the clips are not aligned in time and space, such as when the target
clip has been reformatted, click Align Target to Source to add a Transform node and a Reformat
node upstream of the MatchGrade node.
USER GUIDE
1625
Extracting a Baked-In Grade | Analyzing Reference Frames
Tip: If the target contains a region that isn't present in the source, for example a black
border, you can enable Crop Target. Clicking Align Target to Source when Crop Target is
enabled generates a rectangular crop for the Target input.
5. If you want MatchGrade to calculate a single, global grade from selected reference frames that
cover the characteristic colors in the sequence and apply that grade to every frame of the Source
sequence, proceed to Analyzing Reference Frames on page 1626. In this mode, you can export the
grade to an OCIOFileTransform or OCIOCDLTransform node to re-use it elsewhere in the script.
If you'd rather have MatchGrade calculate a local grade frame-by-frame, so that the color
transform updates according to the current frame, proceed to Auto-Analyzing Per Frame on page
1629. In this mode, you cannot export the grade to re-use it elsewhere.
Note: When the Mask control is set to anything other than None, an additional Apply
Grade to Masked Region control is displayed.
This control is enabled by default, but you can disable it to apply the grade to the whole
image instead, allowing you to compute the grade from a selected region and apply it to the
whole image without having to export the LUT.
to set the current frame as a reference frame. If necessary, you can also use the button to
remove a frame from the set of reference frames.
Typically, the more reference frames you set, the better MatchGrade is able to match the colors.
USER GUIDE
1626
Extracting a Baked-In Grade | Analyzing Reference Frames
Tip: You can also set Target to Matched and Analysis to Auto-analyze Per Frame to
preview where to set reference frames.
5. When you're done setting reference frames, use the Transform dropdown menu to choose how
to calculate the grade:
• 3D LUT - Calculate the grade as a 3D look-up table (LUT). This allows you to export the grade to a
.csp format, which you can use with the OCIOFileTransform node.
• CDL - Calculate the grade as a color decision list (CDL). This allows you to export the grade to an
OCIOCDLTransform node.
Note: The CDL transform is limited and cannot model all types of color transformation. In
most cases, selecting 3D LUT gives the best results.
USER GUIDE
1627
Extracting a Baked-In Grade | Analyzing Reference Frames
USER GUIDE
1628
Extracting a Baked-In Grade | Auto-Analyzing Per Frame
• If you set Transform to CDL, you can click Create OCIOCDLTransform to create an
OCIOCDLTransform node that uses the values in the CDL Output section of the MatchGrade
properties.
USER GUIDE
1629
Extracting a Baked-In Grade | Auto-Analyzing Per Frame
USER GUIDE
1630
Matching a Grade Between Two Different Clips | Auto-Analyzing Per Frame
5. When you find frames that cover similar content in the Source and Target clips, click on the
buttons next to Source and Target to set the current frame as a reference frame. Only frames set
as reference frames are used in the MatchGrade analysis.
For example, if you want grass in the Source clip to have the same color as grass in the Target
clip, you need to choose frames where the relative amount of grass pixels is roughly the same.
The more similar the content, the better MatchGrade is able to match the colors.
Note: You do not need to use the same number of Source and Target reference frames or
set the same frames as reference frames for both.
USER GUIDE
1631
Matching a Grade Between Two Different Clips | Auto-Analyzing Per Frame
If necessary, you can also use the button to remove a frame from the set of reference frames.
6. If you only want to match certain elements between the Source and Target clips, supply a mask
in both the Source and Target inputs' alpha channels and set Mask to either:
• Alpha - to use the alpha channel from both inputs as a mask. Only the non-black areas of the
Source and Target inputs' alpha channels are used in the MatchGrade analysis, and the grade is
limited to the non-black areas of the Source alpha.
• Inverted Alpha - to use the inverted alpha channel from both inputs as a mask. Only the non-
white areas of the Source and Target inputs' alpha channels are used in the MatchGrade
analysis, and the grade is limited to the non-white areas of the Source alpha.
Masks can also be useful if you cannot find frames that cover approximately the same amount of
similar content. For example, if the Source and Target inputs have a different amount of grass
and sky, you can use a Roto node in both inputs to create masks that cover the same amount of
grass and sky. Bear in mind that if you do so, the grade is only applied to the areas indicated by
the mask in the Source input. To apply it to the entire frame, you need to export the grade first.
For more information, see step 12.
The Source image. In this case, you can ...and draw a mask like this on the Target
set this image to have a fully image to ensure both inputs cover
opaque alpha... similar content.
7. When you're done setting reference frames, use the Transform dropdown menu to choose how
to calculate the grade:
• 3D LUT - Calculate the grade as a 3D look-up table (LUT). This allows you to export the grade to a
.csp format, which you can use with the OCIOFileTransform node.
• CDL - Calculate the grade as a color decision list (CDL). This allows you to export the grade to an
OCIOCDLTransform node.
USER GUIDE
1632
Matching a Grade Between Two Different Clips | Auto-Analyzing Per Frame
Note: The CDL transform is limited and cannot model all types of color transformation. In
most cases, selecting 3D LUT gives the best results.
USER GUIDE
1633
Matching a Grade Between Two Different Clips | Auto-Analyzing Per Frame
• Set Colorspace to a different value. The correct setting to use depends on the nature of the
transformation. Try each option to see which works best with your footage.
• Increase the Iterations value. This determines the number of refinement passes. Higher values
can produce a better color match, but also take longer to process.
To update the results, click Analyze Reference Frames again.
11. If you set Transform to CDL in step 8, you can fine-tune the grade manually by adjusting slope,
offset, power, and saturation. The lock controls on the right prevent the values from being
recalculated when you click Recalculate CDL, allowing you to set some values manually and
estimate others automatically. For example, you can adjust and lock slope and offset and then
click Recalculate CDL to automatically recalculate power and saturation.
12. If necessary, you can export the calculated grade and apply it to other nodes in your script. How
you do this depends on whether you chose to calculate the grade as a 3D LUT or a CDL:
• If you set Transform to 3D LUT, you can write the LUT into a .csp file and create an
OCIOFileTransform node that you can use elsewhere in the script to apply the same grade. To do
so, enter a file path and name for the .csp file in the LUT output file field and click Write to
export the LUT. Then, click Create OCIOFileTransform to create an OCIOFileTransform node
that applies the color transform from the .csp file.
• If you set Transform to CDL, you can click Create OCIOCDLTransform to create an
OCIOCDLTransform node that uses the values in the CDL Output section of the MatchGrade
properties.
USER GUIDE
1634
Matching a Grade Between Two Different Clips | Auto-Analyzing Per Frame
Tip: You can also apply the grade to a different source by simply connecting a new node to
MatchGrade's Source input.
USER GUIDE
1635
Using the Smart Vector Toolset
The Smart Vector toolset allows you to work on one frame in a sequence and then use motion vector
information to accurately propagate work throughout the rest of the sequence. The vectors are
generated in the SmartVector node and then piped into the VectorDistort node to warp the work.
That way, you only need to render the motion vectors once.
Note: All images in this chapter are courtesy of Hollywood Camera Work. See
www.hollywoodcamerawork.com for more information.
Quick Start
The toolset workflow is outlined below:
1. Connect the SmartVector node to the source sequence to generate the required motion vectors.
You can also write them to file using the .exr format. See Generating Motion Vectors.
2. Find a suitable reference frame and add the required paint corrections or an image to the frame.
See Adding Paint to the Source or Adding an Image to the Source.
3. Connect the VectorDistort node to the SmartVector node (or a Read node referencing the .exr
files rendered from the SmartVector node) and the source sequence.
4. Premultiply the VectorDistort output and merge it over the source sequence to complete the
comp. See Applying Motion Vectors to the Source.
USER GUIDE
1636
Generating Motion Vectors |
Generating Motion Vectors
The SmartVector node generates motion vectors for use in the VectorDistort node. You can connect a
SmartVector node directly to the VectorDistort or VectorCornerPin nodes or write motion vectors to
the .exr format, which are then used to drive the warp nodes to reduce overheads later on.
Note: High detail vectors take longer to render, but can improve the results you get from
the VectorDistort node.
4. Set the Strength control to force pixel matching between frames. Higher values allow you to
accurately match similar pixels in one image to another, concentrating on detail matching even if
the resulting motion field is jagged. Lower values may miss local detail, but are less likely to
provide you with the odd spurious vector, producing smoother results.
5. If there is a lot of movement in the foreground, you might want to add a mask. See Masking
Foreground and Background Areas for more information.
Tip: You can examine the vectors produced by connecting a Viewer to the SmartVector node
and switching the channels control above the Viewer to smartvector_<value>.
6. If you want to write the vectors to disk, click Export Write to automatically add a Write node to
the script. The Write node's controls are set to channels > all and .exr output automatically.
You can only write motion vectors to the .exr format. Don't forget to add frame padding in the
form of hashes or printf notation, depending on your Preferences > Behaviors > File Handling
settings.
USER GUIDE
1637
Generating Motion Vectors | Masking Foreground and Background Areas
7. Enter a file path in the Write node's controls and then click Render.
Note: SmartVector does not currently output motion, forward, and backward channels by
default. If you require these channels, add a VectorToMotion node after the SmartVector
node. VectorToMotion converts the vectors to motion that can be used with VectorBlur to
create motion blur, without using a VectorGenerator.
USER GUIDE
1638
Generating Motion Vectors | Masking Foreground and Background Areas
3. Set the Matte Channel to Matte Alpha and the Output control to either Foreground or
Background.
USER GUIDE
1639
Adding Paint to the Source | Masking Foreground and Background Areas
Merged result
USER GUIDE
1640
Adding Paint to the Source | Masking Foreground and Background Areas
USER GUIDE
1641
Adding an Image to the Source | Masking Foreground and Background Areas
Merged result
3. Proceed to Applying Motion Vectors to the Source.
USER GUIDE
1642
Applying Motion Vectors to the Source | Warping the Vectors
3. Double-click the VectorDistort node to open its Properties panel, if it's not already open.
4. Scrub to the frame containing your paint or image and click set to current frame to set the
VectorDistort reference frame.
Tip: If you know what frame your paint or image is applied to, you can type the frame
number into the Reference Frame control manually.
Scrubbing in the Viewer at this stage introduces undesirable warping. As you move farther from
the reference frame, the warping increases.
USER GUIDE
1643
Applying Motion Vectors to the Source | Warping the Vectors
Warp close to the reference frame. Warp far from the reference frame.
5. Set the maximum Frame Distance over which vectors are calculated. Sequences with rapid
motion typically require values closer to 1 frame, whereas sequences with slower motion typically
require values closer to 64 frames.
See Improving Warps for more information on the Frame Distance control.
6. To apply the warped paint or image to the original sequence, premultiply the output from the
VectorDistort nodes and then merge the result over the source.
For short sequences, or sequences with minimal movement and detail, your corrections are
propagated nicely as shown.
USER GUIDE
1644
Applying Motion Vectors to the Source | Warping the Vectors
If you see that your corrections warp incorrectly over time, you can use VectorDistort's properties to
massage the results (see Improving Warps) or use the VectorCornerPin node or multiple
VectorDistort nodes to apply warps for several reference frames (see Warping Images Using
VectorCornerPin and Warping Multiple Reference Frames).
USER GUIDE
1645
Improving Warps | Warping the Vectors
Improving Warps
For short sequences, or sequences with minimal movement and detail, your corrections are
propagated nicely. If you see that your corrections warp incorrectly over time, you can use
VectorDistort's Frame Distance control to massage the results.
Tip: Warping relies on good vectors from SmartVector and a good reference frame in
VectorDistort. Before doing anything else, try increasing the Vector Detail control in the
SmartVector node and re-rendering the vectors. You can also try selecting a different
Reference Frame in the VectorDistort node's controls.
At Frame Distance > 1 frame, VectorDistort calculates warp for every frame in the sequence, that is,
frames 1-2, 2-3, 3-4, 4-5, and so on. For frames close to the Reference Frame with lots of movement
between frames, this is a good thing as the warp needs to change significantly from frame to frame.
However, for frames farther away from the Reference Frame with little movement between frames,
this isn't required as the warp doesn't change significantly from frame to frame.
Increasing the Frame Distance essentially reduces the number of warps calculated between the
Reference Frame and the current frame. In the example sequence, the Reference Frame is set to
57, and the warp at frame 230 has started to slip on the subject's forehead with Frame Distance set
to 1 frame. Increasing the Frame Distance works well up to around 2 frames, but increasing the
distance distorts the warp too much.
The warp with frame distance 1 frame. The warp with frame distance 2 frames.
USER GUIDE
1646
Improving Warps | Warping the Vectors
For longer sequences with local distortion, you can try increasing the Blur Size control to blur the
internally calculated STMap. Increasing the Blur Size can remove local distortions in the warped
result, particularly in longer sequences.
In some cases, no amount of adjustment is going to improve the warp over a large number of frames
- particularly if there's a lot of movement or detail in the sequence. See Warping Images Using
VectorCornerPin and Warping Multiple Reference Frames for more information on how to use
VectorCornerPin and multiple VectorDistort nodes to minimize manual paint work.
USER GUIDE
1647
Warping Images Using VectorCornerPin | Warping the Vectors
The final result should be an image with minimal slip and distortion.
USER GUIDE
1648
Warping Images Using VectorCornerPin | Warping the Vectors
Tip: If the image you're warping displays at the wrong resolution, switch to the
VectorCornerPin's From tab, click Set To Input, and then switch back to the
VectorCornerPin tab and click Copy 'from' to resize it automatically.
3. Scrub to the reference frame in your sequence and place the image as required using the to1-4
Viewer widgets.
USER GUIDE
1649
Warping Images Using VectorCornerPin | Warping the Vectors
4. In the VectorCornerPin Properties panel, click add keyframe to set a keyframe at the current
frame.
Note: You can remove the keyframe at the current frame using or remove all keyframes
from the sequence using .
5. Play through the sequence until the image begins to slip or warp.
Tip: After adding a keyframe, you can click Bake Corners to calculate the positions of the
pins at each frame in a range using the vectors from the SmartVector input.
USER GUIDE
1650
Warping Images Using VectorCornerPin | Warping the Vectors
6. Adjust the image using the to1-4 Viewer widgets. A new keyframe is added at the current frame.
Frames on which no keyframe is present are interpolated automatically, so you may not need to
adjust each frame individually.
7. You can smooth distortion on interpolated frames using the Frame Distance and Blur Size
controls on the SmartVector tab.
USER GUIDE
1651
Warping Images Using VectorCornerPin | Warping the Vectors
USER GUIDE
1652
Warping Multiple Reference Frames | Warping the Vectors
6. Repeat the process for the required number of reference frames to complete your corrections. An
example node tree might appear as follows:
USER GUIDE
1653
Warping Multiple Reference Frames | Warping the Vectors
USER GUIDE
1654
Generating Depth Maps
You can use the DepthGenerator node in NukeX to generate a depth map from your footage. The
node uses information from a tracked camera to create a channel that displays variations in depth.A
depth map is an image that uses the brightness of each pixel to specify the distance between the 3D
scene point and the virtual camera used to capture the scene.
DepthGenerator also allows you to output depth as normals and position passes, and create a Card
node positioned in 3D space and displaced according to the depth channel.
Note that DepthGenerator can only create a depth map from a sequence, so you can’t use a still
image.
Quick Start
Here's a quick overview of the workflow:
1. Add DepthGenerator to your NukeX script. See Connecting DepthGenerator.
2. Select the type of depth map you want to output, and whether to also output normals and
position passes. See Selecting What to Output.
3. Analyze the depth values for your footage. See Analyzing Depth.
4. Review and refine the results. See Refining the Results.
5. Use the results with other Nuke and NukeX nodes. See Using the Results.
USER GUIDE
1655
Connecting DepthGenerator |
Connecting DepthGenerator
To connect DepthGenerator:
1. To use the DepthGenerator node, you need a tracked camera that matches your footage. If you
don’t already have one, you can create one with the CameraTracker node (see Camera Tracking).
2. Create a DepthGenerator node by clicking 3D > DepthGenerator.
3. Attach a Viewer to the output of DepthGenerator.
4. Connect the Source input to your footage and the Camera input to your Camera node.
USER GUIDE
1656
Connecting DepthGenerator |
USER GUIDE
1657
Selecting What to Output |
A position pass.
USER GUIDE
1658
Selecting What to Output |
3. Similarly, to output depth as a normals pass, set Surface Normal to the channels where you want
to store the normals pass (for example, create a new layer called npass, which contains the
channels X, Y, and Z).
The normals pass contains three vectors of information for each pixel in the image: X direction, Y
direction, and Z direction. In other words, it stores the direction in which each point in the image
is facing. You can use a normals pass with the Relight node.
A normals pass.
4. Proceed to Analyzing Depth below.
USER GUIDE
1659
Analyzing Depth |
Analyzing Depth
To analyze the depth:
1. Do one of the following:
• Use the Frame Separation control to select the offset between the current frame and the frame
against which to calculate depth for your footage. For example, if your current frame is 100, and
your frame separation is 2, DepthGenerator uses frame 98 and frame 102 to generate the depth
map.
Ideally, you want frames close together so that the images are similar and include the same bits
of the world. However, you get more accurate depth when the frames are further apart and the
baseline between the cameras is bigger. So, for fast camera moves, you need a small frame
separation, and for slow camera moves, you can use a larger frame separation. To change the
separation for fast and slow movements, you can animate the Frame Separation control.
Note that this control does NOT affect the number of frames used in the calculation, as that is
always 2.
• To have DepthGenerator attempt to calculate the best Frame Separation automatically, click
Analyze Sequence. For this to work, the camera in the Camera input must be defined for all
frames within the frame range.
DepthGenerator goes through the entire sequence, attempts to work out the correct frame
separation, and animates the Frame Separation value.
• Alternatively, you can also click Analyze Frame to have DepthGenerator automatically calculate
the frame separation for the current frame. This gives you more control than Analyze
Sequence, as you can work through the timeline, analyze particular frames, and if necessary
tweak the Frame Separation value manually.
2. Scrub through the timeline and keep an eye on the Calculated Accuracy value. This displays the
depth accuracy calculated when analyzing frame separation. Values closer to 1 are considered
accurate, and values closer to 0 inaccurate.
You can use the frames that produce accurate values later when placing elements in 3D (for
example, by clicking Create Card or using a PositionToPoints node).
If you’re not getting accurate depth values, try adjusting Frame Separation or using an Ignore
Mask.
3. View the depth channel in 2D by selecting it from the list of channels in the Viewer. To see more
details in the depth map, it can be a good idea to temporarily adjust the gain and gamma controls
in the Viewer.
USER GUIDE
1660
Analyzing Depth |
USER GUIDE
1661
Refining the Results |
USER GUIDE
1662
Refining the Results |
USER GUIDE
1663
Refining the Results |
small changes in depth lead to large changes in the normals. To smooth out the normal map by
calculating normals using a lower resolution depth map, reduce Normal Detail. This integrates
the change in depth across a wider range of pixels, reducing noise in the normals pass.
The default value of 0.25 causes the normals pass to be calculated at a quarter resolution.
USER GUIDE
1664
Using the Results |
For more information, see Creating a Dense Point Cloud Using the PositionToPoints Node.
• If you used DepthGenerator to create both a position pass and a normals pass, you can supply
those to the Relight node (3D > Lights > Relight). This node applies a shader to its input image
based on the position and normals passes, creating realistic lighting.
USER GUIDE
1665
Creating Dense Point Clouds
Dense point clouds are a useful starting point for 3D modeling and can be helpful in positioning 3D
objects into a scene. Using the PointCloudGenerator node, you can create a dense point cloud based
on the information generated by CameraTracker and use the points to create a 3D mesh of your 2D
footage.
Quick Start
Here's a quick overview of the workflow:
1. Make sure your PointCloudGenerator node is connected to the appropriate footage and Camera
node. For more information, see Connecting the PointCloudGenerator Node.
2. Set keyframes in the footage to determine which frames are tracked to create the point cloud. For
more information, see Setting Keyframes in a Sequence.
3. Track the footage to create a dense point cloud. For more information, see Tracking a Dense
Point Cloud.
USER GUIDE
1666
Connecting the PointCloudGenerator Node |
Connecting the
PointCloudGenerator Node
To create a dense point cloud, PointCloudGenerator needs a Camera node with a solved camera path,
either from CameraTracker or from a third party 3D application, and the tracked 2D footage.
USER GUIDE
1667
Masking Out Regions of the Image |
Note: PointCloudGenerator can track multiple ranges, adding the new points to the existing
cloud, so feel free to mask and re-track as much as necessary.
USER GUIDE
1668
Setting Keyframes in a Sequence | Setting Keyframes Automatically
Note: You can also add keyframes to the sequence manually. See below for more
information.
Note: The keyframes generated automatically using Analyze Sequence are not deleted.
USER GUIDE
1669
Tracking a Dense Point Cloud | Setting Keyframes Manually
USER GUIDE
1670
Tracking a Dense Point Cloud | Setting Keyframes Manually
Note: If the threshold is set too high, you may find that you don’t get any reliable tracks at
all. The red pixels in the above image are rejected tracks.
USER GUIDE
1671
Filtering Your Point Cloud | Setting Keyframes Manually
Set a threshold of 0 to triangulate all points or increase the threshold to highlight the least accurate
points.
3. Adjust the Density Threshold to set the minimum acceptable point density. Isolated points tend
to be less accurate.
Set a threshold of 0 to output all points or increase the threshold to highlight the most isolated,
less accurate points.
4. The Viewer wipe tool can help you locate isolated points by comparing the 2D source footage to
the point cloud.
Set Input A to the PointCloudGenerator node and Input B to the Read node for the source image.
USER GUIDE
1672
Removing Rejected Points | Setting Keyframes Manually
3. Use the Output controls to assist you when visualizing your point cloud:
• Point Size - set the pixel size of points in your cloud.
• Output points per frame - by default, all tracked points in your sequence are displayed in the
Viewer. Enabling this control allows you to view only the points generated at the current frame.
Note: If you’re having trouble viewing points individually, try reducing the 3D handle size in
the Preferences > Panels > Viewer Handles tab.
USER GUIDE
1673
Removing Rejected Points | Setting Keyframes Manually
Note: You can remove points from a selection by holding Shift+Alt and re-selecting
highlighted points.
5. Press Delete/Backspace or right-click in the Viewer and select delete selected to remove the
points.
6. Proceed to Grouping, Labeling, and Baking Points.
USER GUIDE
1674
Grouping, Labeling, and Baking Points | Setting Keyframes Manually
Groups can also be baked out as separate point clouds or converted into meshes. See Creating a
Mesh from a Point Cloud for more information.
Note: You can remove points from a selection by holding Alt + Shift and re-selecting
highlighted points.
Note: If groups already exist, the option to add the selected points to a group is enabled.
USER GUIDE
1675
Grouping, Labeling, and Baking Points | Setting Keyframes Manually
• Display groups in overlay - when enabled, groups are highlighted in the Viewer using their
associated RGB color.
• Create Group - click to add the selected points in the Viewer to a new group.
• Delete Selected Groups - click to delete all the selected groups in the list.
5. Double-click the table columns to edit group names or colors, and toggle visibility.
6. Enable Output visible groups only to display only selected groups in the Viewer.
7. After creating the required groups, you can split them off into individual point clouds, using Bake
Selected Groups, or create group meshes.
8. Proceed to Creating a Mesh from a Point Cloud
USER GUIDE
1676
Creating a Mesh from a Point Cloud | Setting Keyframes Manually
PointCloudGenerator meshes are based on the Poisson Surface Reconstruction calculation method.
The original source code and paper were created by Michael Kazhdan, Matthew Bolitho, and Hugues
Hoppe (see http://www.cs.jhu.edu/~misha/Code/PoissonRecon/ for more information).
Note: You can use the resulting group mesh node in Nuke as well, though you can’t edit the
geometry.
Many factors influence the quality of any mesh, chief among which are the contents of the scene and
the camera track obtained from the sequence. If you consider a simple scene, such as that shown in
the example images, the resulting mesh can be quite accurate.
USER GUIDE
1677
Adding Texture to a Mesh | Setting Keyframes Manually
Tip: You can export your camera, point cloud, and meshes as Alembic (.abc) objects to
other applications. For more information about exporting .abc files, see Exporting
Geometry, Cameras, Lights, Axes, or Point Clouds .
USER GUIDE
1678
Using the PoissonMesh Node | Setting Keyframes Manually
Before using the PoissonMesh node, you need a dense point cloud with normals such as the one
created by the PointCloudGenerator node. For more information on creating a dense point cloud, see
Tracking a Dense Point Cloud on page 1670. When you’ve got one, you’re ready to create a mesh:
1. Connect the PoissonMesh node to a PointCloudGenerator node.
2. A mesh is created automatically using the information from the PointCloudGenerator node and
you can view it in the 3D view.
3. If you want to, you can tell PoissonMesh to use the selected points only in the point cloud to
create a mesh. To do this, check the Use Selection box in the properties panel. You can also use
the Filtering box to use the PointCloudGenerator filtering to refine your mesh.
4. You can also adjust other properties for your mesh on the PoissonMesh tab:
• Depth - set the maximum depth (in integers) for the calculation tree used to create your mesh.
You can enter values up to 10, but increasing this value increases the solver’s memory usage, so
it’s a good idea to keep this as low as possible.
• Scale - set the ratio between the 3D cube used to create the mesh and the bounding box of the
footage it’s created from.
• Solver Divide - set the depth at which the solver equation is used in the creation of your mesh.
This can help you reduce your memory usage when generating complex meshes.
• Iso Divide - set the depth at which the iso-surface extractor is used in extraction. This can help
you reduce your memory usage when generating complex meshes.
• Samples per Node - set the minimum number of sample points used to create your mesh. Use
larger values if your original footage is very noisy.
• Confidence - check to use the size of the normals as confidence information when generating
the mesh. This may take longer, but gives you better results since your point cloud point
creation gets double-checked.
Note: You can only use the PoissonMesh node in NukeX as the information used to create
the mesh is not stored in the node and therefore cannot be recreated for viewing in Nuke.
USER GUIDE
1679
Adding Texture to the PoissonMesh | Setting Keyframes Manually
Tip: You can export both your point cloud and the mesh as FBX objects to other
applications, but don’t forget to export the Camera node too. For more information about
exporting FBX files, see Exporting Geometry, Cameras, Lights, Axes, or Point Clouds .
USER GUIDE
1680
Using ModelBuilder
The ModelBuilder node provides an easy way to create 3D models for 2D shots. You can build a
model by creating shapes and then editing them, and align models over your 2D footage by dragging
vertices to their corresponding 2D location.
Prerequisites
To be able to align models, ModelBuilder needs a tracked camera and an input image for visual
reference. You can also use other 3D geometry and point clouds as a reference if you already have
these for your scene.
Note: You can use ModelBuilder without a camera, image sequence, or reference geometry.
In this case, all the Edit mode features work just fine; it just means you aren’t able to do
anything in Align mode.
Creating and editing models using ModelBuilder requires a NukeX license, but the resulting geometry
can also be used in Nuke.
Special thanks to for use of the above footage, used throughout this chapter.
USER GUIDE
1681
Using ModelBuilder | Quick Start
Quick Start
Here's a quick overview of the workflow:
1. Connect the ModelBuilder node to your footage and a changing Camera. For more information,
see Connecting the ModelBuilder Node.
2. As a starting point for your model, create one or more of the built-in 3D shapes using the toolbar
on the left hand side of the Viewer.
See Creating Shapes.
3. If necessary, adjust the display characteristics of your shapes so you can better see them in the
Viewer. You can do this at any point during the process.
See Editing Shapes’ Display Characteristics.
4. Position the shape using your 2D footage or existing 3D geometry as a reference.
See Positioning Shapes.
5. Edit the shape until you’re happy with your model.
See Editing Shapes.
6. Once you're happy with your model, you're ready to texture it.
See Applying Textures.
7. If necessary, you can also create a separate geometry node for the selected shapes and use that
as you would use any other geometry node in Nuke.
See Exporting Shapes to Separate Geometry Nodes.
USER GUIDE
1682
Connecting the ModelBuilder Node | Quick Start
USER GUIDE
1683
Creating Shapes | Quick Start
Creating Shapes
To create shapes:
1. Double-click on the ModelBuilder node to open its properties.
2. Use the shape creation menu in the ModelBuilder toolbar on the left hand side of the Viewer
to select the basic 3D shape that best matches the object you are trying to model. You can select
between Point, Card, Cube, Sphere, Cone, Cylinder, and Polygon (when creating a polygon, click
on the Viewer to create vertices where you need them, and when you’re done, press Return).
A colored border appears around the Viewer window to indicate that the action of creating a
shape is in progress.
Tip: If you want to model a simple wall, a Card might be a good starting point. For an entire
building, you may want to use a Cube instead.
You can adjust the shapes (for example, the number of rows or columns in them) on the Shape
Defaults tab. These controls only apply when creating a shape - you cannot adjust them after the
fact.
3. Hover over the Viewer. You should see a yellow circle appear under the cursor. You can now:
USER GUIDE
1684
Creating Shapes | Quick Start
• click in the Viewer to set where you want the new shape created. If you click over empty space,
the shape is created at a distance specified by the Distance control. There are no specific units
for this value; low values position the shape close to the camera, and higher values mean
further away.
• hold down Shift and click to snap to the surface of any geometry under the cursor.
• drag the mouse left or right to scale the shape.
The shape you selected appears in the Viewer and in the Scene list in the ModelBuilder properties.
4. If the shape was created too close to the camera or too far away, Activate Edit Mode in the
ModelBuilder toolbar and make sure the selection mode menu is set to Select objects .
Then, select the shape in the Viewer, and drag the transform handles to reposition it.
5. If you have more than one object that you want to model in your src footage, you can repeat the
above steps to create several shapes using a single ModelBuilder node.
6. Proceed to Editing Shapes’ Display Characteristics below.
Tip: You can also use the Create buttons on the Shape Defaults tab to create shapes. This
is exactly the same as using the shape creation menu in the Viewer.
Tip: If you want to use 3D geometry as a visual reference and connected it to the geo input,
before creating a shape, you need to:
1. Activate Edit Mode in the ModelBuilder toolbar on the left hand side of the Viewer
3. Use the shape creation menu in the ModelBuilder toolbar to select the basic 3D
USER GUIDE
1685
Creating Shapes | Quick Start
shape that best matches the object you are trying to model.
USER GUIDE
1686
Editing Shapes’ Display Characteristics | Quick Start
USER GUIDE
1687
Editing Shapes’ Display Characteristics | Quick Start
• Locked frame - Project the frame specified in the field on the right onto the shape. This can
help you line up the shape against your source footage.
• Frame difference - Subtract the frame specified in the field on the right from the current frame
and project the resulting frame onto the shape. This can help you line up the shape against your
source footage.
8. If you want to disable shape selection in the Viewer, uncheck selectable. This only has an effect
when the selection mode menu is set to Select nodes in the ModelBuilder toolbar.
9. If you don’t want the shapes to cast or receive shadows, uncheck cast shadow or receive
shadow.
For more information on shadows, see Casting Shadows.
10. Proceed to Positioning Shapes below.
USER GUIDE
1688
Positioning Shapes | Quick Start
Positioning Shapes
To position shapes:
1. If the Align Mode isn’t already active, click in the ModelBuilder toolbar to activate it.
2. The Viewer should also automatically be locked to your input Camera node. If this isn’t the case,
select the Camera from the dropdown menu in the top right corner of the Viewer and click .
The positioning handles only appear when the Viewer is locked to the input camera.
3. Use the Align dropdown menu on the top of the Viewer to choose whether you want to position
the shape by transforming the entire shape or individual vertices:
• Object transform - ModelBuilder tries to transform the whole object. This guarantees that flat
polygons stay flat and the angle between polygons doesn’t change, but it's less flexible because
you're always changing the whole object at once.
USER GUIDE
1689
Positioning Shapes | Quick Start
4. Move a few vertices so that they match the shape of the object you want to model. For example, if
you are modeling a building using a cube, drag the corners of the cube so that they line up with
the corners of the building.
When you click on a vertex, you’ll notice a zoom window in the top left of the Viewer. This allows
you to accurately position vertices without zooming the entire Viewer. To adjust the size and
magnification factor for the zoom window, use the Zoom dropdown menus on top of the Viewer.
As you do this, ModelBuilder transforms the shape to fit your adjusted vertex positions. It also
sets keys on the 2D positions of the vertices. Any vertices that have keys set on them turn purple
in the Viewer.
5. Go to a different frame and move one of the blue vertices to match its new location in the src
footage. When you do so, a purple line appears. The correct location for the vertex on the current
frame should lie somewhere on this line; however, you can drag the vertex away from the line if
necessary.
Positioning just one vertex is usually enough to get the object position right, but not the rotation
or scaling.
6. In order to lock off the rotation and scaling of the object, move a few more vertices to their
correct location.
7. Play back through the sequence. The object should stay roughly in the right place relative to the
src footage. If you see any vertices starting to drift, move them to their correct location.
8. Proceed to Editing Shapes.
USER GUIDE
1690
Editing Shapes | Quick Start
Editing Shapes
When editing ModelBuilder shapes, there are two types of editing actions:
• Single-step actions that happen instantly, such as extruding and merging faces.
• Multi-step actions (such as beveling and subdiving faces) that have extra parameters you can set.
All multi-step actions behave in the same way:
• When you start the action, you can see a preview in the Viewer even though the action has not
been applied yet. A colored border appears around the Viewer window to indicate that the
action is in progress.
Tip: You can change the color of the border in the Preferences. Press Shift+S on the Node
Graph to launch the Preferences dialog, go to the Appearance tab, and use the Highlight
button to select a new color. Note that he brightness of the color is adjusted to prevent it
from clashing with the Viewer background.
• The parameters for the action appear at the top of the Viewer. As you adjust them, the preview
in the Viewer is updated.
• To cancel the action, you can press Esc on the Viewer.
• To accept the current parameter values and complete the action, you can press Return (or
change the selection mode, start a new action, press the +, -, or duplicate buttons, add a new
shape, change into Align mode, or close the ModelBuilder properties).
USER GUIDE
1691
Editing Shapes | Quick Start
USER GUIDE
1692
Editing Vertices | Quick Start
Editing Vertices
To edit vertices:
2. Set the selection mode menu to Select vertices in the ModelBuilder toolbar and select one
or more vertices on the object.
3. Edit your selection as necessary:
• To translate, rotate, or scale the selected vertices, drag the transform handles that appear on
them. To move the pivot point for the transform handles, press Ctrl/Cmd+Alt while dragging on
the center of the transformation overlay.
Tip: If necessary, you can also use the controls at the top of the Viewer to set the initial
position and alignment of the transform handles (that is, the position used whenever you
change the selection). For more information, see Setting the Initial Transform Action Center.
• To carve the selected vertices, right-click on them and select carve. A colored border appears
around the Viewer window to indicate that the action is in progress. Click on an edge or vertex
to begin a carve. All of the surrounding faces are highlighted in red. Click anywhere inside a
highlighted face, or on an edge or vertex of a highlighted face, to carve an edge between the
previous vertex and the place you just clicked.
USER GUIDE
1693
Editing Vertices | Quick Start
Note: You can only delete simple vertices that have no more than two edges connected to
them.
USER GUIDE
1694
Editing Edges and Edge Loops | Quick Start
2. Set the selection mode menu to either Select edges or Select edge loops in the
ModelBuilder toolbar and select one or more edges or edge loops on the object.
Tip: An edge loop is a string of connected edges across the model. Often, the last edge
meets again with the first edge, forming a loop. In ModelBuilder, the loop follows the middle
edge in every intersection that has an even number of edges. The loop ends when it
encounters an intersection with an odd number of edges.
Edge loops can help you produce more natural deformations for organic models that are
animated. They work best when you’ve got a mesh that’s mostly made up of four-sided
polygons, known as quads.
USER GUIDE
1695
Editing Edges and Edge Loops | Quick Start
Tip: If necessary, you can also use the controls at the top of the Viewer to set the initial
position and alignment of the transform handles (that is, the position used whenever you
change the selection). For more information, see Setting the Initial Transform Action Center.
• To carve the selected edges, right-click on them and select carve. A colored border appears
around the Viewer window to indicate that the action is in progress. Click on an edge or vertex
to begin a carve. All of the surrounding faces are highlighted in red. Click anywhere inside a
highlighted face, or on an edge or vertex of a highlighted face, to carve an edge between the
previous vertex and the place you just clicked.
USER GUIDE
1696
Editing Edges and Edge Loops | Quick Start
If the starting edge is part of the boundary for an entire shape, this selects all edges along that
boundary.
USER GUIDE
1697
Editing Edges and Edge Loops | Quick Start
USER GUIDE
1698
Editing Faces | Quick Start
Editing Faces
To edit faces:
2. Set the selection mode menu to Select faces in the ModelBuilder toolbar and select one or
more faces on the object.
3. Edit your selection as necessary:
• To translate, rotate, or scale the selected faces, drag the transform handles that appear on
them. To move the pivot point for the transform handles, press Ctrl/Cmd+Alt while dragging on
the center of the transformation overlay.
Tip: If necessary, you can also use the controls at the top of the Viewer to set the initial
position and alignment of the transform handles (that is, the position used whenever you
change the selection). For more information, see Setting the Initial Transform Action Center.
• To carve the selected faces, right-click on them and select carve. A colored border appears
around the Viewer window to indicate that the action is in progress. Click on an edge or vertex
to begin a carve. All of the surrounding faces are highlighted in red. Click anywhere inside a
highlighted face, or on an edge or vertex of a highlighted face, to carve an edge between the
previous vertex and the place you just clicked.
USER GUIDE
1699
Editing Faces | Quick Start
below each other, ModelBuilder expands the selection vertically. If the selected faces are to the
left and right of each other, ModelBuilder expands the selection horizontally. If you have
multiple groups of selected faces, they all get expanded out.
USER GUIDE
1700
Editing Faces | Quick Start
Tip: To see the normals, press S on the Viewer to display the Viewer Settings, go to the 3D
tab, and activate the show primitive normals button .
USER GUIDE
1701
Editing Faces | Quick Start
USER GUIDE
1702
Editing Objects | Quick Start
Editing Objects
To edit objects:
2. Click the Select object button in the ModelBuilder toolbar and select an object.
3. Edit the object as necessary:
• To translate, rotate, or scale the selected object, drag the transform handles that appear on it.
To move the pivot point for the transform handles, press Ctrl/Cmd+Alt while dragging on the
center of the transformation overlay.
Tip: If necessary, you can also use the controls at the top of the Viewer to set the initial
position and alignment of the transform handles (that is, the position used whenever you
change the selection). For more information, see Setting the Initial Transform Action Center.
• To carve the selected objects, right-click on them and select carve. A colored border appears
around the Viewer window to indicate that the action is in progress. Click on an edge or vertex
to begin a carve. All of the surrounding faces are highlighted in red. Click anywhere inside a
highlighted face, or on an edge or vertex of a highlighted face, to carve an edge between the
previous vertex and the place you just clicked.
USER GUIDE
1703
Editing Objects | Quick Start
Tip: To see the normals, press S on the Viewer to display the Viewer Settings, go to the 3D
tab, and activate the show primitive normals button .
USER GUIDE
1704
Setting the Initial Transform Action Center | Quick Start
• object center - The transform handles appear at the center of the bounding box for the object
that the selected items are part of.
• object surface - The transform handles are snapped to the surface of the object, as close as
possible to the average position in the selection. This is the default behavior.
USER GUIDE
1705
Setting the Initial Transform Action Center | Quick Start
Note: The object center and object surface options only apply when you have selected
items on a single object. If you have selected items on more than one object, selection
average is always used.
3. To change the orientation of the transform handles relative to your current selection, set handle
align at the top of the Viewer to:
• world axes - The transform handles are oriented so that the x, y, and z arrows align with the
world x, y, and z axes.
• object axes - The transform handles are oriented so that the x, y, and z arrows align with the
object's local x, y, and z axes.
USER GUIDE
1706
Setting the Initial Transform Action Center | Quick Start
• surface normal - The transform handles are oriented so that the y arrow aligns with the
object's surface normal and the x and z axes are at an arbitrary orientation. This is the default
behavior.
Note: The object axes and surface normal options only apply when you have selected
items on a single object. If you have selected items on more than one object, world axes is
always used.
4. To prevent the position and alignment of the transform handles from being changed when you
change your selection, enable locked at the top of the Viewer.
This makes it easier to rotate a face relative to one of its edges, for example: instead of having to
Ctrl/Cmd+Alt+drag the transform handles into the right place by eye, you can set handle pos to
selection average, select the edge, and enable locked. When you then select the face, the
transform handles stay where they are.
USER GUIDE
1707
Applying Textures | Quick Start
Applying Textures
There are a couple of ways to texture your ModelBuilder models in Nuke:
• If your 3D model closely matches the original 2D footage, you can project the 2D footage onto the
geometry. See Projecting Textures onto Your Shapes.
USER GUIDE
1708
Applying Textures | Quick Start
USER GUIDE
1709
Projecting Textures onto Your Shapes | Quick Start
USER GUIDE
1710
Projecting Textures onto Your Shapes | Quick Start
Tip: To texture your geometry on more than one frame, you can bake Projection on several
frames and use Roto nodes to mask things out before combining the Project3D nodes using
a MergeMat node. Then, connect the MergeMat node to the ApplyMaterial node’s mat input
and ModelBuilder to its unnamed input. Connect a Viewer to the output of ApplyMaterial
and view the results.
Tip: The options in the bake menu are implemented in Python, and you can also use Python
to add your own entries to the menu. To see how the built-in options have been
implemented, have a look at the modelbuilder.py module in the nukescripts folder of your
installation (for more information on the location of this file, see Viewing More Examples).
Then, to create your own menu options, edit the modelbuilder.py file and use the
populateBakeMenu function to add entries where it says "# Add your own entries here, if
desired".
USER GUIDE
1711
UV Unwrapping | Quick Start
UV Unwrapping
If you've used ModelBuilder to add new objects over the top of your 2D footage (for example, added a
new window to a building or extra bins alongside a street), you can't project your 2D footage over
those objects because they were never in the original footage. Instead, you need to supply a texture
from somewhere else and map it over the surface of your 3D object.
An extra cube has been added to the Here, the cube has been
scene. It cannot be textured using textured separately.
the original footage.
To map a texture image over the surface of your 3D object, you first need to flatten your 3D object
out into 2D space through a process called UV unwrapping. This generates UV coordinates for each
vertex in the object, allowing you to map points on the surface of your 3D object to pixels in your
texture image.
USER GUIDE
1712
UV Unwrapping | Quick Start
Tip: UVs are simply 2D coordinates that tell 3D applications how to apply a texture to a
model. The letters U and V were chosen because X, Y, and Z were already used to denote the
axes of objects in 3D space. The U coordinate represents the horizontal axis of the 2D
texture, and the V coordinate the vertical axis.
Quick Start
The process of UV unwrapping is roughly the following:
1. Define where to cut the model in order to flatten it out into 2D space. See Creating Seams on Your
Model.
2. Unwrap the model and preview the results. See Unwrapping Your Model and Previewing Its UVs.
3. Edit the generated UVs as necessary. See Editing UVs.
4. Apply a texture to your model. See Applying Textures.
USER GUIDE
1713
UV Unwrapping | To Create Seams
Tip: If you don't have enough seams marked, the unwrapping will be very poor with lots of
overlapping faces as well as stretching and distortion. On the other hand, too many seams
can make it difficult to texture the object, as the gaps in the seams can easily become
noticeable on the textured object. If possible, it's a good idea to hide seams in areas where
they will not be seen.
To Create Seams
1. If you have created several objects using the same ModelBuilder node, click in the node
properties to hide all the other objects except the one you want to generate UVs for.
• To mark an edge loop as a seam, right-click on the Viewer and choose edge loop selection.
Select an edge loop on your model, right-click, and choose mark as seam.
USER GUIDE
1714
UV Unwrapping | Unwrapping Your Model and Previewing Its UVs
• To mark all edges around a face as seams, right-click on the Viewer and choose face selection.
Select a face on your model, right-click, and choose mark as seam.
Tip: You can also select a face loop and mark all edges around it as seams. To do so, select
at least two faces on your model, right-click, and choose select face loop. Then, right-click
on the Viewer again and choose mark as seams.
• To remove an edge, edge loop, or face from the set of seams, select it in the Viewer, right-click,
and choose unmark as seam.
• To clear all seams, right-click on the object and choose clear all seams.
Any edges that have been marked as seams are displayed in red in the Viewer.
4. Proceed to Unwrapping Your Model and Previewing Its UVs below.
Tip: The easiest way to create a good set of seams for buildings (or any other roughly cubic
or cylindrical object) is to 1) select the top faces and mark them as seams, 2) select the
bottom faces and mark them as seams, and 3) select edges along the side of the model that
connect the top to the bottom and mark them as seams.
USER GUIDE
1715
UV Unwrapping | Unwrapping Your Model and Previewing Its UVs
ModelBuilder generates UV values for each of the vertices on your model. The unwrapped model
appears in the UV preview window in the top left of the Viewer.
4. To display a 2D texture image as a background in the UV preview window, connect the image to
ModelBuilder's tex input and make sure the Preview dropdown in the ModelBuilder properties
(or on top of the Viewer) is set to tex input. To also see the tex input on the model in the 3D
Viewer, set display to either textured or textured+wireframe in the ModelBuilder properties.
Tip: If you are not happy with the generated UVs, you can right-click on your model and
select clear existing uvs. If necessary, you can also change the seams and unwrap your
model again. Each time you do, ModelBuilder replaces the UVs you had with the newly
generated UVs.
USER GUIDE
1716
UV Unwrapping | Editing UVs
Editing UVs
You can tweak the controls at the top of the Viewer or edit the UVs manually in the UV preview
window.
1. Adjust the following controls at the top of the Viewer:
• iterations - The number of times the unwrapper applies its rules about how to move the UV
coordinates towards good locations. This gives you a speed vs. quality trade-off: more iterations
give a better result but take longer to unwrap. Note that the results can only be improved up to
a point, and where that point is depends on the complexity of your model.
• threshold - The unwrapper stops before reaching the maximum number of iterations if it sees
that the improvement from iteration to iteration is negligible. The threshold control tells it how
much change is considered negligible. If the amount of change between iterations is below the
threshold, the unwrapper stops. This is another way to trade off quality for speed. You generally
use this if you want a higher quality result: if you've increased iterations but the unwrapper is
stopping before reaching the maximum, you can lower the threshold to make it keep running.
• separation - The number of pixels to leave between each patch in the unwrapping. If you don't
have enough pixels between your patches, you can get color bleeding through from neighboring
patches when you use the texture. A higher value means more widely spaced patches, but also
more wasted space in your texture image.
As you edit these controls, the UV preview window updates to allow you to see the effect of your
changes.
2. If necessary, you can also edit the UVs manually in the UV preview window:
• To edit a single vertex, drag it to a new location.
• To edit several vertices together, select them and use the transform jack that appears to
translate, rotate, or scale the selection. The transform jack is the same one used elsewhere in
Nuke, so all the controls work the same way. For example, you can click and drag on the
handles to scale out from the center, or Ctrl/Cmd+click and drag to scale out from the opposite
edge.
USER GUIDE
1717
UV Unwrapping | Applying Textures
Applying Textures
At this point, it may be that you've got several objects in the scene that you still want to project your
camera footage onto (see Projecting Textures onto Your Shapes), but there's one object that you want
to texture differently. There are two ways to do this:
• You can export your model as a separate geometry node and use an ApplyMaterial node to texture
it. This can be a convenient way to work if your geometry is finished and locked off, so you never
need to go back and change it. But what you lose with this is the "live" view: if you do need to go
back and edit the object, you have to export it again. See Method 1.
• Alternatively, you can add an ApplyMaterial node directly after your ModelBuilder node and tell
ApplyMaterial to ignore all the geometry that doesn't match the filter you give it. See Method 2.
Method 1
1. In the ModelBuilder properties, select the object that you want to texture differently.
2. At the bottom of the properties panel, set the bake menu to Selected geometry and click Bake.
USER GUIDE
1718
UV Unwrapping | Applying Textures
4. Connect the geometry node you created in step 2 to the unnamed input of the ApplyMaterial
node.
5. Then, connect your 2D texture image to the mat input of the ApplyMaterial node.
The ApplyMaterial node applies the texture from the mat input onto your 3D geometry object. (To
be able to see this in the 3D Viewer, you may have to hide the object in the ModelBuilder
properties.)
6. Connect the ApplyMaterial node to your Scene node and use a ScanlineRender node to render all
the objects connected to that scene.
USER GUIDE
1719
UV Unwrapping | Applying Textures
Method 2
1. From the toolbar, select 3D > Shader > ApplyMaterial to create an ApplyMaterial node.
2. Connect the unnamed input of the ApplyMaterial node to your ModelBuilder node and the mat
input to your 2D texture image.
By default, ApplyMaterial applies the texture from the mat input onto all objects in your
ModelBuilder node.
3. To only apply the texture onto a particular object, open the ApplyMaterial properties and set filter
to name. This allows you to tell ApplyMaterial to ignore any geometry that doesn't match the
filter.
4. To set the filter, click the choose button. In the dialog that opens, select the object you want to
apply the texture to and click OK.
USER GUIDE
1720
UV Unwrapping | Applying Textures
For more information on ApplyMaterial, see Applying a Material Using the ApplyMaterial Node.
5. Connect the ApplyMaterial node to your Scene node and use a ScanlineRender node to render all
the objects connected to that scene.
USER GUIDE
1721
UV Unwrapping | Applying Textures
USER GUIDE
1722
Exporting Shapes to Separate Geometry Nodes | To Export Shapes to Separate Geometry Nodes:
Tip: The options in the bake menu are implemented in Python, and you can also use Python
to add your own entries to the menu. To see how the built-in options have been
implemented, have a look at the modelbuilder.py module in the nukescripts folder of your
installation (for more information on the location of this file, see Viewing More Examples).
Then, to create your own menu options, edit the modelbuilder.py file and use the
populateBakeMenu function to add entries where it says "# Add your own entries here, if
desired".
USER GUIDE
1723
Creating 3D Particles
Nuke's Particle node set is a solution for creating particles in a 3D environment. You can create things
like smoke, fog, falling snow, explosions, and bubbles - the possibilities are endless. You can use the
various Particle nodes for emitting, manipulating, and displaying limitless types of particles in your
3D scene.
Quick Start
Here's a quick overview of the workflow:
1. Create a ParticleEmitter node, and connect it to a Viewer.
2. Connect a source of emission and a particle representation to the emit and particle inputs of the
ParticleEmitter. For more information, see Connecting Particle Nodes.
3. Modify your particles’ lifetime, velocity and other basic properties in the ParticleEmitter properties
panel. For more information, Emitting Particles.
4. Connect other particle nodes to the ParticleEmitter’s output. See Adjusting the Speed and
Direction of Particles, Modifying the Particles’ Movement and Adjusting Particle Simulation
Settings.
5. If necessary, cache your particle simulation in order to read it back in without the need for
recalculation. For more information, see Caching Particles.
USER GUIDE
1724
Connecting Particle Nodes |
USER GUIDE
1725
Emitting Particles |
Emitting Particles
The ParticleEmitter node is the first and only required node in a minimum particle setup. Once you’ve
created a ParticleEmitter, connected it to a Viewer and clicked play on the timeline, you’ll see the
default set of particles emitting (from a 3D geometry or point cloud, if you’ve connected one). You can
then adjust the ParticleEmitter controls to change the way the particles appear:
1. Set the channels in which particles are emitted. Channels a and b are arbitrary names for
channels which are useful if you want different particle force nodes to have an effect on separate
channels.
2. Use the start at field to pre-roll or delay the point at which the first particles are emitted. For
example, particles could imitate snow that has fallen already, instead of displaying the first flakes
falling down, by using a negative start at frame.
3. Select the emission order and rate for the particles. Set:
• emit from - select points, edges, faces or bbox (bounding box) to specify from which part of
the 3D object, or point cloud, particles are emitted.
USER GUIDE
1726
Emitting Particles |
• in order - emit particles as a multiple of the emission rate. For example, an emission rate of 2
could emit from two points, edges, or faces at a time.
USER GUIDE
1727
Emitting Particles |
example, if you are emitting from a Card node that has a Ramp texture, it emits particles from
the light parts of the ramp at a higher rate (values closer to 1) than from the dark parts (values
closer to 0).
4. Set the particles’ color and channels. Enter:
• color - select a color for your particles. Use this if you’re not using the particle input.
• color from texture - check to tint the particles with the colors from the geometry’s texture. If
you leave this unchecked, the particles get color only from their own texture.
• channels - select the channels you want to apply particles to. By default, particles are emitted to
channel a. Channels a and b are arbitrary names for channels which are useful if you want
different ParticleEmitter nodes or other particle force nodes to have an effect on separate
channels. An example of this might be if you want two ParticleEmitter nodes emitting particles,
one to a channel, the other to b channel, so further down in your particle stream you can apply
an effect to a specific set of particles.
5. Select how long you want the particles to exist. Set:
• max lifetime - specify the maximum life span for a particle in frames.
• max lifetime range - adjust the range within which your particles’ lifetime varies. If you set this
to 0, all particles have the same lifetime.
• lifetime channel - select a channel of the input geometry texture that you want to use to
modulate the lifetime. For example, if you are emitting particles from a Card node with a Ramp
texture in the lifetime channel, particles emitted from the lighter parts of the ramp (values
closer to 1) would have a lifetime value closer to that set in the max lifetime than particles
emitted from the dark parts (values closer to 0).
• halflife - select the number of frames over which the number of the particles emitted is halved.
6. Adjust the velocity and rotation for your particles. Set:
• velocity - specify the initial speed at which you want your particles to move.
• velocity range - adjust the range within which you want your particles’ velocity to vary. If you set
this to 0, the velocity doesn’t vary between particles.
• velocity channel - select a channel of the input geometry texture that you want to use to
modulate the velocity. For example, if you are emitting from a Card node that has a Ramp
texture, it emits particles from the light parts of the ramp at a higher velocity (values closer to 1)
than from the dark parts (values closer to 0).
• rotation velocity - adjust the initial speed at which each particle rotates around its individual Y-
axis. The Y-axis points to the direction the particles were initially emitted, and then stays
unchanged (unless you use the ParticleMotionAlign node to change its direction). Rotational
velocity is most useful when you’re emitting particles from a geometry object.
• rotation velocity range - adjust the scale of a random variation in the rotation velocity value.
Value of 0 means the rotation velocity value is as set, value of 1 means it’s very random.
USER GUIDE
1728
Emitting Particles |
• rotation velocity channel - Select a channel of the input geometry texture that you want to use
to modulate the speed of rotation. For example, if you are emitting from a Card which has a
Ramp texture, the rotation velocity of the particles emitted from the light part of the Ramp
(values closer to 1) is greater than that of those emitted from the dark parts (values closer to 0).
• transfer velocity - adjust this to transfer the velocity of the initial emitter to the particles. If you
set this to 0, no velocity is transferred to the spawned particles. At value 1, full velocity is
transferred from the originating particle.
• transfer window - adjust the time, in frames, to look forward or backward in order to
determine the velocity that should be transferred to the particles.
7. Modify the size and mass of the particles. Set:
• size - specify the initial size of each particle.
• size range - specify the range within which your particle size varies.
• size channel - select a channel of the geometry texture that you want to use to modulate the
size of the particles. For example, if you are emitting particles from a Card node which has a
Ramp texture in the size channel, the size of the particles emitted from the lighter part of the
Ramp (values closer to 1) is greater than that of those emitted from the darker parts (values
closer to 0).
• mass - adjust the initial mass of each of your particles. The mass of the particles only becomes
relevant when you apply a force to your particles, such as one generated by the
ParticleDirectionalForce node.
• mass range - adjust to produce a random variation in the mass value. Simply put, 0 value
means the particles’ mass is the value specified by the mass control, whereas a value of 1 means
it’s very random.
• mass channel - select a channel of the input geometry texture that you want to use to modulate
the mass. For example, if you are emitting from a Card which has a Ramp texture in the mass
channel, the particles from the light part of the Ramp (values closer to 1) has a higher mass
value than from the dark parts (values closer to 0). With this control, you can emit particles with
different masses from different areas based on the input geometry’s texture.
• spread - adjust the extent to which you want your particles to spread in different directions
during their lifetime. By default, this forms a cone around the direction of emission. If you set
this to zero, each particle has a straight trajectory.
8. Modify the way your particles are affected by the ParticleEmitter’s inputs. Adjust:
• input order - if you’re using more than one particle input, you can select which particle input
Nuke should select when creating particles. Select Randomly to pick one of the inputs
randomly, or in order to rotate the inputs in numerical order.
• start at - select which frame of the particle input should be the representation of each new
particle. Select first to pick the first frame of the particle input for each new particle. Select in
order to pick consecutive frames from the input for each new particle. Select current to pick
USER GUIDE
1729
Emitting Particles |
the frame where the particle was emitted. Select random to pick a random input frame for each
new particle
• limit to range - limit the particle output to the representation’s frame rate, looping the frame
range when in order or current is selected.
• advance - use this to determine if a particle should animate after being emitted. Select
constant to keep the same representation throughout the particle’s lifetime. Select in steps - to
animate the representation frame by frame. Select randomly to animate the representation one
random frame after another.
9. Vary the results of your range controls with the random seed field. Enter the random number
used in the range controls (such as max lifetime range) to achieve slightly different effects.
Tip: When you set large values for any of the particle controls it might take Nuke a few
moments to calculate the result. In such a case a progress bar appears with a Cancel button
you can use to cancel the calculation if necessary.
USER GUIDE
1730
Spawning Particles with ParticleSpawn |
Spawned particles.
USER GUIDE
1731
Adjusting the Speed and Direction of Particles | Applying Gravity to Particles
OR
• Using the ParticleGravity node. When you connect the ParticleGravity node to your particle stream,
an arrow appears in the Viewer, which you can then use to determine the direction and velocity of
the gravity. The bigger and longer the arrow, the stronger the effect. Instead of adjusting the arrow,
you can also use the controls in the properties panel:
• from - enter the point of origin for the gravity effect on the x, y, and z axis. This determines
from which direction the force appears to come, indicated by the base of the arrow in the
Viewer.
• to - enter direction for the gravity effect on the x, y, and z axis. This is indicated by the point of
the arrow in the Viewer.
Aligning Particles
To align your particles’ motion, direction, and orientation, you can use two nodes:
• You can add the ParticleMotionAlign node in your particle stream to realign all the particles along
their direction of motion. This is useful if your particles seem too rigid in their movement.
• Add the ParticleLookAt node to determine a 3D point that all the particles are looking toward. To
specify this point, adjust the position control. The x, y and z coordinates specify the point that the
particles are looking at.
USER GUIDE
1732
Adjusting the Speed and Direction of Particles | Attracting Particles to a Specific Point
USER GUIDE
1733
Modifying the Particles’ Movement | Bouncing Particles off Objects
USER GUIDE
1734
Modifying the Particles’ Movement | Adding Drag to Particles
Tip: You can also enter negative values to apply a reverse drag effect and speed the particles
up.
USER GUIDE
1735
Modifying the Particles’ Movement | Adding Spiral Motion to Particles
• strength - set the strength for the turbulence effect on the x, y and z axes.
• scale - set the scale of the effect, or the size of the area affected, on the x, y and z axes.
• offset - set the offset applied to the effect, or the offset of the area affected, on the x, y and z
axes.
Tip: If you want to create a helix of particles, you can turn up both the parallel and
tangential values. This creates a particle vortex in a shape of a corkscrew.
USER GUIDE
1736
Modifying the Particles’ Movement | Adding a Wind Effect to Particles
ParticleVortex on a sphere.
USER GUIDE
1737
Adjusting Controls Common to Several Particle Nodes | Particle Rendering Controls
Conditions tab
On the Conditions tab, use the following controls to restrict the way in which the specific node affects
your particles:
• probability - set the probability that this node affects your particles. If you set this to zero, the node
won’t affect any particles, and if the value is 1, the node affects every particle.
• min age - set this to limit the effect of this node only to particles above this minimum age. The age
of the particle is its lifetime normalized between 0 and 1.
• max age - set this to limit the effect of this node only to particles below this maximum age. The age
of the particle is its lifetime normalized between 0 and 1.
• random seed - enter an integer to change the results of generated randomness in your particles.
You can achieve slightly different effects by changing this number.
USER GUIDE
1738
Adjusting Controls Common to Several Particle Nodes | Condition and Region Controls
• channels - specify which particle channels the effect of this node should be applied to. Channels a
and b are arbitrary names for channels which are useful if you want different ParticleEmitter nodes
or other particle force nodes to have an effect on separate channels.
Region tab
1. Using the region control you can select the region which you want to use to confine the particle
effect to. For example, if you select a sphere, only particles inside that sphere-shaped region is
affected by the particle effect. Select none to apply no confining region, or the appropriate shape
for a region between sphere, box, half-space and cylinder.
2. You can also check invert region to only affect the particles outside the region specified.
3. Then move on to adjusting your region with the transform controls. For more information, see
Transforming Geometry, Cameras, and Lights.
USER GUIDE
1739
Adjusting Particle Properties Using Curves | Condition and Region Controls
Note: If you’re using an image or a 3D object as your ParticleEmitter’s particle input, the
ParticleCurve might not alter the colors of the particles as expected.
3. If you want, you can adjust the curve for your particles’ alpha channel so that each particle fades
to invisibility toward the end of its lifetime.
USER GUIDE
1740
Adjusting Particles Using Expressions | Condition and Region Controls
The main difference between Nuke’s Expression node and ParticleExpression is that particle
expressions can return a 3D vector instead of just a single floating point number. If a particle
expression returns a single number N in a field that expects a vector (such as velocity or acceleration)
it is converted into a vector with N for each of its components. For more information about the
functions you can use with ParticleExpression, see Particle Expression Functions.
1. Connect the ParticleExpression node to your particle stream.
2. In the ParticleExpression controls you can use four temporary expression fields. With these, you
can set up any expression on a particle attribute and then give it a temporary name. This
temporary name can then be used in the following fields to refer to the corresponding temporary
expression. This can be useful if you need to use a long expression in several fields. By default,
the per-particle box is ticked to make the expressions affect each particle individually. Uncheck
the box to apply the expression to all particles at once. For more information on expressions, see
Expressions.
3. You can also set expressions on a set of attribute fields:
• color - set an expression to edit the color of the particles.
• opacity - set an expression to edit the opacity of the particles.
• size - set an expression to edit the size of the particles.
• mass - set an expression to edit the mass of the particles.
• accel - set an expression to edit the acceleration of the particles.
• force - set an expression to edit the force of the particles.
• pos - set an expression to edit the position of the particles. For example, enter sin (age * 10) * 5
to emit particles randomly on a single static line.
• vel - set an expression to edit the velocity of the particles.
• onlyonnew - check this next to each attribute field to make the expression only affect new
particles and ignore any existing ones.
USER GUIDE
1741
Adjusting Particles Using Expressions | Particle Expression Functions
acos(f) Returns the arc cosine of f. The result See also: cos, cosh, asin, atan2.
is the angle in radians whose cosine
is f.
atan2(x,y) Returns the principal value of the arc See also: sin, cos, tan, asin, acos,
tangent of y/x, using the signs of the atan, hypot.
two arguments to determine the
quadrant of the result.
cos(f) Returns the cosine of angle f. The See also: sin, tan, asin, acos, atan,
angle is in radians. hypot.
USER GUIDE
1742
Adjusting Particles Using Expressions | Particle Expression Functions
USER GUIDE
1743
Adjusting Particles Using Expressions | Particle Expression Functions
randomv Returns a random vector. The vector See also: uniform samplesphere.
directions are uniformly distributed
around the unit sphere.
USER GUIDE
1744
Adjusting Particles Using Expressions | Particle Expression Functions
samplesphere
USER GUIDE
1745
Adjusting Particle Simulation Settings | Particle Expression Functions
USER GUIDE
1746
Merging Particle Streams | Particle Expression Functions
USER GUIDE
1747
Controlling Particles by Channel | Particle Expression Functions
ParticleToGeo allows you to control geometry or sprite particles by channel, but in the case of sprite
particles, you can also influence their alignment using the align mode control.
The following example uses a very simple particle system containing three colored particles in
separate channels and adds effects to one channel using ParticlesToGeo. The other particles are
unaffected.
USER GUIDE
1748
Controlling Particles by Channel | Particle Expression Functions
Split off the channel you're interested in using ParticleToGeo and MergeGeo nodes. Set the
ParticleToGeo node's channels control to the channel you want to affect. In this example, channel c
with the Sphere geometry is the affected particle.
To add a new texture to the geometry, you can use the AddMaterial node to apply a material to the
affected channel.
USER GUIDE
1749
Controlling Particles by Channel | Particle Expression Functions
USER GUIDE
1750
Caching Particles | Particle Expression Functions
Caching Particles
The ParticleCache node allows you to store the geometry simulation for a particle system to file. It can
then be read back in different sessions of Nuke or on different machines without the need for
recalculation.
This allows a particle system to be produced by an artist and then used by a render farm without
recalculation, speeding up render times.
Note: The ParticleCache node doesn't replace the particle system. It just stores the
simulation to disk and still relies on the particle system being connected in the same way
with the same inputs. If anything in the particle system changes, the ParticleCache node
detects this and shows an error to alert you to changes that have potentially been made
upstream without your knowledge.
USER GUIDE
1751
Caching Particles | Particle Expression Functions
Note: You cannot place a ParticleCache node in the middle of a string of particle nodes or
beneath a Scene node connected to two separate particle streams.
3. In the ParticleCache properties, click the folder icon next to the file field and navigate to the
directory where you want to cache the particle simulation. After the directory path, enter a name
for the cache files and include the frame number variable (for example, ####) in the name. Click
Open.
ParticleCache uses the .nkpc file extension.
Note: ParticleCache may need to render up to 100 sub-frames. To account for this, it adds
decimals to the file name's frame number. For example, if the file name in the file field is
particle_cache.####.nkpc, ParticleCache may generate files called particle_
cache.0001.01.nkpc, particle_cache.0001.02.nkpc, and so on.
4. If you have nodes downstream that generate motion blur, the particle system may need to
request frames outside the normal frame range. If this is the case, increase the padding value in
the ParticleCache properties to set the number of extra frames added to the start and end of the
ParticleCache render.
5. Click Render.
ParticleCache renders your particle simulation out to file frame by frame.
6. To use the cache data, enable read from file.
If you get a "Particle cache data not found" error, return to step 4 and increase the padding value.
USER GUIDE
1752
PrmanRender
PrmanRender is a render node that works together with Pixar’s PhotoRealistic RenderMan® Pro
Server software to give you an even better quality render result. PrmanRender is an alternative to
Nuke’s ScanlineRender with additional features for rendering 3D scenes.
USER GUIDE
1753
Using The PrmanRender Node |
Connect the PrmanRender node to your Scene node, Camera node and any optional inputs, in the
same way you would connect ScanlineRender. For more information about connecting a
ScanlineRender node, see Setting Up a Scene.
On the PrmanRender tab, you can select which aspects you’d like to render out by checking
shadows, reflections, refractions or dof (depth of field). For more information, see Shadows,
Reflections, Refractions and Depth of Field.
You can select your projection mode in the projection mode dropdown:
• Perspective - objects in front of the camera have the illusion of depth defined by the camera’s
focal-length and aperture.
• Orthographic - objects are viewed using a parallel projection.
USER GUIDE
1754
Render Quality |
Render Quality
On the Sampling tab, you can adjust controls that affect your render quality. Adjust:
• ray trace max depth - to set the maximum depth of the view rays PrmanRender uses to trace your
scene and make render calculations.
• pixel samples - to set the number of samples to render per pixel. Having more samples increases
your render quality, but also increases render time.
• filter - to select a texture sampling filtering algorithm. For more information on the different
options, see Choosing a Filtering Algorithm.
• antialiasing filter - to select an antialiasing filter: box, triangle, catmull-rom, sinc, gaussian,
mitchell, separable-catmull-rom or blackman-harris.
• antialiasing filter size - to select the size of the antialiasing filter.
• shading rate - to set the shading calculation for primitives. This value, along with pixel samples,
directly affects your rendering time and the final quality of your results. A small shading rate value
means your render takes more time, but the quality is very high. A large value on the other hand
means your render is faster, but the final quality is not as good.
USER GUIDE
1755
Shadows, Reflections, Refractions and Depth of Field |
USER GUIDE
1756
Motion Blur Parameters |
USER GUIDE
1757
Shader Parameters |
Shader Parameters
On the Shader tab you can select which channels are affected by motion vectors and output vectors.
• Click motion vectors and select the type of vectors you’d like to render:
• off - no motion vector information is rendered.
• velocity - store the velocity of every single pixel in the motion vector channels.
• distance - for every pixel, store the distance (in pixels) between samples in the motion vector
channels.
• Adjust motion vector channels to select which channels you want the motion vectors to be output
to.
• Check output vectors if you want to render output vectors.
• Select which channels to apply surface points and surface normals from the surface point and
surface normal dropdowns.
USER GUIDE
1758
RIB Parameters |
RIB Parameters
With the RIB (RenderMan Interface Bytestream) parameters, you can choose to filter the information
Nuke generates for RenderMan, set your arguments to it, and output your own RIB file. On the RIB
tab:
• filter - check this to filter the information on your scene, generated by Nuke for RenderMan. In order
to do this, Nuke calls a Python function called nukescripts.renderman.filterRIB. Filtering can make
the render startup slightly slower as a temporary RIB file is created for each render.
• arguments - specify your arguments for filtering. This string is passed by Nuke’s Python filter
function as extra arguments to RenderMan. If you want to use your own filter, you can also replace
Nuke’s Python function, and have your arguments passed directly to your own Python function. For
example, you could set the filter arguments to "-rif myfilter.so" to load your own RenderMan
Interface filter.
Tip: For further details on filtering, have a look at your RenderMan documentation.
A RIB file is a RenderMan-compatible ASCII file with information that Nuke generates when rendering
your footage. To output a RIB file:
1. In the file field under output, specify the file name and location for your RIB file.
2. Click Execute.
USER GUIDE
1759
Using the ModifyRIB Node |
Note: You can load a RIB archive by leaving use checked and clicking the Select file button
to locate it.
4. In the ModifyRIB control panel select replace from the operation dropdown menu and enter the
following RIB statement in the statements field:
Sphere 0.25 -0.25 0.25 360
You should now see a basic sphere in the Viewer where the cube was.
5. To change the color of the sphere and add a basic surface shader to the sphere, enter the
following statements underneath:
Color 0.4 0.6 0.1
Surface "wood"
This changes the color of the sphere to green and applies a wood-like finish to the surface.
Note: If you’re copying statements directly from a RIB file, only copy statements from
between WorldBegin and WorldEnd as copying the entire contents of the file may result in
instability issues.
For more information on RIB statements, please refer to the documentation provided with
RenderMan.
USER GUIDE
1760
Using the Reflection Node |
Note: Nuke's RayRender node can also use the Reflection node to control reflections.
1. Create a Reflection node by clicking 3D > Shader > RenderMan > Reflection.
2. Connect the node to the PrmanRender node and set the controls to adjust your reflection:
• reflection color - sets the color of the reflection.
• value - sets the intensity of the reflection.
USER GUIDE
1761
Using the Refraction Node |
USER GUIDE
1762
Using F_DeFlicker2
When working in film, you sometimes have to deal with shots that have a luminance flicker. This
chapter concentrates on removing flicker using F_DeFlicker2.
Introduction
F_Deflicker2 is used to remove flicker. It is particularly suitable for removing flicker that is localized
and dependent on the geometry of the scene (that is, flicker that is not present across the whole of
the image), such as that caused by an unsynchronized fluorescent light in a shot. It works by
calculating the gain between the current frame and each frame in a small analysis range surrounding
it. It then tries to adjust the gain so that it varies smoothly over this frame range. This means it is
better at reducing fast flicker than flicker which varies slowly over the image sequence, as the latter
will already appear smooth over the small frame range and F_DeFlicker2 will leave it largely
untouched.
The algorithm used by F_DeFlicker2 can introduce blurring in areas where there is rapid motion. This
problem could be alleviated by using local motion estimation before deflickering the frames.
However, this process is complicated by the fact that the presence of flicker can adversely affect the
results of the motion estimation. F_DeFlicker2 therefore adopts a two-stage approach to this
problem. First, the normal deflickering process is performed. Then, the motion vectors for the
sequence are calculated on the resulting deflickered frames, and applied to the original frames in
order to align them. The deflicker calculation is then performed on the aligned frames to give the
final result. To use this approach, turn on Use Motion in F_DeFlicker2.
Note: Because F_DeFlicker2 looks at input frames outside the current frame when
performing its calculation, it can be a computationally expensive plug-in. As such, using
more than two instances of F_DeFlicker2 in a node tree will dramatically increase render
times. It is strongly advised therefore, that you render each instance out separately.
USER GUIDE
1763
Quick Start |
Quick Start
To remove flicker from a sequence:
1. Select Image > Read to load the sequence you want to remove flicker from.
2. Select FurnaceCore > DeFlicker2 to apply DeFlicker2. View its output.
3. If you’re not happy with the results, adjust the DeFlicker2 parameters. The available parameters
are described below.
USER GUIDE
1764
Parameters |
Parameters
The parameters for F_DeFlicker2 are described below.
• DeFlicker Amount - Use this to reduce flicker without removing it entirely; smaller values mean
more will be left behind.
• Block Size - To find where a certain pixel is located in the analysis range, the deflicker algorithm
looks for a block of pixels centered around that pixel. Block size defines the width and height of
these blocks (in pixels). On rare occasions, a large block size can produce data that’s lacking in
detail. This is because a small feature can fit into a large block, causing the motion estimation to
concentrate on the background motion and ignore the small feature. A small value, instead, can
produce a noisy motion field, as there aren’t enough constraints in a small block to fit the motion
accurately. In most cases, however, the default value is small enough so that details aren’t lost, and
the smoothing step of the algorithm ensures the motion field isn’t too noisy. Therefore, this value
very rarely needs editing.
• Use Motion - Turn this on to do a second deflicker pass using motion-compensated frames. This
can improve results in areas where there is fast motion, where the initial deflicker pass can
introduce blurring.
• Vector Detail - Determines the density of the motion vectors used when Use Motion is turned on.
The maximum value of 1 will generate one vector per pixel. This will produce the most accurate
vectors but will take longer to render. A value of 0.5 will generate a vector at every other pixel.
• Analysis Range - The number of frames searched each side of the current frame when calculating
the flicker. Higher values may give better results, but can also bring in erroneous information and
take longer to process.
USER GUIDE
1765
Using F_ReGrain
This chapter looks at adding grain to sequences using F_ReGrain.
Introduction
F_ReGrain is used to add grain to a sequence. It has been designed to sample an area of grain from
one image and then to generate unlimited amounts of this grain with exactly the same statistics as
the original. This new grain can then be applied to another image.
The figure on the left shows an enlarged and exaggerated sample of grain from Kodak 320 film stock.
F_ReGrain was used to sample the original Kodak 320 stock and synthesize a plate of grain. The result
is shown in the figure on the right. Note that the grain characteristics closely match the original.
Similarly, below the figure on the left is a sample from Kodak 500 film stock and the figure on the
right shows this replicated using F_ReGrain.
USER GUIDE
1766
Quick Start | Adding Sampled Grain
Quick Start
You can sample grain from an image and apply it to another or select from a variety of pre-sampled,
standard grain types.
USER GUIDE
1767
Quick Start | Using Pre-Sampled, Standard Grain Types
information about the grain characteristics of your image. However, you may need to change its
size and shape to fit over a plain area free of image detail.
Warning: There is a minimum size of this sample area below which the statistical analysis
of the grain will be unreliable. If the sample area you select is too small, you will see a
warning message which prompts you to select a larger region. (See Proxy Resolutions.)
7. View the output of F_ReGrain to judge the results. The output will now contain the Src image with
grain from the Grain image applied. Both the size and the luminance of the new grain can be
manually tweaked using Grain Size and Grain Amount respectively. It helps to view the Grain
input while editing the parameters of F_ReGrain.
The grain is sampled on a single frame which is set when you adjust the sample area (or by manual
adjustment of the Analysis Frame parameter). Although it is sampled on only one frame, the
algorithmically created grain will change from frame to frame but mirror the characteristics of the
sample grain.
USER GUIDE
1768
Response | Using Pre-Sampled, Standard Grain Types
Response
In its default setting, F_ReGrain adds the same amount of grain over the whole image. However, the
amount of grain on an image is normally a function of luminance. Various parameters in the Grain
Response group allow you to adjust how the amount of grain added varies with luminance:
• Pressing Sample Grain Response will cause the variation of the amount of grain with luminance to
be calculated from the Grain input, and switching on Use Sampled Response will apply these
curves to the grain added to the Src sequence.
• To view the sampled response curves, switch on Draw Response; an example is shown in the figure
below.
• The amount of grain added to the lowlights, midtones and highlights of the image can be adjusted
using the Low Gain, Mid Gain and High Gain parameters. The effect of adjusting these can also be
seen on the response curves.
USER GUIDE
1769
Checking the Result | Using Pre-Sampled, Standard Grain Types
This generates a sheet of grain with the same luminance level as the mean of the sample region. The
sample region with the original grain is also displayed. It should be impossible to differentiate
between the two regions. The figure on the left shows a good selection area giving a good test plate of
grain in the figure on the right.
Below, the figure on the left shows a poor selection area since it contains image detail. The figure on
the right shows the resulting test plate which clearly highlights the problem.
USER GUIDE
1770
Proxy Resolutions | Using Pre-Sampled, Standard Grain Types
Proxy Resolutions
Grain manipulation at proxy resolution should be avoided as the results are unreliable. The grain
selection area may be too small at proxy resolution to give a good result, and making this area larger
may drag in unwanted detail from the image. If you try to use F_ReGrain at proxy resolution, we
simply pass the image through untouched and issue the following warning:
We decided that this was preferable behaviour to doing poor grain replication at proxy resolution.
You can, of course, crop the input clip and work with that rather than the proxy. There is a minimum
size for the selection box, which is about 37x37 at base resolution. If the box you select is smaller,
you will get this warning along the top of the viewer:
Sample box is too small - please select a larger sample of the grain.
USER GUIDE
1771
Parameters | Using Pre-Sampled, Standard Grain Types
Parameters
The parameters for this plug-in are described below:
• Grain Type - Selects whether the grain is sampled from the Grain image (From Grain Clip) or from
a set of standard stocks.
• Preset Stock - grain characteristics are sampled from a supplied film stock. 2K, 4K, aperture
corrected and non aperture corrected stocks are supplied. Although standard stocks are
included, it is recommended where possible that you sample from the film stock you are trying
to match.
• From Grain Clip - samples and reconstructs the grain characteristics from the Grain input.
• Preset Stock - The film stock the grain characteristics are sampled from when Grain Type has been
set to Preset Stock. Common Fuji and Kodak stocks are supplied. The exposure can be under, over,
or, if left blank, non aperture corrected. The size is either 2K or 4K pixels. For example, FUJIF500 2K
refers to the grain characteristics sampled from a 2K plate of Fuji Film 500 film stock non aperture
corrected.
• Grain Amount - Adjusts the brightness of the grain. Setting this to 0 means no grain is added.
• Grain Size - Adjusts the size of the grain granules. The larger the value, the bigger and softer the
granules.
• Output - Sets whether to render the result or a test image.
• Result - shows the Source image with the grain applied.
• Grain Plate - shows a test image with the grain applied. This test image is composed from a
section of the input image surrounded by a uniform solid color sampled from the image with
the grain applied. If the inner area is indistinguishable from the outer area, then you have a
good grain sample.
Analyse - This is a push button which will trigger an analysis of the input clip. Press this button if the
input clip from which the grain was analyzed has changed but you do not want to move the analysis
region to trigger re-analysis. Whenever the input clip changes, you will see the following warning in
the Viewer:
The clip from which the grain was analyzed has changed. Press Analyse or move the analysis region to re-
analyze grain.
• Analysis Region - A selection box that marks the region of image used to analyze the grain when
Grain Type is set to From Grain Clip. This part of the frame must contain no image detail, only
grain.
• Analysis Region BL - controls the position of the bottom left corner of the analysis region.
• Analysis Region TR - controls the position of the top right corner of the analysis region.
• Analysis Frame - sets the frame to sample the grain from.
USER GUIDE
1772
Parameters | Using Pre-Sampled, Standard Grain Types
• Grain Colour Space - This tells F_ReGrain what color space the grain sample clip was in when the
grain originated. Setting this correctly ensures that the grain is not exaggerated by any color space
conversions prior to sampling.
• Cineon
• sRGB
• Linear
• Advanced - The parameters under Advanced allow detailed adjustment of the grain.
• Process Red - Switch this on to process the red channel.
• Red Amount - sets the brightness of the grain in the red channel.
• Red Size - adjusts the size of the grain granules in the red channel.
• Process Green - Switch this on to process the green channel.
• Green Amount - sets the brightness of the grain in the green channel.
• Green Size - adjusts the size of the grain granules in the green channel.
• Process Blue - Switch this on to process the blue channel.
• Blue Amount - sets the brightness of the grain in the blue channel.
• Blue Size - adjusts the size of the grain granules in the blue channel.
• Grain Response - The parameters under Grain Response allow the amount of grain added to be
varied as a function of the image luminance.
• Apply Grain In - This controls what color space the grain sample is re-applied to the image.
Generally, this should be set to Grain Colour Space to ensure the most accurate recreation.
You may want to override this though for some looks or special cases.
• Cineon / sRGB / Linear - The grain sample will be applied in the specified space.
• Grain Colour Space - The Grain sample will be applied in the color space set in the Grain
Colour Space dropdown menu, in the Grain Sample section.
• Low Gain - adjusts the gain of the grain in the lowlights.
• Mid Gain - adjusts the gain of the grain in the midtones.
• High Gain - adjusts the gain of the grain in the highlights.
• Use Sampled Response - switch this on to scale the brightness of the grain as a function of the
luminance of the Grain image.
• Sampled Response Mix - this control is usually set to 1. Decreasing it reduces the effect of the
response curves until, at 0, they have no effect on the output. This parameter is only available if Use
Sampled Response is on.
• Sample Grain Response - press this to update the response curves from the current frame.
Multiple presses accumulate the grain response rather than resetting every time. This parameter is
only available if Use Sampled Response is on.
USER GUIDE
1773
Parameters | Using Pre-Sampled, Standard Grain Types
• Reset Grain Response - press this to reset the grain curves to their default (flat) response. This
parameter is only available if Use Sampled Response is on.
• Draw Response - overlays the response curves on the bottom left corner of the viewer. This
parameter is only available if Use Sampled Response is on.
USER GUIDE
1774
Color Space in FurnaceCore Plug-ins | Color Space in F_ReGrain
Like Nuke, FurnaceCore expects all footage to be in Linear space. Nuke converts all footage to Linear
upon import, so unless you have changed the colorspace in your Read nodes (or in the node tree by
using a Colorspace node before a FurnaceCore plug-in), your footage should be Linear by the time it
reaches the plug-in anyway.
If you know that the input to a plug-ins isn’t Linear, you should use a Colorspace node before and
after the plug-in to convert to and from Linear for processing. This should ensure optimal results.
This is accomplished by setting the Grain Colour Space dropdown menu in the F_ReGrain controls to
the right space. For example, if you were sampling grain from a film scan, you would want to set this
to Cineon. If you had footage from a digital video camera, this would most likely be sRGB. F_ReGrain
automatically sets the right color space when using one of the pre-sampled grain clips, which are in
sRGB.
F_ReGrain also works best when applying grain in the same color space that the sampled grain
originally existed. There is a dropdown menu in the Response section of the F_ReGrain controls
which allows you to match or override this. It defaults to applying the grain in the same space as the
sample.
USER GUIDE
1775
Using F_WireRemoval
This chapter looks at the removal of wires from images using F_WireRemoval.
Introduction
Many effects movies feature complicated stunts that require an actor to be suspended by wires for
their safety. These wires need to be digitally removed.
There are many ways of doing this, including painting the wires out frame by frame and replacing
large parts of the background to cover the wires. The method used depends on the type of image
under the wire. F_WireRemoval is particularly good at replacing the painting method but it also
includes tools to assist in clean plating when new backgrounds have to be tracked into place.
USER GUIDE
1776
Background | Clean Plates
Background
Clean Plates
The use of clean plates in wire removal is very common and gives good results in certain situations.
Consider a scene shot with an actor suspended from wires and then the same scene shot again
without the actor. This second sequence is called the clean plate. The wires from the first shot can be
painted out using pixels from the clean plate leaving the actor suspended in thin air.
Shooting a clean plate if the camera is locked off is easy. If the camera moves, then motion control
rigs can be used to exactly reproduce the first pass. But it doesn’t always work, particularly if the
scene is shot against backgrounds that don’t look the same on the second pass, such as clouds, sky,
or smoke. Motion control rigs are also expensive and that makes them a rarity. Often, a clean plate is
not shot during the filming and the compositor is left to create one by merging together
unobstructed pixels from many frames. This single frame can then be tracked into place to cover the
wires.
FurnaceCore
FurnaceCore’s wire removal plug-in should make the process of wire removal much easier. It is
particularly good at removing wires over heavily motion blurred backgrounds or wires over smoke,
dust, or clouds. It can be used to remove each wire in a sequence or to quickly create a clean plate
which can then be tracked into place.
The reconstruction of the background behind the wire can be done spatially, in other words, using
only information from the current frame. Alternatively, motion estimation techniques can be used to
warp frames from before and after onto the current frame so that, where available, background
pixels from these frames can be used to improve the repair. Our reconstruction methods are unique
in that they remove the wire without removing and reapplying the grain. They are also tuned to
remove long thin objects, leaving other objects untouched. For example, if transient foreground
objects cover the wire, they will be left alone.
USER GUIDE
1777
Reconstruction Methods | FurnaceCore
Reconstruction Methods
Our four reconstruction methods are:
• Spatial
• Temporal With Static Scene
• Temporal With Moving Scene
• Clean Plate
The spatial method takes the background information from adjacent pixels in the current frame, and
the clean plate method takes the information from a separate clean plate input. The other methods
are temporal and attempt to get background information from frames either side of the current
frame. Where this information is not available, for example, because the wire covers part of the same
region in one or more of the other frames, the spatial method will be used for the repair.
The spatial method is fastest. It uses a slope-dependent filter that interpolates across the wire at the
most likely angle, given the image behind the wire. It works well when the wire is over backgrounds
such as sky, clouds, or smoke, and can also cope with some backgrounds where there is a noticeable
gradient, such as the edge of a roof, building, or car. If this fails and the wire is moving relative to the
background, you should try one of the temporal methods. These look at frames before and after the
current one to find likely pixels with which to repair the region and use the spatial method in areas
where there are none available.
Where traditional clean plates are possible or give better results than using F_WireRemoval to repair
the wire on each frame, you can supply a clean plate as the fourth input to the plug-in. It will then
automatically match-move it to repair each frame. If the overall luminance of the background is
different to that of the clean plate or varies during the sequence, turn on Luminance Correct. The
luminance of the background pixels used for the reconstruction will then be adjusted before the
repair is made. Of course, various FurnaceCore tools can be used to create a clean plate, including an
F_WireRemoval pass on a single frame where the repair has been successful.
USER GUIDE
1778
Tracker | FurnaceCore
Tracker
F_WireRemoval incorporates a tracker which can automatically track a moving wire through a clip.
This tracker has its own control panel, which will float inside the NukeX viewer if you have checked
Show On Screen Controls in the WireRemoval controls. Below is a screenshot that illustrates this.
You can resize the panel by dragging its edges. For details of the rest of the controls, see the section
on Tracker Controls on Tracker Controls. All the controls are also available in the WireRemoval
properties.
USER GUIDE
1779
Quick Start | FurnaceCore
Quick Start
To remove a wire from an image sequence, do the following:
1. Select Image > Read to load the clip that needs a wire removed.
2. Select FurnaceCore > F_WireRemoval. Connect your image sequence to F_WireRemoval’s
Source input. View the output from F_WireRemoval.
3. Make sure Output is set to Source, and use the on-screen tools to draw a region that defines the
position and shape of the wire to be removed. For more information, see Positioning the On-
Screen Wire Tool.
4. If the wire you want to remove is moving, start the wire tracker by clicking on the Track Forwards
button, so that it follows the wire during the clip. For more information, see Tracker Controls.
5. From the Repair dropdown menu, choose a repair method that removes the wire. If you choose
to use the Clean Plate method, connect a clean plate image to F_WireRemoval’s CleanPlate
input. For more information on the available methods, see Reconstruction Methods.
6. To see the output, set Output to Repair.
7. If necessary, increase Overall Width to expand the width of the repair region until the wire
disappears.
USER GUIDE
1780
Positioning the On-Screen Wire Tool | FurnaceCore
Tip: To show the on-screen tracker panel, check Show On Screen Controls in the
WireRemoval properties.
3. Position the on-screen wire tool so that it roughly fits the wire you want to remove. To move the
entire tool, drag its central line to a new location. To move an individual wire point on the tool,
drag its center. To move an individual point in either a horizontal or vertical direction only, drag
the horizontal or vertical line on the cross that marks the point.
4. Press the Snap To button in the WireRemoval properties or the on-screen tracker panel. This
will find the edges of the wire and adjust the removal region to fit it more closely. It does this by
locating the areas of highest gradient, which should correspond to the edges of the wire.
5. In practice, the edges of the wire will be slightly soft, so the resulting region might not cover the
whole width of the wire. To correct for this, you can adjust the Overall Width parameter. This
expands the region outwards, over all key frames, to ensure the entire width of the wire is
covered.
USER GUIDE
1781
Tracking | FurnaceCore
Tracking
F_WireRemoval incorporates a tracker that tracks the region to be repaired through the image
sequence.
on the timeline and press the Delete track keyframe button . This deletes the track keyframes
around the frame you adjusted and forces NukeX to interpolate smoothly around the adjustment.
Similarly, if there is too much jitter in the track between some frames, you can delete the track
keyframes between these frames. This way, NukeX will interpolate smoothly from one frame to
another.
If it is not possible to track the wire automatically, the wire can be manually keyframed. Adjusting the
on-screen wire tool on each frame will automatically set user keyframes. Alternatively, they can be set
USER GUIDE
1782
User Keyframes and Track Keyframes | FurnaceCore
User keyframes override track keyframes on the same frame. This has the following consequences:
• Once you set a user keyframe, the track keyframe on that frame will be lost.
• When you track a wire, existing user keyframes will not be replaced by track keyframes.
USER GUIDE
1783
Indicators on the On-Screen Wire Tool | FurnaceCore
Control Description
The current frame is inside the range of frames to track the wire over.
The current frame is not inside the range of frames to track the wire over.
The current frame is the first frame in the range of frames to track the wire over.
The current frame is the last frame in the range of frames to track the wire over.
USER GUIDE
1784
Tracker Controls | FurnaceCore
Tracker Controls
The following controls appear in the on-screen tracker panel that you can display in the Viewer by
checking Show On Screen Controls in the WireRemoval properties.
Control Description
Toggle display mode - Toggle the display mode for the on-screen wire tool: show the
points and lines, show just the points, or hide both points and lines.
Number of points - Changes the number of points used to describe the wire.
Snap to wire - Finds the edges of the wire and snaps the edges of the region onto
them.
Track backwards - Plays backwards through the sequence tracking from frame to
frame.
Track forwards - Plays forwards through the sequence tracking from frame to frame.
Smart track - Tracks from beginning to end of frame range in an intelligent order.
USER GUIDE
1785
Tracker Controls | FurnaceCore
Control Description
Delete track key frames backwards - Deletes track keyframes backwards through the
sequence until either a user keyframe or the beginning of the sequence is reached.
Delete track key frame and step backward - Deletes a track keyframe and steps
backwards one frame.
Delete track key frame and step forwards - Deletes a track keyframe and steps
forwards one frame.
Delete track key frames forwards - Deletes track keyframes forwards through the
sequence until either a user keyframe or the end of the sequence is reached.
Delete all track key frames - Deletes all track keyframes from the sequence.
Delete all track and user key frames - Deletes both track keyframes and user
keyframes.
USER GUIDE
1786
Parameters | FurnaceCore
Parameters
The parameters for this plug-in are described below.
Tracker buttons - most of the on-screen tracker panel buttons also appear here. For more
information, see Tracker Controls.
Type - this parameter controls the number of points on the on-screen wire tool. Choose the number
of points needed to describe the wire you wish to remove.
• Two Points - choose this if your wire is straight.
• Three Points - choose this if your wire is a simple curve.
• Five Points - choose this if your wire has an s-shaped curve.
On-Screen Wire - the display mode for the on-screen wire tool.
• Show - show both points and lines.
• Hide - hide both points and lines.
• Points only - only show the points.
Show On Screen Controls - use this to show or hide the tracker panel in the Viewer.
Track Start - use this to specify the start of the tracking range when Track Range has been set to
Specified Range.
Track End - use this to specify the end of the tracking range when Track Range has been set to
Specified Range.
Repair - sets the algorithm used to remove the wire from under the grain.
USER GUIDE
1787
Parameters | FurnaceCore
• Spatial - this method uses a slope dependent filter that interpolates across the wire at the most
likely angle, given the image behind the wire. It uses information from the current frame only.
• Temporal With Static Scene - this method uses local motion estimation to align frames from
before and after onto the current frame. If the wire is not in the same place with respect to the
background in these two frames, it can then use background information from them to fill in the
background behind the wire in the current frame. Where no such information is available, for
example, if the wire covers part of the same region in all three frames, the spatial repair method
above will be used. This is useful for sequences where the wire is moving and where the motion in
the rest of the scene is non-uniform, for example, if the camera has been locked to place but there
are objects moving in the area surrounding the wire.
• Temporal With Moving Scene - also aligns frames from before and after onto the current frame,
but uses global motion estimation. Again, it gets background information from these two frames
where it can and uses the spatial repair method to fill in the rest. This is useful for sequences where
the wire is moving and the motion in the rest of the scene is fairly uniform, for example, if the entire
scene is moving in the same direction as a result of a camera pan.
• Clean Plate - choose this method if you have a clean plate you wish to use for the repair, or if F_
WireRemoval does not do a good job of removing the wire from each frame. Connect the clean
plate or single frame with the wire removed to the CleanPlate input. F_WireRemoval will then align
this frame to the frame to be repaired in order to reconstruct the background behind the wire.
Filter Size - this is a trade off between the amount of grain removed and the blurring of image along
the direction of the wire. If the wire you are trying to remove has detail within it (for example, a steel
wire in which the twisted threads are reflecting light), then the algorithm may leave these alone,
thinking that they are grain. In this situation, you should decrease the filter size. A value of zero will
definitely remove the artifacts but also the grain, which would then have to be put back using
FurnaceCore’s F_ReGrain.
Temporal Offset - the time offset of the additional frames to use for the Temporal With Static
Scene or Temporal With Moving Scene methods. This determines which two frames before and
after the current frame are used to fill in the background behind the wire. For example, if this is set to
2 and the current frame is 30, frames 28 and 32 are used.
Luminance Correct - turn this on for methods other than Spatial repair where there are global
luminance shifts between one frame of the sequence and the next, or between a frame of the
sequence and a clean plate you are using for the repair. With Luminance Correct turned on, F_
WireRemoval will adjust the luminance of the background pixels it uses to the correct level before
doing the repair.
Lum Block Size - change this value if luminance correction is not working as well as it should. The
luminance correction uses overlapping blocks and matches the luminance within those blocks;
changing the size of the blocks will change the regions covered by each block and could result in a
better match.
USER GUIDE
1788
Parameters | FurnaceCore
Points - Parameters to set the position of the points used to define the wire.
Point 2 - the position of the point on the wire between the start point and the mid point (this is only
active if Type is Five Points).
Point 4 - the position of the point on the wire between the mid point and the end point (this is only
active if Type is Five Points).
Start Width - the width of the wire at point 1 of the on-screen wire tool.
End Width - the width of the wire at point 5 of the on-screen wire tool. This allows you to make your
repair region wider at one end than the other, which is useful for cases where there is motion blur
on the wire.
Overall Width - increase this parameter to expand the width of the repair region along its entire
length, and for all key frames.
USER GUIDE
1789
Global Motion Estimation
FurnaceCore has three effects based on global motion estimation (GME).
Introduction
FurnaceCore effect based on global motion estimation calculate a four-corner pin, which finds the
best fit of one image onto another, and then apply that pin. These effects differ in how that corner pin
is calculated and to which image that pin is applied. This chapter describes the general idea behind
these plug-ins; for more detailed information on each plug-in, please read their individual chapters.
USER GUIDE
1790
What is Global Motion Estimation? | Limitations of GME
Using the plug-ins’ parameters, you can tell the GME engine what type of motion to expect. This can
be a combination of any of:
1. translation - which allows the four corners to translate by the same amount,
2. rotation - which allows the corners to rotate about their center,
3. scale - which allows the size of the area defined by the corners to change,
4. perspective - which allows the angles at the corners to change, so that the area defined by them
is no longer a rectangle.
The more types of motion you allow, the more expensive the motion estimation becomes. For many
scenes, rotation and translation are sufficient.
The GME effects have an accuracy control, which controls the amount of work Foundry’s GME engine
does to calculate the global motion. Typically, the higher this is, the better the estimation, but the
more expensive it is.
Limitations of GME
As stated above, global motion estimation simply calculates a four-corner pin to transform one image
onto another. This means that GME can’t be used to match two images where there is heavy parallax,
very complicated foreground motion, changing objects, and so on.
The best way to think of what GME can do is that if you can do it with a four-corner pin, it can; if you
can’t, it can’t. However, GME will take the pain out of hand matching pins frame by frame.
USER GUIDE
1791
Global Motion Estimation Effects | Using Them
Using Them
These effects analyze images over a range of frames to figure out their four-corner pins. This is done
in response to the user pressing the Analyse button in the effects control panel. During analysis, the
effect will run through a range of frames adding keys to the corner pin parameters. These corner pins
are then applied to the source clip to render a frame.
F_Steadiness has a separate analysis pass that happens interactively; it then uses the previously
computed and key-framed corner pins during render. This speeds up its operation, as the analysis
step only has to be done once, and once it has been done this plug-in is very quick to render.
However, F_Align, which only ever needs the two current frames from each clip, can compute the
corner pin on the fly (but not keyframe it!). This leads to a slightly different mode of operation for the
following effects:
• F_Steadiness
• needs to have an analysis run before it renders useful output,
• will always use the value in the corner pin parameters when rendering the output image.
• F_Align
• no need to have the analysis run to render output, but doing so will give you a key-framed
corner pin,
• during render, it will use the value of the corner pin parameters only if there is a keyframe there,
otherwise, it will analyse on the fly during render. This means that analysis will speed up later
renders, as just rendering the corner pin is much cheaper than calculating it.
Some parameters to the effect control how the effect performs GME analysis, and some only affect
the rendering. If you ever modify one of these parameters, then any analysis you may have
performed will be out of date. To let you know, an overlay warning will be posted whenever this
happens. You don’t have to re-analyze and your renders will still look at the keyed corner pins.
If you have not modified a parameter that affects analysis (the warning overlay will let you know),
pressing Analyse will only re-analyse a frame if there is no key on the corner pin at that time. This
avoids redundant re-analysis if you have interrupted the analysis or extended the analysis range.
However, if you want to force re-analysis, press Clear Analysis and all keys will be deleted.
USER GUIDE
1792
Global Motion Estimation Effects | Using Them
F_Steadiness and F_Align have an analysis region rectangle parameter which is used to specify which
area of the reference image should be analysed during GME. So, for example, with F_Steadiness set
to Lock Mode, this is the area inside the lock frame that a match will be sought for. The
documentation for each plug-in describes exactly how to use the analysis region.
USER GUIDE
1793
Controls | Parameters That Affect Analysis
Controls
The controls common to all GME plug-ins are described below. They are grouped into two sections:
• Ones that determine how analysis is carried out. See Parameters That Affect Analysis.
• Ones that control the rendering of the output. See Parameters That Affect Rendering.
Analyse - This is a push button which triggers an analysis of the input clips and calculate a corner pin.
Interrupting the analysis does not delete the corner pin keys that have already been calculated.
Render During Analysis - If set, this toggle causes the effect to update the time line and render a
freshly analyzed frame so you can see the progress of the effect. Doing so slows down the analysis
somewhat, so toggle this off to speed up the general analysis.
Clear Analysis - Pressing this push button deletes all keyframes from the corner pin parameters,
allowing you to force a re-analysis if you feel the need to.
Analysis Range - This controls the range of frames any analysis will be run over. It can be one of:
• Specified Range - which looks at the parameters Analysis Start and Analysis Stop for the range of
frames to analyze,
• Source Clip Range - which automatically determines the range of frames to analyze from the length
of the input clip.
Analysis Start - The first frame to analyze from if AnalysisRange is set to Specified Range.
Analysis Stop - The last frame to analyze from if Analysis Range is set to Specified Range.
Scale - A toggle that indicates whether the calculated corner pin can include a scaling factor.
Rotate - A toggle that indicates whether the calculated corner pin can include rotations.
Translate - A toggle that indicates whether the calculated corner pin can include translations in x and
y.
Perspective - A toggle that indicates whether the calculated corner pin can include perspective
transforms.
USER GUIDE
1794
Controls | Parameters That Affect Rendering
Analysis Region - This is the region analyzed to calculate the four-corner pin. This is especially useful
when doing any form of frame locking, in which case, go to the lock frame, look at the reference clip
and position the box over the area you want locked.
• Analysis Region BL - controls the position of the bottom-left corner of the analysis region.
• Analysis Region TR - controls the position of the top-right corner of the analysis region.
Accuracy - This controls the time/accuracy trade off in the GME engine. The higher this is, the slower
it goes, but you have a better likelihood of a good result.
Invert - If set, then the inverse of the calculated four-corner pin is used during render.
USER GUIDE
1795
Widgets | Parameters That Affect Rendering
Widgets
All the Analyzing GME effects have two on-screen widgets: one to provide feedback and one to set up
the analysis region.
Analysis Region Widget - This is a rectangle widget which you use to set the analysis region over the
reference image.
Four Corner Widget - This is a widget that shows the state of the four-corner pin that has been
calculated. You can change it by grabbing any of the corners and tweaking the shape of the pin. To
give you more feedback as to what frames have been analyzed, it will be drawn solid if there is a key
in the corner pin at the frame being displayed; otherwise, it will be drawn dashed.
USER GUIDE
1796
Using F_Align
This chapter looks at how to use F_Align to register (line up) two shots that are of the same scene, but
have slightly different camera motion and foreground objects. This can be useful, for example, for
doubling up the crowd size by lining up and comping together two shots of the same scene, or
locking your freshly generated clean plate to the original.
Introduction
F_Align takes two sequences that were shot of the same scene and lines them up spatially. It uses
Global Motion Estimation (GME) to calculate a four-corner pin so that each frame in one shot (the
source input) will be aligned with the corresponding frame in a second shot (the reference input). The
result is the source image which has been repositioned to line up with the reference image.
To be able to align the sequences, F_Align analyzes them for global motion. This analysis can be
triggered for the complete sequence, specified frame range, or a single frame when you press the
Analyse button in the F_Align controls. Alternatively, it can be done on the fly for a single frame when
USER GUIDE
1797
Using F_Align |
you move to a new frame on the timeline. The advantage of pressing Analyse is that during the
analysis, F_Align stores the calculated four-corner pin as key-framed parameters. When you then
render the output of the plug-in later, F_Align can use these key frames without having to calculate
them again.
If you analyze on the fly, you won’t have direct access to the calculated corner pins. Any re-rendering
will also be significantly slower, as the ’on the fly’ calculations will have been lost and F_Align will have
to analyze again.
If at any stage you modify the effect in such a way to invalidate the key-framed analysis (for example
by changing the Accuracy parameter), a warning will be posted and the effect will analyze on-the-fly
during render, ignoring the keyed analysis.
The on-screen widget and the Analysis Regionparameters are used to control which section of the
Referenceframe is being matched to each Source frame. Typically, leaving the region at its default is
good enough. However, a heavy mismatch in foreground detail may make it necessary to change the
region to a section that is shared between shots.
The transformation in F_Align is concatenated with other NukeX transform nodes. This means that if
you add a row of F_Align and NukeX transform nodes to a tree, their functions are combined.
Because the image is only re-sampled once, there is no loss of image quality and processing time is
decreased. However, as in NukeX, certain nodes, including color correction nodes, can break the
concatenation.
For more of an overview of Global Motion Effects and a description of the common way of working
many of these effects have, please see Global Motion Estimation.
USER GUIDE
1798
Quick Start | Analyzing with the Analyse button
Quick Start
This section gives a very brief outline of how to use the plug-in. It covers both analyzing using the
Analyse button and analyzing on the fly.
USER GUIDE
1799
Quick Start | Analyzing On The Fly
USER GUIDE
1800
Parameters | Analyzing On The Fly
Parameters
The parameters for this plug-in are described below.
Analyse - This is a push button which will trigger an analysis of the input clips and calculate a corner
pin. Interrupting the analysis will not delete the corner pin keys that have already been calculated.
Render During Analysis - If set, this toggle will cause the effect to update the time line and render a
freshly analyzed frame in the Viewer so you can see the progress of the effect. Doing so will slow
down the analysis somewhat, so toggle this off to speed up the general analysis.
Clear Analysis - Pressing this push button will delete all keyframes from the corner pin parameters,
allowing you to force a re-analysis if you feel the need to.
Analysis Range - This controls the range of frames any analysis will be run over. It can be one of:
• Specified Range - which will look at the parameters Analysis Start and Analysis Stop for the range
of frames to analyze,
• Source Clip Range - which will automatically determine the range of frames to analyze from the
length of the input clip.
• Current Frame - the analysis occurs only on the current frame. This is useful for correcting any
errors that may have occurred while analyzing the entire clip.
Analysis Start - The first frame to analyze from if Analysis Range is set to Specified Range.
Analysis Stop - The last frame to analyze from if Analysis Range is set to Specified Range.
Scale - A toggle that indicates whether the calculated corner pin can include a scaling factor.
Rotate - A toggle that indicates whether the calculated corner pin can include rotations.
Translate - A toggle that indicates whether the calculated corner pin can include translations in x and
y.
Perspective - A toggle that indicates whether the calculated corner pin can include perspective
transforms.
Analysis Region - This is the region analyzed to calculate the four-corner pin. This is especially useful
when doing any form of frame locking, in which case, go to the lock frame, look at the reference clip
and position the box over the area you want locked.
Analysis Region BL - controls the position of the bottom left corner of the analysis region.
Analysis Region TR - controls the position of the top right corner of the analysis region.
USER GUIDE
1801
Parameters | Analyzing On The Fly
Accuracy - This controls the time/accuracy trade off. The higher this is, the slower the analysis, but
you have a better likelihood of a good result.
Invert - if set, then the inverse of the calculated four-corner pin is used during render.
USER GUIDE
1802
Using F_RigRemoval
This chapter looks at the removal of unwanted objects (rigs) from image sequences without accurate
rotoscoping or keying to produce a clean plate.
Introduction
In this context, we define a rig as a foreground element in a sequence that moves over a background
element. The plug-in will only work satisfactorily if it is possible to model the background motion by a
global 3D transform. For example, if the background contains multiple objects moving in different
directions, the results will be poor. Typically, good results will only be achieved in situations where a
skilled artist could generate, and track in, a clean plate in order to repair the sequence. However, this
plug-in should make the process quicker and easier. The rig removal algorithm works by estimating
the background motion between successive frames, ignoring the foreground object, and then using
the motion information to look forward and backward in the sequence in order to find the correct
piece of background to fill in the missing region. The size of the missing region and the speed of the
background dictate how far away from the current frame it is necessary to search to find the correct
information.
USER GUIDE
1803
Quick Start |
Quick Start
To remove an unwanted object from an image sequence, do the following:
1. Select Image > Read to load the sequence with an unwanted object.
2. Select FurnaceCore > F_RigRemoval and connect your image sequence to F_RigRemoval’s Src
input. View the output of F_RigRemoval.
3. On each frame, define the area that will be repaired. You can do this in the following three ways:
• If the image sequence has an embedded alpha channel, then you can use that alpha to define
the area to be repaired. To do so, set Rig Region to Src Alpha.
• Using F_RigRemoval’s RigMask input, you can feed in a matte sequence to define the area to be
repaired. To use this matte, set Rig Region to Rig Mask Alpha (or one of the other Rig Mask
options).
• You can use the on-screen rectangle to define the area to be repaired. To do so, set Rig Region
to Box. Position the on-screen rectangle on top of the unwanted object. To key-frame the
position to follow the object, select Set key from the animation menus next to Rig Region BL
and Rig Region TR in the Rig Region Box parameter group. Move to a new frame and reposition
the on-screen rectangle. A new key frame is set automatically. Repeat as necessary until the
rectangle covers the object on every frame you want to remove the object from.
Whichever method you choose, the region does not need to be the exact foreground region, but
just a rough outline. However, you should avoid making it unnecessarily large as this will increase
rendering time.
4. Having defined the region to repair throughout the clip, set Frame Range to the number of
frames that the plug-in needs to analyze forwards and backwards to find enough data to repair
the sequence. On the first frame, this will be quite time consuming as the algorithm needs to
estimate the motion between each pair of frames. Subsequent frames will be much quicker.
5. If it has not been possible to replace all the foreground pixels, either because Frame Range was
set too low or the background information does not exist anywhere within the sequence, the
pixels will be displayed in red. Try to adjust Frame Range until no red pixels are visible and then
render the sequence.
Below, in the figure on the left, we are using a box to define the pixels to replace, and Frame
Range is set to zero. Increasing this value, as shown in the figure on the right, gathers pixels from
other frames and improves the result. To completely remove the red pixels, you’d need a Frame
Range value of 5.
USER GUIDE
1804
Quick Start |
Tip: F_RigRemoval is fairly slow to process, which can make the initial keyframing of the
rectangular region frustrating.
Sometimes, the easiest way to adjust the region is to load up F_RigRemoval, and to view the
source so the effect is not processed, but the parameters are visible. Then, animate the
rectangular region over the foreground object you’re trying to remove throughout the
sequence. When you’re happy with the region position, click back onto F_RigRemoval’s
output and wait for it to update. Slowly increase the Frame Range parameter until the
whole region is repaired, then check the output on other frames.
Note: F_RigRemoval uses frames from a wide range around the current frame. Feeding the
output of one F_RigRemoval node into another will greatly increase the memory over head,
as the second F_RigRemoval node will require the first F_RigRemoval node to calculate all its
frames before passing the result on. Therefore, it is strongly recommended that you process
out the first result and then use the processed result with the second F_RigRemoval node.
USER GUIDE
1805
Occlusions |
Occlusions
The algorithm used in F_RigRemoval is unable to differentiate between multiple foreground objects. If
there is another foreground object in the sequence that moves through the background region that is
being used in the repair, this second foreground object will also be cut up and used, resulting in an
incorrect repair. To try and assist in these situations, it is possible to mark regions of the image as not
to be used for repair by setting their alpha value to mid gray. This will ensure that spurious bits of
other foreground objects do not appear in the repair.
In the figure below, we are trying to remove the woman in the center of the screen as she walks from
left to right down the street. At this frame, a man walks in the opposite direction and her feet and his
head overlap.
Original shot.
Below, the figure on the left shows the normal matte for the woman, and the figure on the right
shows the result of using this in F_RigRemoval. Note that the man’s head interferes with the repair
and the reconstruction of the pavement is particularly bad, probably due to the man becoming the
dominant motion source.
To fix this, we can adapt the matte to include a mid gray area over the man. This tells the rig removal
algorithm to ignore that area in the repair. This matte is shown below in the figure on the left, and the
result is shown in the figure on the right. Note that the repair on the pavement is improved, and the
man is simply clipped rather than being used in the repair.
USER GUIDE
1806
Occlusions |
USER GUIDE
1807
Parameters |
Parameters
The parameters for this plug-in are described below.
Frames Searched - Sets whether to search forwards, backwards, or in both directions to find missing
data.
• Forward and Backward - searches before and after the current frame.
• Forward - searches frames after the current frame.
• Backward - searches frames before the current frame.
Frame Range - Sets the number of frames the algorithm should look forwards and backwards in the
sequence to find the missing data. If you are getting red pixels, then increase this value. See Quick
Start .
Frames Used in Range - If Frame Range has to be set to a large number to make an effective repair,
the rendering time can be prohibitive. Frames Used in Range can speed up the repair by not using
every frame to fill the foreground region, effectively skipping frames. However, this may reduce the
quality of the result.
• All Frames - use every frame in the searched frame range to construct the repair.
• Half of Frames - use every other frame in the searched frame range to construct the repair.
• Quarter of Frames - use every fourth frame in the searched frame range to construct the repair.
• 10% of Frames - use every tenth frame in the searched frame range to construct the repair.
• Max 25 Frames - use no more than 25 frames from the searched frame range to construct the
repair. This option can be useful if Frame Range has been set to a very large number.
Max Rig Movement - To avoid perspective changes, F_RigRemoval searches for the missing data
inside an area immediately around the rig region. Max Rig Movement defines the width of this area
(in pixels). Fast movement in the Src footage requires a higher value than slow movement. However,
USER GUIDE
1808
Parameters |
because the area used for the repair may be from a different part of the image, high values can
introduce perspective problems.
Rig Region Box - The rectangular area used to define the repair when Rig Region is set to Box.
Rig Region BL - controls the position of the bottom left corner of the rig region.
Rig Region TR - controls the position of the top right corner of the rig region.
Luminance Correct - Switch this on to correct for luminance changes from information taken from
other frames. This is particularly important if the lighting changes throughout the sequence.
Overlap Correct - The repair is built up using slices of information from other frames in the
sequence. These slices can be overlapped and blended to give a more natural looking repair. This
parameter controls how much the regions overlap. Increasing this parameter too much will degrade
image sharpness.
Repair Fail Marker Opacity - Sets the level of transparency of the red pixels used to show where
the repair has failed.
Preserve Alpha - Switch this on to preserve the original alpha channel. By default, this is switched
off, and the alpha channel is set to white where the repair has failed and black everywhere else.
USER GUIDE
1809
Using F_Steadiness
This chapter looks at how to stabilize a shot using F_Steadiness.
Introduction
F_Steadiness uses Global Motion Estimation (GME) to calculate a four- corner pin, so that camera
motion within a single shot can be smoothed out over a range of frames or removed by locking to a
specific frame.
F_Steadiness needs to analyze the input clip before it can render useful output. This analysis is done
when you press Analyse in the F_Steadiness controls. During the analysis, F_Steadiness keyframes a
four-corner pin which will stabilize the clip in subsequent renders. Without having performed an
analysis pass, F_Steadiness will not do anything useful on render.
In lock mode, each frame in the clip must share a substantial amount of the scene with the lock
frame, so you can’t lock each frame in a 360 degree pan to the first one. However, in smooth mode,
because F_Steadiness is only working on a small window of frames around the current frame, you
can use it in shots which change completely over time.
The analysis region is used to control which section of the reference frame is being matched to each
source frame. In lock mode, the reference is the lock frame, so you should position the analysis
region when looking at the lock frame. In smooth mode, it looks at the incremental differences
between frames, in which case you should place the analysis region in the area you want to appear
with smooth motion.
The transformation in F_Steadiness is concatenated with other NukeX transform nodes. This means
that if you add a row of F_Steadiness and NukeX transform nodes to a tree, their functions are
combined. Because the image is only resampled once, there is no loss of image quality and
USER GUIDE
1810
Using F_Steadiness |
processing time is decreased. However, as in NukeX, certain nodes, including color correction nodes,
can break the concatenation.
For an overview of Global Motion Estimation, and a description of the common way Global Motion
Effects work, please see Global Motion Estimation.
USER GUIDE
1811
Quick Start | Smoothing Out Camera Motion
Quick Start
This section gives a very brief outline of how to use the plug-in.
Locking To A Frame
To completely remove camera motion from a sequence, do the following:
1. Find a shot that has camera shake but where all frames share scene information and select
Image > Read to load it.
2. Select FurnaceCore > F_Steadiness to apply F_Steadiness, and view its output.
You will see the following banner in the overlay:
No valid key framed analysis found, please press Analyse.
3. In the Advanced F_Steadiness controls, set Mode to Incremental Lock.
USER GUIDE
1812
Quick Start | Locking To A Frame
4. Choose a frame somewhere in the middle of the sequence that you want to lock to, and set the
Lock Frame parameter to that frame.
5. Scrub back and forth through the shot and look for a region of the shot that is shared by all
frames and doesn’t change much (for example, avoid a region with people walking in front of it).
6. Whilst looking at the lock frame, position the on-screen widget for the Analysis Region over that
region.
7. Hit Analyse.
The effect will start to analyze, working first forward from the lock frame, then backwards from it,
until all frames to be analyzed are done.
The timeline will immediately update to give you feedback in the viewer.
USER GUIDE
1813
Parameters | Locking To A Frame
Parameters
The parameters for this plug-in are described below.
Analyse - This is a push button which will trigger an analysis of the input clip and calculate a corner
pin. Interrupting the analysis will not delete the corner pin keys that have already been calculated.
Render During Analysis - If set, this toggle will cause the effect to update the time line and render a
freshly analyzed frame so you can see the progress of the effect. Doing so will slow down the analysis
somewhat, so toggle this off to speed up the general analysis.
Clear Analysis - Pressing this push button will delete all key frames from the corner pin parameters,
allowing you to force a re-analysis if you feel the need to.
Analysis Range - This controls the range of frames any analysis will be run over. It can be one of:
• Specified Range - which will look at the parameters Analysis Start and Analysis Stop for the range
of frames to analyze,
• Source Clip Range - which will automatically determine the range of frames to analyze from the
length of the input clip.
Analysis Start - The first frame to analyze from if Analysis Range is set to Specified Range.
Analysis Stop - The last frame to analyze from if Analysis Range is set to Specified Range.
Scale - A toggle that indicates whether the calculated corner pin can include a scaling factor.
Rotate - A toggle that indicates whether the calculated corner pin can include rotations.
Translate - A toggle that indicates whether the calculated corner pin can include translations in x and
y.
Perspective - A toggle that indicates whether the calculated corner pin can include perspective
transforms.
Analysis Region - This is the region analyzed to calculate the four-corner pin. This is especially useful
when doing any form of frame locking, in which case, go to the lock frame, look at the reference clip
and position the box over the area you want locked.
Analysis Region BL - controls the position of the bottom left corner of the analysis region.
Analysis Region TR - controls the position of the top right corner of the analysis region.
USER GUIDE
1814
Parameters | Locking To A Frame
Mode - This parameter controls whether F_Steadiness is smoothing the shot while keeping the
overall camera motion, or locking the shot to a single frame to completely remove camera motion. It
can be set to:
• Incremental Lock - in which case, it will calculate the pin that takes each frame to the lock frame.
This calculates the pin by working from the lock frame out to each frame, calculating the GME
between each frame incrementally and accumulating it to create the corner pin.
• Absolute Lock - this also calculates a pin that takes each frame to the lock frame. However, it does
so by doing GME directly from the frame in question directly to the lock frame.
• Smooth - in which case, we are smoothing the shot for a range of frames described by the
Smoothing parameter. This is the default value. It can be used to keep the overall camera motion,
but to smooth out sharp bumps and kicks.
Incremental locks work better in some situations, whilst absolute locks work better in others.
However, absolute locks, when they work, are often more accurate. If, for example, you want to get a
lock between frame 0 and frame 100, try using absolute lock first. If absolute lock doesn't work, it can
be because frame 0 and frame 100 are too different. In this case, incremental lock can help if there is
a gradual spatial progression from frame 0 to frame 100.
Smoothing - This controls the range of frames to average motion over when Mode is set to Smooth.
The default value is 10.
Lock Frame - This controls the frame which will be locked to when Mode is set to either of the lock
modes. By default, this is set to 0. Note that what is frame 0 for F_Steadiness is frame 1 in NukeX.
Therefore, if you are looking at frame 3 in the Viewer and want to use that frame as the lock frame,
you need to enter 2 as the Lock Frame value.
Accuracy - This controls the time/accuracy trade off. The higher this is, the slower the analysis, but
you have a better likelihood of a good result.
Invert - If set, then the inverse of the calculated four-corner pin is used during render. This works
best with the lock modes, and can be used to track static locked-off plates back into a shot.
Auto Scale - To smooth out or remove camera motion, F_Steadiness translates and rotates the
frames in the source clip. This leaves black pixels around the image. The Auto Scale parameter lets
you fill in the black gaps at the edges by scaling the output image up. A value of 1 (the default) scales
the image up until no black is visible, whereas a value of 0 disables scaling and leaves the black edges
USER GUIDE
1815
Parameters | Locking To A Frame
untouched. Auto Scale uses the minimum scale necessary to remove the black gaps at the edges to
preserve as much detail as possible.
USER GUIDE
1816
Using the BlinkScript Node
The BlinkScript node runs Foundry's Blink framework enabling you to write your code once and run it
on any supported device. This is achieved through code translation, in which the Blink code is turned
into specific code for each target device. Code is generated and compiled on-the-fly, allowing you to
switch between devices at will.
About BlinkScript
BlinkScript runs a Blink "kernel" over every pixel in the output, where a Blink kernel is similar to a C++
class, but with some special parameter types and functions. Through translation, the code in the
BlinkScript node can be turned into normal C++ or SIMD code for the CPU, or OpenCL for the GPU.
The Blink framework streamlines plug-in development workflow significantly, as you no longer have
to exit Nuke to compile your code.
Note: GPU acceleration requires an NVIDIA GPU and drivers for CUDA 4.2 or above. To use
the GPU when rendering from the command line, add --gpu to your command.
If your computer enters sleep mode, the CUDA drivers cannot recover and you must restart
Nuke to use GPU acceleration.
Note: Nuke supports AMD GPUs on late 2013 Mac Pro 6,1 and mid 2015 Mac Pro 11,5,
running OS X 10.9.3 'Mavericks', or later.
You can publish kernels in Group nodes which can then be saved as gizmos, if required. Published
kernels can be encoded to protect your IP using BlinkScript's built-in kernel protection. Protected
kernels are not readable when the published node is saved to a script.
Warning: BlinkScript is very flexible, as there are no restrictions on the code you can write
within a kernel. As a result, code compiled from the Kernel Source can cause Nuke to crash,
so please use caution!
USER GUIDE
1817
Using the BlinkScript Node |
For more information, see Nuke's Help menu under Documentation > Guide to Writing Blink
Kernels or navigate to https://learn.foundry.com/nuke/developers/110/BlinkKernels/.
USER GUIDE
1818
Quick Start |
Quick Start
To get started with BlinkScript:
1. Connect the BlinkScript node to your sequence or image. See Connecting the BlinkScript Node for
more information.
2. Edit the default InvertKernel, load an example kernel, or write your own from scratch. See
Loading, Editing, and Saving Kernels for more information.
3. Set the standard Kernel Parameters, those that are present in all kernels, such as Use GPU if
available and format. See Setting Kernel Parameters for more information.
4. Set the available memory and height-per-tile limits to control performance. See Changing
Performance Settings for more information.
5. Publish your kernel and create a gizmo, if required. See Publishing and Protecting Your Kernels
for more information.
USER GUIDE
1819
Connecting the BlinkScript Node |
Note: BlinkScript supports as many inputs as you create in your kernel, but the default
InvertKernel only has a src input.
USER GUIDE
1820
Loading, Editing, and Saving Kernels | Loading Kernels
Note: Loading, editing, and saving kernels is only available if you have a NukeX license.
Loading Kernels
1. Enter the file-path in the Kernel File field or click the folder icon to browse to the kernel's
location.
2. Click Load.
The selected kernel is compiled and read into the Kernel Source field.
USER GUIDE
1821
Loading, Editing, and Saving Kernels | Editing Kernels
Editing Kernels
You can edit existing kernels or write your own from scratch by clicking Clear and entering code in
the Kernel Source field. Bear in mind that you won't see any results in the Viewer until you click
Recompile.
Tip: You can change how text in the Kernel Source appears using the controls in the
Preferences > Panels > Script Editor tab. After saving your preferences, close and then re-
open the Kernel Source in the Properties panel to apply the changes.
The first line in a kernel is always a declaration, similar to a C++ class and derived from
ImageComputationKernel, which describes a kernel used to produce an output image.
Note: BlinkScript in Nuke only works with ImageComputation kernels. It does not work with
reduction or rolling kernels. Reduction and rolling kernels can, however, be used in the Blink
API as part of an NDK plug-in written in C++.
Parameters for the kernel are declared in the param section, in the same way as you would declare
member variables in a C++ class. If your kernel doesn’t require any parameters, you can omit this
section.
When a kernel is compiled inside the BlinkScript node, controls are generated for each of the kernel’s
parameters and added to the Kernel Parameters tab. In the case of InvertKernel, the node has just
one custom parameter, Multiply.
Kernel parameters can be C++ built-in types such as float or int. Vector and matrix parameters are
also supported. The following table contains the control types that the Kernel Source can expose on
the Kernel Parameters tab in the properties panel.
USER GUIDE
1822
Loading, Editing, and Saving Kernels | Editing Kernels
Int_knob Parameters of type int generate an Int_knob with a single numeric input box.
Right-clicking in the input box displays a menu allowing you to animate the
value.
MultiInt_knob Parameters of type int2, int3, int4, or int[ ] generate a MultiInt_knob, with
multiple numeric input boxes. As with the Int_knob, right-clicking in the input
boxes displays a menu allowing you to animate the values.
Float_knob Parameters of type float generate a Float_knob with a numeric input box, linear
slider, and animation menu button. The slider ranges from 0 to twice the default
value of the parameter, or 0 to 1 if no default value is set.
XY_knob Parameters with two floating-point values, types float2 or float[2], are
interpreted as positions in 2D space and generate an XY_knob with an adjustable
handle in the Viewer.
XYZ_knob Parameters with three floating-point values, types float3 or float[3], are
interpreted as positions in 3D space and generate an XYZ_knob with an
adjustable handle in the 3D Viewer.
AColor_knob Parameters with four floating-point values, type float4 or float[4], are interpreted
as colors with alpha, and generate an AColor_knob. This initially displays a single
entry box and slider, a button to split to four entry boxes, a button to display the
Nuke color wheel, and a swatch showing the current color with an eyedropper
for sampling in the Viewer.
Array_knob Parameters with nine floating-point values, including float3x3, are displayed as
an Array_knob with a 3x3 grid. Parameters with sixteen floating-point values,
including float4x4, are displayed as an Array_knob with a 4x4 grid.
MultiFloat_knob Parameters with numbers of floating-point values not already listed above, such
as float[5], generate a MultiFloat_knob with a numerical entry box for each
value, a single linear slider, and an animation menu button. The slider ranges
from 0 to 1.
The rest of the kernel is up to you, within certain guidelines listed in Nuke's Help menu under
Documentation > Guide to Writing Blink Kernels or at
https://learn.foundry.com/nuke/developers/110/BlinkKernels/. There are also several example kernels
to get you started.
USER GUIDE
1823
Loading, Editing, and Saving Kernels | Saving Kernels
Saving Kernels
1. Enter the file path in the Kernel File field or click the folder icon to browse to the intended
location.
2. Click Save.
The selected kernel is saved to the specified location. There is no compile step during saving as
the kernel is compiled when loaded.
USER GUIDE
1824
Setting Kernel Parameters | GPU or CPU?
The Kernel Parameters tab also contains any controls exposed by specific kernel commands. For
example, the default InvertKernel exposes the Multiply control. See Editing Kernels for more
information on exposing controls.
The Publish button also resides on the Kernel Parameters tab, but we'll get into that in more detail
in Publishing and Protecting Your Kernels.
GPU or CPU?
The read-only Local GPU field displays the graphics card installed locally, if there is one available. You
can toggle the GPU on and off using the Use GPU if available control. If you have multiple GPUs
available, select the required device using the Preferences > Performance > Hardware > default
blink device dropdown.
Note: Selecting a different GPU requires you to restart Nuke before the change takes effect.
Tip: Even if there is no GPU available locally, you can still enable Use GPU if available.
BlinkScript then uses the GPU as and when one becomes available.
You should also enable this if you wish to render from the command line with the --gpu
option.
Nuke's GPU support includes an Enable multi-GPU support option. When enabled in the
preferences, GPU processing is shared between the available GPUs for extra processing speed. See
Windows, Mac OS X and macOS, or Linux for more information on the GPUs Nuke supports.
Additionally, enable Vectorize on CPU to use SIMD acceleration on the CPU where possible. See Help
> Documentation for more information on kernel execution.
USER GUIDE
1825
Setting Kernel Parameters | Specifying the Output Format
Tip: Enabling Specify output format also adds the format control to the kernel once it has
been published. See Publishing and Protecting Your Kernels for more information.
Higher values than the default 50% can improve render times, but may introduce errors if the GPU
is in use by other tasks.
• Percentage of image height per tile - processing is done in tiles, where each tile is the full width of
the image. Adjusting the percentage of the image height processed in any one tile can affect
performance.
Higher values generally improve performance, providing that there is enough GPU memory
available for processing large tiles, whereas lower values produce faster feedback to the Viewer.
USER GUIDE
1826
Publishing and Protecting Your Kernels | Changing Performance Settings
Blink kernels can also be encoded using the built-in kernel protection. Protected kernels are not
readable when the published node is saved to a script.
Note: Kernel protection offers a fairly low level of security and might not be sufficient to
protect valuable source code.
Certain BlinkScript functions are only available with a NukeX license. The following table describes the
various levels of access for the Nuke family.
Feature
Nuke
Assist
Nuke
NukeX
Nuke
Studio
To publish a kernel:
1. Double-click the BlinkScript node to open the properties panel and click the Kernel Parameters
tab.
2. If you intend to encode your kernel, enable Protect kernel.
In a Nuke script, protected kernels appear as shown in the example below.
USER GUIDE
1827
Publishing and Protecting Your Kernels | Changing Performance Settings
3. Click Publish.
Nuke creates a Group node using the name of the kernel as a label. For example, using the
WipeKernel supplied in the documentation produces the following expanded group.
If you want to save the group as a gizmo, go to the group's properties panel Node tab and then
click export as gizmo. See Creating and Accessing Gizmos for more information.
USER GUIDE
1828
Limitations and Known Issues | RGBA Only
RGBA Only
Processing is currently limited to the RGBA channels only. To work with other channels, use a Shuffle
node to shuffle them into RGBA before connecting to the BlinkScript node.
GPU
Complicated kernels can cause driver timeouts on the GPU if they take too long to execute. The lower
the specification of your GPU, the more likely this is to happen.
Nuke supports AMD GPUs on late 2013 Mac Pro 6,1, mid 2015 MacBook Pro 11,5, and later 2016
MacBook Pro 13,3, running OS X 10.9.3 'Mavericks', or later While, in some cases the bit-wise equality
between GPU and CPU holds, for some operations there are limitations to the accuracy possible with
this configuration.
Known Issues
The following known issues exist in BlinkScript's current form:
USER GUIDE
1829
Written Tutorials
Welcome to the written tutorials!
Introduction
If you’ve gone through the Getting Started section - which we highly recommend - you already know
something about Nuke. These tutorials show how to pull everything together through a series of
practical examples.
You can also go through these tutorials using Nuke Non-commercial, but some features used in the
tutorials may be disabled in the non-commercial version. For more information, see About Nuke
Non-commercial.
USER GUIDE
1830
The Projects
These tutorials include the following projects:
• Tutorial 1: Compositing Basics explains the Nuke user interface, project workflow, and basic
compositing tasks.
• Tutorial 2: 2D Point Tracking demonstrates how to track image patterns, stabilize footage, lock
down images for clean plates, and match-move.
• Tutorial 3: Keying and Mattes shows you how to pull mattes with standard keying tools and Nuke's
own image-based keyer.
• Tutorial 4: 3D Integration shows how you can use Nuke's 3D workspace to help your 2D
compositing.
USER GUIDE
1831
Installing the Project Files | To Create the Tutorial Directory (Windows)
Tip: If you’re using a Mac or Linux system, log in under administrator privileges to avoid
issues with permissions when installing the files.
USER GUIDE
1832
Tutorial 1: Compositing Basics
Hello! This tutorial is your introduction to Nuke, where you’ll create a simple composite and breeze
through most of the windows, on-screen controls, and other user interface items.
Introduction
We’ve heard rumors that many people would rather march through icy rain than review an
introductory tutorial on digital compositing. Certainly, that’s not you. When you finish this lesson
you’ll have a good understanding of the Nuke workflow and should feel confident about approaching
the other tutorials.
Before you get into the project, we have some administrative things to do - such as defining a few
application preferences and project settings. We know this sort of thing is not terribly exciting, but it
is terribly important, so please be patient and we’ll get through it as quickly as possible.
Note: If you haven’t already downloaded and moved the tutorial project files to the Nuke_
Tutorials directory you created, turn to Installing the Project Files for instructions.
USER GUIDE
1833
Starting Nuke | To Launch Under Windows
Starting Nuke
The Nuke icon may appear on your desktop. If so, double-click it to launch the application. Otherwise,
start Nuke with one of the methods described below, assuming you have installed Nuke to the default
location.
Tip: If you’re operating under Linux, you can also launch Nuke from the command line of a
terminal. Simply navigate to the Nuke directory and enter the name of the Nuke application.
A clean copy of the main Nuke window appears. Divider lines organize the window into different
panes. Each pane has one or more pages of content, separated by tabs at the top of the pane. The
Toolbar appears at the left edge of the main window.
USER GUIDE
1834
Starting Nuke | To Launch Under Linux
By default, the panes are setup to display the Viewer, the Node Graph/Curve Editor, and Properties.
You’ll create the script for this project inside the Node Graph page on the Node Graph/Curve Editor
pane. We’ll talk about each of these on-screen controls when you need them for the project.
USER GUIDE
1835
Using the Toolbar | To Launch Under Linux
USER GUIDE
1836
Using the Menus | To Launch Under Linux
The “right-click” menu is highly contextual. Its options change according to the location of the mouse
pointer. Right-click over the Node Graph, for example, and you’ll see the options from the menu bar
and the nodes you can insert from the Toolbar. Right-click over the Viewer pane and you’ll see a
menu of Viewer options.
USER GUIDE
1837
Using the Menus | To Launch Under Linux
Try the right-click menu when you can’t find appropriate controls or menu options. Many features are
hidden in the menu until you’re in the situation where you need to use them.
Note: Nuke’s menu bar, at the top of the screen, is organized a little differently between the
operating systems, but the right-click menu contains the same options, regardless of the
system you’re using to run Nuke.
USER GUIDE
1838
Customizing Your Workspace | To Launch Under Linux
Resizing a pane.
• To divide a pane, click on the content menu (the checkered box at the upper-left corner of each
pane), and choose Split Vertical or Split Horizontal.
Splitting a pane.
• To discard a pane, click on the content menu and choose Close Pane.
Closing a pane.
• To add a new tabbed page to a pane, click on the content menu and choose one of content options,
such as New Viewer or Curve Editor.
• Click on the “x” inside a tab to discard a tabbed page.
USER GUIDE
1839
Customizing Your Workspace | To Launch Under Linux
Closing a tab.
• To move a tabbed page, drag the tab to another pane inside the main window.
• To tear-off a page as a floating window, drag the tab outside the borders of the main window, or
simply Ctrl+click (Mac users Cmd+click) on the tab name.
• Drag a floating window into a pane, inside the main window, to convert it to a tabbed page.
• From the menu bar, choose Workspace > Save Workspace to save the current layout. Choose
Workspace > Restore Workspace x to apply a previously-saved layout.
USER GUIDE
1840
Saving Files and File Backup | Defining File/Saving Options
3. Click Save Prefs to keep the changes and then Close to return to the main window.
If you close this dialog box without clicking the Save button, then the changes affect only the
current session of Nuke.
USER GUIDE
1841
Saving Files and File Backup | Recovering Back-Up Files
Tip: The .autosave files can still be useful, even when you properly exit Nuke, because they
are not deleted from the directory. You can, for example, rename an .autosave file to create
an archive of the previous version of your project file.
Sometimes you may see the recovery message even though you have not experienced a system
failure. This happens when you exit Nuke without saving the changes to a project file, and Nuke
recognizes that the time stamp on the .autosave file is later than the Nuke project file you’re trying to
open. In this case, you decide which version of the project file you want to open.
USER GUIDE
1842
Setting Up the Project | To Set Up Your Project
USER GUIDE
1843
Setting Up the Project | To Set Up Your Project
2. In the frame range fields, enter a range of 1 to 28. This is the length of the shot we create for the
project.
3. Enter 24 as the frames per second (fps).
4. Click the full size format dropdown menu and choose PC_Video 640 x 480.
5. Close the Project Settings control panel.
Note: On the Project Settings control panel, the Color tab includes options that ensure
color integrity for your display and output devices. You don’t need to change the LUT for
these tutorials, but we recommend that you research and set these options for your own
projects.
Until now, everything you’ve done is standard procedure for a new project. You used the menu bar to
access several features during the setup process, and now you’ll use the Nuke toolbar to insert nodes
and create a compositing tree.
USER GUIDE
1844
Working with Nodes | Inserting Nodes
Inserting Nodes
To insert nodes:
1. On the Toolbar, click the first icon to display a menu for nodes that are in the Images category.
2. Select Constant from the menu to insert this node into the Node Graph pane.
When you insert a new node, its control panel also displays with parameters that let you define
what the node produces. In this case, the Constant node creates a solid color backdrop.
3. In the Constant control panel, click on the color wheel to open the Color Picker.
USER GUIDE
1845
Working with Nodes | Inserting Nodes
4. Drag the color sliders and the cursor inside the wheel to choose a light color, something
appropriate for the “horizon” of the composite background. Then, close the color wheel window.
At this point, you should probably rename “Constant” to something more descriptive.
5. Inside the control panel, click on the Constant name. You can now edit the name, so type
Background and press Enter.
From here onward, we’ll call this node the “Background” node.
6. Close the control panel for the Background node. When you need to reopen it, just double-click
the node and the control panel reappears.
7. Click on the Background node to select it. Then, click the right mouse button and choose Draw >
Ramp.
USER GUIDE
1846
Working with Nodes | Inserting Nodes
8. Drag the tail of the arrow from the Viewer1 node to the center of the Ramp1 node. You’ll see the
output of the Background node and the ramp controls displayed in the Viewer window.
9. Click the Color tab inside the control panel for Ramp1. Then choose a dark color that blends well
with the color you selected for the Background node.
10. Click the Ramp tab in the control panel to reactivate the overlay controls. Then, drag the p0 and
p1 control points to adjust the spread and angle of the ramp over the background.
USER GUIDE
1847
Working with Nodes | Inserting Nodes
11. When you’re happy with the results, close the Ramp1 control panel to remove the overlay.
USER GUIDE
1848
Connection Tips | Inserting Nodes
Connection Tips
Most nodes have input and output connectors that are used to establish the order in which the
operations are calculated.
Connectors on a node.
Try the following to connect nodes after you insert them into the Node Graph:
• Drag an input or an output connector onto another node to establish a connection.
• Select a node, press the Shift key and select a second node. Then press Y to connect the first node
to the output of the second node.
USER GUIDE
1849
Connection Tips | Inserting Nodes
• Select a node, press the Shift key and select a second node. Then press Shift+Y to connect the
second node to the output of the first node.
• Select a node and press Ctrl/Cmd+Shift+X to extract the selected node from the tree.
• For nodes that have two inputs, select the node and press Shift+X to swap the A/B inputs.
USER GUIDE
1850
Connection Tips | Inserting Nodes
• Drag the mask connector to the node that provides the image you want to use as the mask for the
selected node.
USER GUIDE
1851
Importing Image Sequences | To Read the Images
Tip: Pressing R with an existing Read node selected, opens the file browser at the location
specified by that node.
A file browser appears. This is where you select the image file you want to import. When you
browse through your directories from this window, Nuke displays sequentially-numbered files as
one item in the directory.
3. Browse to the Nuke_Tutorials/CompBasics/ directory.
4. Add a bookmark to this directory. Right-click over the list, on the left side of the file browser
window, and choose Add from the menu.
USER GUIDE
1852
Importing Image Sequences | To Read the Images
5. Type a name for the bookmark or keep the default, which is the directory name. Then click OK.
6. Open the engine_rgba directory, select the engine.v01.####.exr image sequence, and click
Open.
Nuke retrieves the image sequence and displays it as a thumbnail on the node. The Read control
panel displays the resolution and the frame range for the image.
Note: Nuke reads images from their native format, but the Read node outputs the result
using a linear color space. If necessary, you can change the Colorspace option in the Read
node’s control panel, or insert a Color > Colorspace node to select the color scheme you
want to output or calculate.
7. Drag a marquee (hold down the left mouse button while dragging) around the Background and
Ramp nodes to select them. Then drag them to the right to make room for additional nodes.
USER GUIDE
1853
Importing Image Sequences | To Read the Images
8. Choose Image > Read from the right-click menu to import another image sequence. Use the file
browser to select the image sequence stored in Nuke_Tutorials/CompBasics/smoke_
left.wh/smoke_left.####.rgba.
9. Add one more Read node and retrieve the image sequence stored in Nuke_
Tutorials/CompBasics/smoke_right.wh/smoke_right.####.rgba
10. Arrange the nodes, as shown above, to allow some room to create the connections for the node
tree.
USER GUIDE
1854
Navigating Inside the Windows | Panning Your View
As you drag the mouse, you pan your view of the Node Graph.
Drag to the right and you’ll zoom-in. Drag to the left and you’ll zoom-out.
• Keyboard zoom-in/out. Tap the plus (+) key to zoom-in. Tap the minus key (-) to zoom-out.
USER GUIDE
1855
Navigating Inside the Windows | Framing the View in the Window
The navigation controls for the Node Graph also work inside the next window on our agenda, the
Viewer.
USER GUIDE
1856
Working with Viewers | Framing the View in the Window
You can open several Viewers at once. In addition, you have up to 10 pages, or buffers, for each
Viewer window; these allow you to toggle between different views along the node tree.
When you start Nuke, you see a default Viewer node in the Node Graph. You can easily drag the
connection arrow from a node onto the Viewer to display the node’s output. You can open additional
Viewers by choosing Viewer > Create New Viewer from the menu bar or by pressing Ctrl+I.
USER GUIDE
1857
Displaying the Images in a Viewer Window | Framing the View in the Window
Here’s an alternate method: Select the engine.v01 clip node and then press 1 to connect to the
Viewer node. Nuke displays the node’s output in the Viewer window.
2. Press the Alt key (Mac users press Option) and the left mouse button, and drag the mouse
pointer across the Viewer window to pan.
3. Press Alt (Mac users press Option) and the middle mouse button, and drag to zoom in/out. You
can also use the “zoom” dropdown menu at the top of the Viewer to magnify the view.
4. Press F to fit the current image into the borders of the Viewer window.
USER GUIDE
1858
Displaying the Images in a Viewer Window | Framing the View in the Window
This image has different channels of information you can view. The “RGB” label appears at the top
because the Viewer now shows the result of the red, green, and blue channels.
5. To view individual color channels, press R (red), G (green), B (blue) or A (alpha). As you press each
keyboard shortcut, the label at the top of the Viewer reflects the displayed channel.
6. Press one of the channel keyboard shortcuts again to return to the “RGB” display, or choose RGB
from the Viewer’s channel dropdown menu.
In addition to the standard color channels for red, green, blue, and alpha, this image also includes
channels for specular highlights, reflections, and other masks.
7. To view additional channels, press A to display the alpha channel, and then select the
lightingpasses.reflection channel from the Viewer channel dropdown menu.
You now see the reflection mask from the image file.
8. Select rgba.alpha from the Viewer channel dropdown menu to reset this as the preferred channel
when you press the A key.
9. Press A again to toggle the display and show all color channels.
USER GUIDE
1859
Viewing Multiple Inputs | Framing the View in the Window
4. Move the mouse pointer over the Viewer and press the numbers on your keyboard to display
each of the connected nodes.
As you switch between the different views, the images may appear to be the same size. However,
if you look in the lower-right corner of the Viewer, you’ll see the images have different resolutions.
USER GUIDE
1860
Viewing Multiple Inputs | Framing the View in the Window
Nuke allows multiple resolutions in one composite, but you need to conform these images to match
the project resolution. This allows the elements to be properly aligned in the composite.
USER GUIDE
1861
Reformatting Images | To Conform Images to the Project Format
Reformatting Images
Elements created within the Nuke script, such as Background and Ramp, automatically inherit the
global format and that’s how you want it for this project. The imported images, however, do not
conform to the project settings and must be reformatted.
If you change the delivery format in the project settings, then all elements set to “root.format” also
change to the new project settings. If you neglect to reformat images when you read them into the
project, the images retain their original format, independent of the project settings.
USER GUIDE
1862
Using Proxies and “Down-res” | To Activate Proxy Mode
Nuke can generate proxies on-the-fly, according to the scale or format of your images. You select the
method under Edit > Project Settings.
To toggle the proxy resolution defined under Project Settings, you use the “proxy” button on your
Viewer. Alternatively, you use the “down-res” button to lower the display resolution of individual
Viewers. The down-res button works both in the full-res and proxy mode.
To Activate “Down-Res”
1. Choose 1:4 from the “down-res” dropdown menu to change the display resolution to 25% of full
resolution.
With a reduced resolution, Nuke requires less time to calculate and display your images.
2. Change the “down-res” setting back to 1:1, which is 100% of the active resolution.
USER GUIDE
1863
Using Proxies and “Down-res” | To Activate “Down-Res”
If you turned off proxy mode, you should be back to full resolution. If proxy mode is turned on,
the display resolution is 100% of the proxy.
USER GUIDE
1864
Compositing Images | To Composite Two Nodes
Compositing Images
The Merge nodes create a composite with two or more images, using various compositing
algorithms. In this example, we’ll do a very simple “A over B” composite to layer the foreground image
over the background.
You can insert a compositing node from the Toolbar or menus, but we’ll show you a keyboard
shortcut that bypasses both of these. The trick is the select both nodes you want to composite and
then press a keyboard shortcut to assign a compositing node.
In the Merge node control panel, the operation parameter determines the compositing algorithm
used to generate the result of the two inputs - the selected operation becomes the name of the
node in the Node Graph.
4. Rearrange the nodes, so that the node tree looks similar to this:
USER GUIDE
1865
Compositing Images | To Composite Two Nodes
5. For the next layer, select the Reformat3 node, attached to smoke_right. Then hold down the
Shift key and select Ramp1.
6. Press M to insert a Merge node and composite one image over the other. This composites the
“smoke_right” image over the background.
7. The default compositing algorithm, “Over,” isn’t what we need here. In the Merge2 control panel,
click on the operation dropdown menu and select screen.
8. In the Merge2 properties panel, drag the mix slider and change its value to 0.30 to reduce the
amount of the image supplied by the A input.
9. An additional Merge node is required. Select Reformat2 for smoke_left. Hold down the Shift key
and select the Over node (the first Merge node you inserted).
USER GUIDE
1866
Compositing Images | To Composite Two Nodes
10. Press M to composite the two nodes. In the Merge3 control panel, change the mix slider to 0.75.
The result of your composite should look similar to the example below.
USER GUIDE
1867
Color-Correcting Images | To Composite Two Nodes
Color-Correcting Images
Color-correction and filters can help you integrate the elements for a better composite. In our
example, you want to limit the correction to the foreground element only, so you’ll insert a color
correction node before the Merge nodes.
1. Select the Reformat1 node. Then, right-click over the Node Graph and choose Color > Exposure.
This inserts the Exposure1 node.
2. Suppose you want to adjust the value of the red color channel. Move the mouse pointer over the
Viewer window and press R to display the red channel.
3. In the Exposure1 control panel, uncheck the box for gang sliders. This allows you to adjust
individual color channels.
4. Drag the red slider to adjust the color values. When you are finished, press R over the Viewer to
display all channels.
The Exposure node worked as expected, but the result is less than spectacular. The color change
is too uniform. If only there were a way to limit - or, in fact, mask - the color correction, perhaps
we’d see a better composite. Hmm...
USER GUIDE
1868
Masking Effects | To Create and Apply a Bezier Mask
Masking Effects
You can apply masks to limit how each of these nodes affects the images. The following shows how to
create a Bezier mask to limit color-correction.
4. To refine the shape, click on a point to select it and then drag to adjust its position.
5. To create sharp corners, select a point, right-click and choose Cusp.
6. To add points to the shape, simply select the Add Points tool and click on the shape’s outline.
7. When you’re satisfied with the shape, drag the mask connector from the Exposure1 node to the
output of the Roto node.
In the Exposure1 control panel, the mask channel option is now set to the rgba.alpha channel of
the node that is connected to the mask input. In this case, this is the alpha channel of the Roto
node.
USER GUIDE
1869
Creating Flipbook Previews | To Generate a Flipbook
The Flipbook feature provides better real-time preview, because it is prerendered for the Flipbook
viewer. Keep in mind that the Flipbook feature renders a preview that matches the active resolution; if
you’re in proxy mode, for example, that’s the resolution you’ll get in the flipbook.
Note: The Flipbook feature renders temporary files in the directory you specified for disk
cache under Nuke > Preferences. You’ll also find an option there that allows you to limit
the amount of disk space the flipbook feature uses.
To Generate a Flipbook
1. Select the Over node at the bottom of your node tree.
2. From the menu bar, choose Render > Flipbook selected.
3. Enter 1-28 as the number of frames to preview and click OK.
4. When the flipbook is ready to view, a Flipbook Viewer is launched. Click the Play button to view
the results.
5. Close the Flipbook Viewer to return to your project.
USER GUIDE
1870
Creating Flipbook Previews | Rendering Final Output
3. In the control panel for the Write node, click the file folder icon.
5. Click the “new folder” icon, in the upper-left corner of the browser, and type Rendered as the
name for the new folder. Click OK.
6. Select the folder you just created.
You should see the “Nuke_Tutorials/Rendered/” path name displayed at the bottom of the
browser.
7. At the end of the “Nuke_Tutorials/Rendered” path name, type first_comp.####.exr as the name
for the rendered image sequence, and then click Save.
8. Choose Render > Render All to render the images, or simply click the Render button inside the
Write control panel.
9. Nuke prompts you to specify the frames to render. Enter 1-28 as the frame range and click OK.
USER GUIDE
1871
Creating Flipbook Previews | Rendering Final Output
A status window appears that shows the progress of your render. When the render is complete, you’ll
find the sequential images in the “Nuke_Tutorials/Rendered” directory. To check the results, simply
insert a new Read node, point to the new image sequence, and then generate a flipbook with the
Read node selected.
So, in this case, you entered “first_comp.####.exr” but Nuke renders these files for frames 1 through
5: “first_comp.0001.exr,” “first_comp.0002.exr,” “first_comp.0003.exr,” “first_comp.0004.exr,” and
“first_comp.0005.exr.” You can change the number of hash marks in the variable - ##, ###, ##### - to
change the number of padded digits for the frame numbers.
An alternative way of marking frame numbers is the Printf (%0d) notation. In this case, the same
frame numbers would look like this: “first_comp.%04d.exr”. Instead of the number of hash marks,
with the printf notation you would change the number before d to adjust the number of padded
digits, for example “%03d” or “%05d”. You can choose which style you want to use by setting
sequence display mode option on the Appearance tab of the Preferences.
Image Formats
If you don’t specify a file format inside the Write node control panel, Nuke uses the format specified
by the file name extension you typed. For example, in this tutorial, you used the “.exr” extension to
tell Nuke to save the images as OpenEXR files.
It’s easy to toggle to proxy mode and then forget your images are rendered in the lower resolution.
Before you execute a render, it’s always a good idea to check which resolution is active. In the Viewer,
the label at the lower-right corner of your image indicates whether you are in full-res or proxy.
USER GUIDE
1872
Creating Flipbook Previews | Rendering Final Output
For example, rather than manage several elements for an animated character, you could combine the
character animation, the lighting passes, alpha channel, and a depth mask in one image sequence on
disk. This makes it easier to manage elements in the final composite and simplifies the artist’s
workflow.
To output all channels, change the Write node’s channels dropdown menu from rgb to all, select the
OpenEXR file format, and then execute the render. Currently the OpenEXR format (.exr) is the only file
format that supports unlimited channels.
USER GUIDE
1873
Epilogue | Rendering Final Output
Epilogue
In this tutorial, you set up a new project and created a simple composite. You learned how to use (or
at least, locate) practically every Nuke window and tool, and you rendered out the result of your
composite. You’re finished! Go home!
Well... there might be a few more things you want to know. After this tutorial, you should feel
comfortable with the Nuke user interface, so put on your explorer hat and review the other tutorials.
There’s no specific order from here, so look through the following pages until you find what interests
you.
USER GUIDE
1874
Tutorial 2: 2D Point Tracking
This tutorial teaches you how to use Nuke's Tracker node for tracking, stabilizing, and match-moving.
Introduction
Every filmmaker knows the challenges of putting together a vision. You may not have the money to
build post-apocalyptic Montreal, but you might have enough to create it in post. You may have
brilliant performances by your actors - but not together in the same shot. Fortunately, you can
composite the best takes. Your battle sequence with 5 A-list actors, 100,000 extras and 57 elephants,
comes back from the lab with scratches on the negative. You can fix it. You can. A savvy production
team knows how to leverage digital technology to make it possible, and Nuke’s tracking tools are
indispensable for these situations.
As you may know, tracking is the process of recording the location of features as they move through
the scene. The result is stored as 2D coordinates on the image plane. Once you have the tracking
data, you can use the movement to perform a variety of useful tasks, such as stabilizing the footage,
applying the movement to other elements in your composite, and improving the accuracy of roto
mattes.
An important aspect of the tracking process involves carefully reviewing your footage before you
attempt to track. Play through your sequences several times and look at the direction of movement
for the features you want to track. Note potential problems with motion blur, obscuring objects, or
frames where the features are hidden or move off screen.
USER GUIDE
1875
Tutorial 2: 2D Point Tracking |
Tip: Nuke can often compensate for problem footage, but tracking works best when you can
identify distinct features throughout the length of the shot.
USER GUIDE
1876
One-Point, Two-Point, Three-Point, Four |
Three tracks:
X, Y, Z-rotation, & scale.
• One-point tracking - Track one feature’s horizontal (x-axis) and vertical (y-axis) position, with little
or no perspective change on the image. You can apply this information to move other elements in
the composite or apply the inverse to stabilize the image.
• Two-point tracking - Track horizontal and vertical position for two features. The feature positions,
relative to each other, indicate whether the image is rotating clockwise or counter-clockwise (z-axis
rotation). In some cases, two tracking points are sufficient to calculate the scaling of the features as
well.
• Three-point tracking - Track horizontal and vertical position for three features. Provides all the
benefits of two-point tracking with an additional set of tracking data for more accuracy on z-rotation
and scaling.
USER GUIDE
1877
One-Point, Two-Point, Three-Point, Four |
• Multi-point tracking - Again, all the benefits of fewer tracks with additional sets of tracking data.
Three-point is usually sufficient for most 2D tracking needs, but multi-point makes it possible to
distort and match-move another element into the points of the features you track, for example,
using four tracks and a CornerPin2D node.
USER GUIDE
1878
Open the Tutorial Project File | To Open the Project File
The examples in this project file are grouped with colored boxes, called backdrops, and each contains
a node tree for the tutorial examples that follow.
Tip: Backdrops let you organize groups of nodes, like those shown in this project file. Select
Other > Backdrop from the Toolbar and drag the backdrop title bar to move it. Drag the
backdrop corner to resize it. Any nodes surrounded by the borders of the backdrop move
with the backdrop when you drag its title bar.
USER GUIDE
1879
Tracking a Single Feature | Setting a Tracking Anchor
USER GUIDE
1880
Tracking a Single Feature | Auto-Tracking vs. Keyframe Tracking
11. Click on the pattern box (inner box) of the tracking anchor, and adjust its size to contain the
feature.
12. Click the search area (outer box) of the tracking anchor, and adjust its size to enclose the amount
of space you think the feature may move between frames.
Large search areas require more calculation time, so keep it as small as possible. However, when
the search area is too small, the feature may move outside the box and you’ll lose the track. If you
aren’t sure how large to make the search area, go back and review the flipbook of your image.
Using Auto-Tracking
1. Enable show error on track paths by clicking the traffic light icon in the Viewer tools.
This color codes tracks showing their pattern matching error values, green for a good match
through to red for a poor match.
2. In the Tracker Properties panel, select the track you wish to calculate in the Tracks list.
3. Select the type of movement the track is intended to output: translation, rotation, or scaling. In
this simple example, you only need to select Translation.
USER GUIDE
1881
Tracking a Single Feature | Auto-Tracking vs. Keyframe Tracking
4. At the top of the Viewer, click the track forward button to generate the track.
If you only need a certain frame range, use the button and enter the required range.
When Tracker has finished, you’ll see the track curve with color-coded points along the curve.
Note: If tracking fails, try resizing the pattern or search boxes, as described in Setting a
Tracking Anchor and retracking.
5. Use the next frame and previous frame buttons on the timeline to step through the track to
verify its accuracy.
The track is fairly solid in this example. However, some images don’t track as easily as this one.
What are your options? You could retrack Using Keyframe Tracking as described below, or you
could edit your existing track in the Curve Editor, see Editing Track Data on page 1884.
USER GUIDE
1882
Tracking a Single Feature | Auto-Tracking vs. Keyframe Tracking
Note: Bear in mind that a red keyframe doesn’t necessarily mean that the tracking result is
poor, only that Tracker couldn’t reliably match the pattern from one keyframe to the next.
At each frame, a new keyframe window is added to the right of the zoom window. The keyframe
closest to the current playhead frame is highlighted in orange.
It’s a good idea to place more keyframes around areas of complexity or greater movement and
fewer on straight forward translation. Generally speaking, a greater number of keyframes
produces a better track, but at the expense of processing time.
4. When you’re satisfied with your keyframes, make sure your track is selected in the Tracks list and
then click to track all keyframes.
You can also force the selected tracks to recalculate between the two nearest keyframes by
clicking in the Viewer toolbar.
5. Use the next frame and previous frame buttons on the timeline to step through the track to
verify its accuracy.
Note: Bear in mind that a red keyframe doesn’t necessarily mean that the tracking result is
poor, only that Tracker couldn’t reliably match the pattern from one keyframe to the next.
USER GUIDE
1883
Tracking a Single Feature | Editing Track Data
3. Click the track_x and track_y items in the Curve Editor tree and you’ll see values recorded for
each of the parameters during the tracking process.
4. Select both curves by holding down the Shift key and clicking the track_x and track_y curves,
under tracks.1.
5. Press the F key to “frame” the curves in the Curve Editor.
• To adjust a value, select a point and drag it up or down.
• To change the frame for a particular point, select it, hold down the Ctrl key and drag the point
left or right.
6. Let’s assume you want to smooth a curve by applying a filter to the values. Draw a marquee - drag
while pressing the left mouse button - around a section of the curve to select multiple points.
USER GUIDE
1884
Tracking a Single Feature | Editing Track Data
7. Click the right mouse button to display a menu of Curve Editor options. Choose Edit > Filter and
enter 2 as the number of times to filter the key frames.
Nuke averages the location of each point based on the values of the surrounding points,
smoothing the curve.
8. Close the Curve Editor window and then play the result in the Viewer.
Those are the basics for tracking and editing the results for a single feature. In the next example,
we’ll make it a little harder - tracking a feature that moves out of view.
USER GUIDE
1885
Tracking Obscured Features | To Track a Feature That Moves off Screen
Note: This example uses auto-tracking, but the offsetting principle is the same for keyframe
tracking.
1. In the project workspace, locate the node tree Tracking Obscured Features.
2. Double-click the Tracker2 node to open its control panel. This node tracks one of the chimneys in
the clip you used from the previous example.
3. Attach a Viewer to the Tracker2 node and scrub the timeline until you see the tracked feature
move out of frame.
As you can see, track1 accurately tracks its feature through most of the clip - until it moves off the
screen at frame 44. This is where the problem starts.
4. Press the plus key (+) on your keyboard a few times to zoom in on the Viewer.
Examine the sequence to find an alternate feature that stays in view during the length of the clip.
5. At frame 44, press the Ctrl/Cmd key and drag the track1 anchor to the first chimney on the right
of the building.
USER GUIDE
1886
Tracking Obscured Features | To Track a Feature That Moves off Screen
A line connects the new feature to the original feature indicating the offset, and the Tracks list is
updated to show the x and y offset values.
6. In the Tracker control panel, press the button to continue the off screen track using the
offset feature.
How is this useful? Well, now you can use the track data to matchmove an element - a trail of
chimney smoke, for example - that locks to the feature even after it moves off the screen.
7. The track is now complete, so you can clear the offset by clicking in the Viewer tools.
8. Deselect track 1 in the Tracks list to prevent it from being recalculated.
9. Before you continue, close all Tracker control panels that are currently open.
The offset doesn’t change the track location. Instead, it allows Nuke to continue the track with the
assumption that the offset feature remains at the same relative distance to the original feature. Later
in this chapter, you’ll see how to use this tracking data to composite another element to match the
background plate.
USER GUIDE
1887
Stabilizing Elements | To Track and Stabilize
Stabilizing Elements
Stabilization is the process of removing motion - camera-shake, for example - and locking down the
element for your composite. A one-point track provides enough information to stabilize horizontal
and vertical motion along the image plane. A two-point track lets you stabilize horizontal and vertical
motion, and remove rotation in the image, as well.
Note: This example uses auto-tracking, but the stabilizing principle is the same for
keyframe tracking.
USER GUIDE
1888
Stabilizing Elements | To Track and Stabilize
Now you have positional data for two tracks, and you can use this information to remove the
unwanted movement in the image.
9. In the Tracker3 Properties panel, click the Settings tab and open up the Auto-Tracking sub-menu.
10. Set the warp type to Translate/Rotate/Scale so that Tracker expects all three transforms.
Note: If you’re using keyframe tracks, there’s no need to set the warp type.
11. Click the Transform tab and choose stabilize from the transform list.
Note: When you’re tracking simple translation using a single track, you can use stabilize 1-
pt for faster calculation.
USER GUIDE
1889
Stabilizing Elements | To Track and Stabilize
As the clip plays, you’ll see the features remain locked to the same position within the
compositing frame.
Tip: After you track and stabilize footage, you can add a Transform > Transform node after
the Tracker3 node to adjust the position and the rotation of the stabilized image for a final
composite.
USER GUIDE
1890
Match-Moving Elements | To Match-Move an Element
Match-Moving Elements
Match-moving is the opposite of stabilization. The intent is to record and use the motion in an image
and apply it to another element. In the following example, you’ll use the tracker to match-move and
composite a mask image onto the performer in a background plate.
To Match-Move an Element
Note: This example uses auto-tracking, but the match-move principle is the same for
keyframe tracking.
3. Attach a Viewer to the new Tracker4 node, create a tracking anchor, and position the track 1
anchor over the performer’s right ear.
4. Adjust the size of the pattern box and the search area as shown.
5. In the Properties panel, check the boxes for T (translate), R (rotate) and S (scale) for track 1.
6. Adjust the size and position of the second tracking anchor, as shown below.
USER GUIDE
1891
Match-Moving Elements | To Match-Move an Element
7. Create another tracking anchor, track 2, and check the boxes for T (translate), R (rotate) and S
(scale) on this track.
8. Select both tracks in the Tracks list and click track forward at the top of the Viewer to generate
the tracks. Edit the tracks as described in Tracking a Single Feature if necessary.
9. Once you have two solid tracks on the performer, make a copy of the Tracker4 node by selecting it
and pressing Ctrl+C to copy it.
10. Select the Transform1 node and press Ctrl+V to paste the Tracker node copy (Tracker5).
11. Connect the Viewer to the Over node. Your node tree should now look similar to this:
12. In the Tracker5 Properties panel, click the Transform tab and choose match-move. Then close
the Tracker5 Properties panel.
13. Click play in the Viewer or render a flipbook and you should see the Mardi Gras mask transform
to match the movement of the performer.
If you see jitter in the movement, you can edit the track data in the Curve Editor to smooth out the
data. You can also add values to the smooth T, R, and S controls on the Transform tab to filter the
tracks.
USER GUIDE
1892
Epilogue | To Match-Move an Element
Epilogue
In this tutorial, you worked with several examples for the Tracker node. You learned how to record
the locations for multiple features and you applied the tracking data for other tasks in the composite,
such as stabilization and match-moving.
USER GUIDE
1893
Tutorial 3: Keying and Mattes
This tutorial introduces you to keying in Nuke. You will learn how to use the Primatte and IBK nodes.
Introduction
Keying is one of those fundamental compositing skills. You can’t composite anything until you have
mattes pulled for the elements you want to layer together. It’s nice to say you could just push a button
to complete this task, but as you probably know, one keying operation seldom produces an
acceptable matte. Image quality, lighting conditions, subject motion, colors - even camera moves -
affect the steps required to get a clean matte for your composite.
So how do you get a clean matte in Nuke? The best approach is to understand the strengths of each
keying tool and combine them as needed. This tutorial shows how to pull keys in Nuke and how to
layer the results with channel operations, merge nodes, and roto shapes.
USER GUIDE
1894
Open the Tutorial Project File | To Open the Project File
4. In the Tutorial_Path control panel, click the “file folder” button. Browse to the location where you
installed the tutorial project files, and then click Open to select the location.
After you select the correct path, the error messages should clear from the Read nodes, and the
thumbnails in the script update with the correct images.
5. Close the Tutorial_Path control panel. Then, choose File > Save Comp As to save a copy of the
project file.
6. Move the mouse pointer over the Node Graph, and press F to frame the entire contents of the
project file.
The green arrows (lines) show the links between the Tutorial_Path node and the Read nodes.
7. If you wish, press Alt+E to hide the expression arrows.
The Tutorial_Path node saves the location of the project files on your computer, so you don’t need
to repeat this for future sessions.
USER GUIDE
1895
Keying with Primatte | To Pull a Key with Primatte (Method 1)
The two examples in this section show how to pull a key with the Auto-Compute option (method 1),
and also how to manually sample a color from the screen background and build your key from there
(method 2).
3. Drag the bg connector from Primatte1 to the Reformat2 node, which supplies the background
image for this example. The fg connector should be attached to Reformat1.
4. Move the time slider to frame 50, and click the Auto-Compute button inside the Primatte1
control panel.
USER GUIDE
1896
Keying with Primatte | To Pull a Key with Primatte (Method 2)
That’s it. You’re done... well, nearly done. We need a “free-floating” goldfish, but the reflections in
the aquarium glass clearly indicate “captivity.”
A garbage matte easily removes the reflections, and you’ll learn how to do that later in the section
on rotoscoping. For now, let’s keep working with Primatte.
As you’ve seen, Primatte’s auto-compute option can quickly pull keys on certain images. However,
you should also know how to pull and tweak keys manually. You might, for example, need more
control over the transparency of the fins on the goldfish.
3. Scroll down through the Primatte options and set the keying operation to Select BG Color.
4. The current color chip should display the eyedropper icon. If it doesn’t, click on the color chip to
toggle the eyedropper.
5. Hold down the Ctrl+Shift keys (Mac users, hold down Command+Shift) and drag - or scrub - over
a portion of the greenscreen in the image displayed in the Viewer.
USER GUIDE
1897
Keying with Primatte | To Pull a Key with Primatte (Method 2)
This returns an average color-pick of the sampled pixels. If you want a color pick from a single
pixel, press Ctrl or Command and click once over the greenscreen. After you pick, you can clear
the red square by Ctrl- or Command-clicking again.
6. Press A over the Viewer to toggle to the alpha channel display. Looks like the aquarium is not as
clean as we thought. Our color pick gave us a fairly noisy key, so let’s clean it up.
Now you’ll sample a few areas of the image to “push” selected pixels to one of three areas: the
transparent matte, the opaque subject, or the semi-transparent part of the matte.
7. In the Primatte1 control panel, change the keying operation to Clean BG Noise.
8. Press Ctrl+Shift or Command+Shift and drag a small square over the dark area in the lower-right
corner of the image.
This second color sample cleans the background by “pushing” the selected pixels into the
transparent area of the matte. You probably need a few more samples to get a better key.
9. Scrub a few small areas in the background, focusing on the gray pixels until the matte improves.
USER GUIDE
1898
Keying with Primatte | To Pull a Key with Primatte (Method 2)
The background doesn’t need to be solid black. We’re just trying to get a good separation between
our foreground subject and the greenscreen background.
10. Change the keying operation to Clean FG Noise. This time, sample areas of gray pixels inside the
goldfish.
One or two small samples should be enough. The color pick pushes the selected pixels to the
opaque part of the matte.
You want to keep the gray pixels inside the fins to retain a semi-transparent matte in these areas.
If you go too far, you can always press the undo button in the control panel to step back to the
previous action.
11. Press A again over the Viewer to toggle to all color channels. Your image should look similar to
the example shown below. You may see some detail dropping out from the fins.
12. Change the keying operation to Restore Detail, and scrub over the fins to bring back some of
the edge detail.
USER GUIDE
1899
Keying with Primatte | To Pull a Key with Primatte (Method 2)
You may get different results than those shown here, depending on the pixel values you sample
from the image.
Use Restore Detail to push the selected pixels back toward the opaque part of the matte. Use the
Make FG Transparent operation to fine-tune the semi-transparent area.
You could go back and forth, between cleaning the background and foreground, but this usually
produces a matte with “crunchy” edges. The goal is to find the balance between foreground and
background that produces an acceptable matte for your subject.
Later in this chapter, you’ll use the rotoscoping tools to clean-up this matte and combine this with
the image from the next example.
USER GUIDE
1900
Image-Based Keying | To Pull a Key with IBK
Image-Based Keying
Many keying tools, like Primatte, use a color-pick as the baseline for the matte extraction process and
then require the artist to tweak the matte from that baseline. Nuke’s image-based keyer (IBK) uses the
pixel values of the compositing images, instead of a color-pick, to generate the best matte for the
image you want to extract. It works by generating a processed screen image that preserves the color
variations of the blue- or greenscreen and using this - rather than a single color - to pull the key. This
generally gives good results and speeds up the keying process when working with uneven blue- or
greenscreens.
Image-based keying requires two nodes in Nuke. First, you insert an IBKColour node to process the
screen image, which is preset to work with either greenscreen or bluescreen. This node generates the
processed screen image that preserves the color variations in your blue- or greenscreen. Then, you
insert an IBKGizmo node to generate the matte using the processed screen image, the original image,
and also the background image for the composite.
3. Click an empty spot in the Node Graph to deselect all nodes. Then, right-click and choose Keyer >
IBKGizmo.
4. From IBKGizmoV3_01 node, connect fg (foreground) to the Reformat3 node. Connect c (color
screen) to the IBKColourV3_1 node.
USER GUIDE
1901
Image-Based Keying | To Pull a Key with IBK
5. Connect bg from IBKGizmoV3_1 to the Reformat4 node, which supplies the background for the
comp.
6. Connect the Viewer to the IBKGizmoV3_1 node, and your node tree should look similar to this:
7. Open the control panel for IBKColourV3_1 and change the screen type to green.
8. Open the control panel for IBKGizmoV3_1, and change its screen type to C-green.
You should see an acceptable matte, shown in the screen capture below, on frame 50.
USER GUIDE
1902
Image-Based Keying | To Pull a Key with IBK
10. Choose Merge > Merge (or press M over the Node Graph) to insert a Merge (over) node.
11. Connect IBKGizmoV3_1 to the A input of the Merge (over) node. Then connect the B input to the
Reformat4 node.
The color of this greenscreen is completely out of the region of the acceptable industry standard,
but IBK does a good job anyway, by smoothing the screen and using the result to essentially
create a difference matte with the foreground.
Tip: IBK has presets for green and blue screens, but you can also do a color-pick for any
screen color inside the IBKGizmo node.
If you zoom-in on the image, you’ll see small areas near the subject’s hair, where the matte is
compromised.
USER GUIDE
1903
Image-Based Keying | To Pull a Key with IBK
12. Connect the Viewer to IBKColourV3_1 and you’ll see color artifacts around the edges of the matte.
When you look at the smoothed screen produced by IBKColour, you should see only values of
your screen color and black.
13. In the IBKColourV3_1 control panel, lower the darks, g (green) setting to -0.08. (If you were keying
a bluescreen image, you would lower the “b” value for “darks.”).
This fixes most of the problems at the hairline, but destroys the good key for the lower portion of
the image.
Tip: The artifacts in the IBKColour image appear as specific color shades: light green, dark
green, light red, dark red, light blue, and dark blue. To remove these, simply adjust the
appropriate controls for the artifacts you want to remove: lights/g, darks/g, lights/r, darks/r,
lights/b, and darks/b.
USER GUIDE
1904
Image-Based Keying | To Pull a Key with IBK
14. In IBKColourV3_1, raise the darks, g value to -0.03. Then change the lights, g value to 0.75. This
corrects the artifacts of the screen image.
15. Now, change the patch black setting to 1.5 to restore the edge detail of the hairline.
16. Connect the Viewer to the IBKGizmoV3_1 node. Press A and you’ll see the current alpha channel
produced by the IBK system.
The displayed alpha image shown is correct for the IBK. If the intensity of the noise in your alpha
channel is greater than the example show above, you may need to adjust - in very small
increments - the dark and light values for the color channels in the IBKColour node.
17. Press A again over the Viewer to toggle back to display all color channels, and scrub through the
timeline to check the matte at various points in the clip.
18. If you haven’t already done so, save your project under a new file name to save the changes you’ve
made to project.
USER GUIDE
1905
Rotoscoping | To Draw a Garbage Matte
Rotoscoping
In this example, we’ll return to our first keying example to apply a garbage matte and clean-up the
aquarium image.
3. At this point, you don’t need to connect the RotoPaint1 node to anything, but its control panel
must be open, and the first tab, RotoPaint, should be active.
4. Inside the Viewer, you’ll see the goldfish image. Click the Bezier tool in the RotoPaint toolbar
on the left side of the Viewer. Then in the Viewer, click four points around the goldfish to create a
roto shape. You can drag+click to draw a point and adjust its curve at the same time.
USER GUIDE
1906
Rotoscoping | To Draw a Garbage Matte
Tip: As long as the RotoPaint1 control panel is open, you can view and edit the roto shape.
You can press Q over the Viewer to toggle the display overlay, if necessary. Click the right
mouse button over any point to select options for the roto shape.
Because this is a garbage mask, we want to edit the shape to remove elements from the glass
aquarium.
5. Drag the points and adjust the tangents - the handles on each of the points - to refine the roto
shape.
Now we need to animate the garbage matte to follow the motion of the fish.
6. In the RotoPaint tool settings panel, on top of the Viewer, the autokey option should be active. If
not, click the box for this option.
7. Move the time slider to frame 1 and click the Transform tab in the RotoPaint control panel. Then
select the entire Bezier shape in the stroke/shape list (at the bottom of the control panel) or by
clicking one of the points in the shape using the SelectAll tool. A transform jack appears.
8. Drag the center point of the transform jack, and move it over the current position of the goldfish.
9. Go to end of the timeline, to frame 60. Drag the shape once more to adjust for the movement of
the goldfish.
USER GUIDE
1907
Rotoscoping | To Draw a Garbage Matte
If your Bezier shape is similar to the one shown above, then you probably don’t need more than
the three key frames at frames 1, 50, and 60.
However, you may want to scrub through the timeline and make adjustments.
10. Scrub to frame 60 on the timeline and you’ll see the roto gets a little close to corner-line that we
want to remove from the aquarium glass.
11. Click on an empty spot in the Viewer to deselect all points. Then, press Ctrl/Cmd and click on the
point near the goldfish’s nose, to temporarily break the point’s tangent handle.
12. Adjust the handles to create a peak at the fish’s nose.
Now, for good measure, let’s create a feathered edge for this particular point.
13. With the point selected, drag the feather handle away from the fish to create a feathered edge for
this point, at this frame.
So you’ve drawn and animated the roto shape. Let’s wire it into the node tree to mask out the
“garbage.”
14. Drag the bg connector off the Primatte1 node to disconnect it from the Reformat2 node.
15. Choose Merge > Merge from the right-click menu. Connect Primatte1 to the A input on the over
node. Connect Reformat2 to the B input.
USER GUIDE
1908
Rotoscoping | To Draw a Garbage Matte
16. Connect the RotoPaint1 node to the mask connector on the over node. This effectively removes
the aquarium reflections in the image.
You might want to scrub through the timeline to see if there are places where you need to adjust
the roto shape.
If you want to take this a little further, you can now add the goldfish to the composite from the
second example.
17. Select and drag the Merge (over) node and the RotoPaint1 node below the node tree you used
for the IBK example.
18. Drag the Viewer node over, as well, and keep it connected to the Merge (over) node.
19. Drag the B connector from the Reformat2 node and connect it to the over node in the IBK node
tree.
USER GUIDE
1909
Rotoscoping | To Draw a Garbage Matte
The Viewer shows the result. Of course, you might want to add a Transform node after the first
Merge (over) node, to size and position the goldfish. Otherwise, this project is completed.
USER GUIDE
1910
Epilogue | To Draw a Garbage Matte
Epilogue
Keying is rarely a simple matter of picking the screen color you want to remove. To get the very best
mattes, you often need to combine several techniques and you’ve learned several in this chapter.
You’ve pulled mattes with Primatte and Nuke’s Image-based Keyer, and you’ve used the rotoscoping
tools to cleanup a matte and control the parts of the image you want to use in the composite.
USER GUIDE
1911
Tutorial 4: 3D Integration
This tutorial teaches you the basics of using Nuke's 3D workspace.
Introduction
Nuke’s 3D workspace creates a powerful compositing environment within your project script. This
workspace combines the advantages of cameras, lighting, and a three-axis (x, y, and z) environment,
with the speed of node-based compositing. You pipe 2D images into the 3D space, setup a camera,
animate your scene, and then render the results back to the 2D composite.
USER GUIDE
1912
The Basic 3D System | The 3D Viewer
The 3D Viewer
Once you have the 3D node structure, you can use any Viewer in Nuke as a gateway to the 3D
compositing space. Choose 3D from the view dropdown menu, or press the Tab key over the Viewer
to toggle between the 2D and 3D views.
On the view dropdown menu, you’ll also see orthographic views - rtside, lfside, top, bottom, front,
back - which provide non-perspective views into the scene. In three-quarter perspective, it can be
difficult to accurately place objects on the axes, and the non-perspective views make it easier to line
things up.
USER GUIDE
1913
The Basic 3D System | The Geometry or Scene Node
Tip: Only one camera can be connected to the ScanlineRender node to generate the output,
but you can insert multiple ScanlineRender/Camera node pairs to generate output from
various perspectives.
USER GUIDE
1914
The Basic 3D System | The ScanlineRender Node
The image created by the ScanlineRender node is the same resolution as your project settings. When
you need to render a specific resolution, use the optional bg pipe. Connect a Constant node with the
resolution you want and that defines the output of the ScanlineRender node.
So now you know the basic 3D setup for your compositing script. Let’s take a test drive.
USER GUIDE
1915
Open the Tutorial Project File | To Open the Project File
4. Click the “file folder” button. Browse to the location where you installed the tutorial project files,
and then click Open to select the location.
After you select the correct path, the error messages should clear from the Read nodes, and the
thumbnails in the script update with the correct images.
5. Close the Tutorial_Path control panel. Then, choose File > Save Comp As to save a copy of the
project file.
6. Move the mouse pointer over the Node Graph, and press F to frame the entire contents of the
project file.
The green arrows (lines) show the links between the Tutorial_Path node and the Read nodes.
7. If you wish, press Alt+E to hide the expression arrows.
The Tutorial_Path node saves the location of the project files on your computer, so you don’t need to
repeat this for future sessions with this project file.
USER GUIDE
1916
Setting Up a 3D System | To Set Up a 3D Node Tree
Setting Up a 3D System
Let’s start with the basics. In this first example, you’ll create a basic 3D node tree, map an image to a
3D card, manipulate it, and then render the result back out to the 2D composite.
This attaches a “Card1” node. Let’s see what it looks like in 3D.
3. Attach a Viewer to the Card1 node and Nuke switches the Viewer to 3D.
Wow, that’s amazing. It looks exactly like the 2D Viewer. How can anyone tell the difference?
Check the lower-left corner of the Viewer and you’ll see an orientation marker for the three axes
in 3D. You’ll also see that “3D” is displayed on the view dropdown menu.
USER GUIDE
1917
Setting Up a 3D System | To Set Up a 3D Node Tree
That sign is a little darker than expected, isn’t it? Actually, you can’t see the image yet because the
default view of the 3D workspace is at the origin or center of the space. Perhaps zooming-out may
improve the view.
4. Press the Alt key (Windows /Linux) or the Option key (OS X), and drag with the middle mouse
button to zoom or “dolly.” Drag to the left and you’ll zoom out.
Hey, look. There’s the Nuke emblem. In the 3D Viewer, the “pan” and “zoom” controls are exactly
the same as what you’ve used for the node tree and the 2D Viewer, but let’s try “tumbling” to get a
better view.
5. Alt- or Option-drag with the right mouse button to rotate around the origin point of the 3D
workspace. You now see the 3D grid and the image mapped to the card.
When an image is connected directly to a Card node like this, it is applied as a flat or “planar”
map. The size of the card adjusts to the dimensions of the image.
6. Click on the card and you select the node in the node tree and also the card inside the 3D
workspace.
7. Use the mouse (and the Alt key) to navigate through the workspace. Go ahead, pan, dolly, and
rotate at will. Then, press F over the Viewer to frame the 3D view.
Tip: If you don’t like the standard navigation controls, open the Preferences control panel
(Shift+S), select the Viewers tab and change the 3D control type to Maya, Lightwave, or
Houdini.
USER GUIDE
1918
Setting Up a 3D System | To Position Objects in the Scene
8. Click on an empty spot in the Node Graph to deselect all nodes. Let’s add the other nodes you
need.
9. Right-click on the Node Graph and choose 3D > Camera. Keep its control panel open so you can
manipulate the camera in the Viewer.
10. Right-click and choose 3D > ScanlineRender to insert a render node, and then connect the nodes
as shown below.
11. Connect the Viewer to the ScanlineRender node, and you have the most basic 3D system in
Nuke.
12. Press Tab over the Viewer to change to the 2D view. You won’t see the Nuke emblem - hey, where
did it go? We saw it before.
13. Press Tab again to switch back to 3D. You’ll see the default camera position is too close to view
the card. Let’s move things around to get an image for 2D.
USER GUIDE
1919
Setting Up a 3D System | To Position Objects in the Scene
As you drag the camera, look at the camera’s control panel. You’ll see the x/y/z transform values
reflect the camera’s current position.
4. Press and hold Ctrl (Mac users press Command) over the Viewer and the transform handles
change to rotation rings.
5. Drag the green ring to rotate the camera around the Y-axis. Notice the x/y/z rotation values in the
control panel reflect the angle of the rotation.
The blue handle “rolls” or rotates on the Z-axis, and the red handle rotates on X.
6. Now, select the card object and move it away from the camera.
Keep the control panel open for the Card node. As with the Camera node, the transform handles
disappear from the Viewer when you close the control panel.
7. Drag the card’s transform handles to position it in the 3D workspace. If you wish, press the Ctrl
key (Mac users press Command) over the Viewer and rotate the card.
USER GUIDE
1920
Setting Up a 3D System | To Position Objects in the Scene
8. Press Tab over the Viewer to switch between the 2D and 3D views to see the image the
ScanlineRender node produces.
9. Before you continue to the next example, close all the control panels that are currently open.
In this example, it doesn’t matter where you move the camera or card. In reality, however, you
often need to use specific values, which you can enter directly in the control panels.
You can also import camera data or animation curves - did you notice the import chan file
button in the camera’s control panel? - and apply them to the objects in the workspace.
USER GUIDE
1921
Making a Scene | To Set Up a Scene
Making a Scene
We mentioned earlier the Scene node creates a place where multiple objects may be seen by the
camera and the render node. If you only have a single object, you don’t need a Scene node, but
where’s the fun in that? Scene nodes make it possible to really tap into Nuke’s ability to handle huge
amounts of 3D information, and you should know how to use it.
To Set Up a Scene
1. Inside the “Setting Up a 3D System” node tree, drag a selection around the nuke_sign.jpg node
and the Card1 node to select them.
2. Press Ctrl+C (Mac users press Cmd+C) to copy the selected nodes or choose Edit > Copy from the
right-click menu.
3. Press Ctrl+V (Mac users press Cmd+V) or choose Edit > Paste to insert a copy of the nodes. Press
Ctrl+V or Cmd+V again to insert a second copy, and then arrange the nodes as shown below.
4. There are multiple cards now, and you need a Scene node to create a space where the rendering
node can see all cards at once.
5. Click on an empty space in the Node Graph to deselect all nodes. Right-click and choose 3D >
Scene to insert the “Scene1” node.
6. Drag the Scene1 node onto the obj/scn connector to insert the Scene1 node between Card1 and
ScanlineRender1.
USER GUIDE
1922
Making a Scene | To Set Up a Scene
7. Connect the obj/scn connector from the ScanlineRender1 node to the Scene1 node. Connect
each Card node to the Scene1 node.
8. Double-click on the Card1 node to open its control panel. In the Viewer, you’ll see the transform
handles for the first card.
9. Move and rotate the card to a different position. For this example, it doesn’t matter where you
place it.
10. Open the control panel for Card2 and move its card to a different place in the scene.
11. Open the Card3 control panel and move that card, also.
You could switch to the 2D view to see the result, but why not just look through the camera? Next
to the view dropdown menu, you see the button that locks the 3D view to the camera.
USER GUIDE
1923
Making a Scene | To Set Up a Scene
12. From the view dropdown menu, choose 3D (V) to switch to a 3D perspective view. Then click the
“lock view to 3D camera” button.
13. Turn off the “lock 3D view to selected camera” button. You won’t need it during the rest of this
tutorial.
USER GUIDE
1924
Merging and Constraining Objects | To Set Up a Scene
To merge the three card objects together, right-click on the Card1 node and select 3D > Modify >
MergeGeo. This inserts a MergeGeo node between Card1 and Scene1. Disconnect the Card2 and
Card3 nodes from the Scene node and connect them into the MergeGeo node. Then, right-click on
the MergeGeo node and select 3D > Modify > TransformGeo. Your node tree should now look like
the following:
On the TransformGeo nodes, you see multiple connectors. The connector without a label should be
attached to a geometry object or a MergeGeo node. The other connectors act as constraints on the
connected object’s position.
When a camera or object is connected to the optional look connector, the TransformGeo node
adjusts the rotation so that the object’s z-axis always “points” to the camera or object.
USER GUIDE
1925
Merging and Constraining Objects | To Move the Merged Objects Together
The axis connector can be used to link the current object to the position, rotation, and scale of a
special 3D object called the Axis node. If you’ve worked with other 3D applications, you know the Axis
node as a “null” or “locator” object.
You are still working with the “Setting Up a 3D System” node tree. The following steps show how you
can move the merged nodes, and also how to make objects “look” at the camera and other objects.
4. In the TransformGeo1 control panel, drag the uniform scale slider to increase the size of the
entire group of cards.
USER GUIDE
1926
Merging and Constraining Objects | To Make Objects ‘Look’ at the Camera
In the Viewer, you’ll now see the TransformGeo1 node is constrained to the location of the
camera.
2. Select and move Camera1 in the Viewer window. As you do so, the three cards controlled by the
TransformGeo1 node rotate to “look at” the camera location.
Why is this useful? Let’s assume you have a 2D matte painting mapped to a card in your scene.
The “look” option ensures that the plane of the painting always faces the camera, regardless of the
camera position, and maintains the illusion depicted by the painting.
Before you move on, disconnect the TransformGeo node’s look connector from the camera.
USER GUIDE
1927
Animating a Scene | To Animate the Camera
Animating a Scene
The little scene you’ve created would be more interesting with a camera move. You can animate both
cameras and objects; in each control panel, you’ll see an Animation button next to each parameter
you can animate over time.
3. Double-click on the Camera1 object (either inside the Viewer or on the Node Graph) to open its
control panel.
4. Move the camera to the right and rotate it to “look” at the center of the 3D workspace.
5. Click on the animation button next to the camera’s translate parameters, and choose Set key.
The background of the parameter boxes change color to show that a keyframe is now set for
these values at the current frame in the timeline. Now, you need to set a keyframe for the rotation
values.
USER GUIDE
1928
Animating a Scene | To Animate the Camera
6. Next, click the animation button next to the camera’s rotate parameters, and choose Set key.
7. In the Viewer, scrub to the end of the timeline. Then, move the camera to the left side and rotate
it to face center. This automatically sets keys for the translate and rotate parameters, for the last
frame.
8. Drag through the timeline and the camera moves between the positions recorded by key frames.
Yawn. With only two key frames, the camera moves in a straight line, from start to finish. Let’s edit
the animation curves to make this more interesting.
9. Click the animation button next to the camera’s translate parameters and choose Curve editor.
This opens the Curve Editor window in the same pane as the Node Graph. The outline at the left
side of the Curve Editor displays a list of the parameters you’ve animated, and the curves show the
values plotted over time. Each dot shows the value recorded for a value on a keyframe.
Yes, we know. They don’t look like curves - yet. You only set two key frames, remember? You can
press Ctrl+Alt (Mac users press Cmd+Alt) and click on any line to add more key frames. However,
let’s assume you want to create a smooth arc between the first and last recorded position of the
camera. Rather than set more key frames, let’s just change the shape of the curve.
10. You want to control the shape of the camera path along the z - the distance between the origin
point and the camera, so click the translate / z parameter in the Curve Editor.
Click on the first point of the translate/z curve to select it, and drag the tangent handle upward, as
shown below.
USER GUIDE
1929
Animating a Scene | To Animate the Camera
From this point forward, the curve increases the distance of the camera on the z-axis, which you’ll
now see in the Viewer.
11. Click on the last point of the translate/z curve to select it, and drag it upward also to finish the
desired shape. This eases the distance back toward the value of the keyframe at the end of the
timeline.
Select the camera in the Viewer and you should see the gradual slopes of the curve create a more
interesting arc for the camera move.
Switch to the 3D (V) perspective view and scrub through the timeline to see the new camera move.
Your version may look a little different than this, depending on the positions and rotations you
defined, but you get the idea.
12. If you wish, you can set additional key frames to refine the camera path. Hold down Ctrl+Alt or
Command+Option and click on the z-axis curve in the Curve Editor, to add new points to the
curve, and then adjust their positions.
13. Before you continue, click the Node Graph tab to hide the Curve Editor and return to the node
trees.
14. Close all the control panels that are currently open.
USER GUIDE
1930
Working with Geometry | To Add Primitive Objects to the Scene
The default cube primitive appears at the center of the 3D workspace. Let’s reduce the number of
subdivisions on the cube.
5. In the Cube1 control panel, change the rows parameter to 4. Change the columns parameter to 4,
also.
USER GUIDE
1931
Working with Geometry | To Add Primitive Objects to the Scene
6. Connect the Cube1 node to the Scene2 node. Now let’s adjust the shape of the cube.
7. Reduce the height of the cube by dragging the top-center point down.
8. From the view dropdown menu, choose the front view to see a non-perspective view of the cube.
These non-perspective views can help you size and position objects with more accuracy than you
might get in a perspective view.
Mm... the cube is actually below the x-axis. Let’s move it up, but check the values in the Cube1
control panel.
9. Drag the top of the cube until the t (top) value in the Cube1 control panel is about 0.3. Drag the
bottom of the cube to align it with the x-axis.
10. It looks like you don’t need 4 divisions on the sides of the cube, so change the number of rows to
2 in the Cube1 control panel.
USER GUIDE
1932
Working with Geometry | To Add Primitive Objects to the Scene
12. Change the view to 3D (V) and zoom out a little to see the whole cylinder.
13. In the Cylinder1 control panel, set the rows to 1, the columns to 20.
14. Set the radius to 0.35 and the height to 1.5. Also check the box for close top.
USER GUIDE
1933
Working with Geometry | To Add Primitive Objects to the Scene
16. Now add a sphere. Choose 3D > Geometry > Sphere. In the Sphere1 control panel, set both the
rows and columns to 15, and change the radius to 0.35.
17. Make sure the Sphere control panel is open and move the sphere object to cap the top of the
cylinder.
USER GUIDE
1934
Working with Geometry | To Add Primitive Objects to the Scene
18. Select the 3D from the view dropdown menu and rotate the view around the objects in your
scene.
At this point, they have no surface properties, so you’ll need to connect a 2D image from the Node
Graph to each object.
19. In the Node Graph, connect the concrete.jpg to each of the objects.
USER GUIDE
1935
Lighting and Surface Properties | To Define Surface Attributes to Objects
These tools are not designed to replace the use of true 3D lighting and surfacing, but they can
definitely help you punch up the scene and quickly tweak the settings without sending elements back
to the 3D application.
Nuke’s lighting objects introduce lighting and surface attributes into your scene. When the scene has
no lighting objects, then all surfaces are illuminated with the same properties and level of
“brightness.”
In the following steps, you’ll first add nodes that define surface properties for the objects, and then
you’ll add the light objects to illuminate them.
In the Basic Material control panel, you can see parameters to define the amount of light
emission, diffusion, and specular properties of the surface. You can mask these properties by
connecting images to the mapS (specular), mapE (emission), and mapD (diffuse) connectors, but
this is not required for this example.
USER GUIDE
1936
Lighting and Surface Properties | To Add Light Objects to a Scene
3. Set the light emission control to 0.25. Set diffuse to 0.18, and specular to 0.75.
4. Adjust the min shininess and max shininess values to adjust the quality of the specular
highlights. Once again, nothing seems to happen! That’s because you haven’t yet added a light into
the scene. All surfaces are illuminated with the same level of brightness, so there are no specular
highlights or other controllable light properties visible. It’s not very exciting, but don’t worry - you
get to add a light into the scene soon.
5. Make two copies of the BasicMaterial1 node and attach a copy before Cylinder1 and before
Cube1.
3. Switch to the top view and drag x-axis handle (red) to move the light to the left.
4. Drag the z-axis handle (blue) to move the light closer to the bottom edge of the screen. Then,
press the Ctrl or Command key and rotate the light to face the pillar object.
USER GUIDE
1937
Lighting and Surface Properties | To Add Light Objects to a Scene
5. Switch to the 3D (V) view and rotate the view so you can see both the Keylight and the pillar
geometry.
6. Drag the y-axis handle (green) to move the light up above the pillar.
7. Press the Ctrl or Command key and rotate the light down to shine on the pillar.
That’s the basic setup for lighting and surfaces, but there are other tools for more complex setups.
Refer to 3D Compositing for more information on the 3D lighting and surfacing tools.
USER GUIDE
1938
Epilogue | To Add Light Objects to a Scene
Epilogue
In this chapter, you learned how to setup a 3D workspace for your composite, and how to work with
3D geometry and lighting. These are all prerequisite skills for more advanced topics, such as camera
projections, match-moving, and set replacement.
USER GUIDE
1939
Appendices
This section contains supplemental reference information that you may need when using Nuke.
USER GUIDE
1940
Appendix A: Preferences
Project Defaults General project settings, and settings for color management.
Behaviors Settings for start up, file handling, export options, scripting, node
behaviors, and more.
Panels Settings for the interface appearance, file browser, control panels, nodes,
Viewers, script editors, and scopes.
General
General
Autosave
force project autosave Set the number of seconds after which to automatically save your project.
after <300> seconds Disable this by setting it to zero.
idle comp autosave Define how long (in seconds) Nuke waits before performing an automatic
after <5> seconds backup after you have left the system idle (that is, haven’t used the mouse
or the keyboard). If you set the value to 0, automatic backups are disabled.
force comp autosave Define how long (in seconds) Nuke waits before performing an automatic
after <30> seconds backup regardless of whether the system is idle. If you set the value to 0,
forced automatic backups are disabled.
autosave comp Sets the file name of the autosaved project. If this is not set, it defaults to
filename [firstof[value root.name] [getenv NUKE_TEMP_DIR]/].autosave
USER GUIDE
1941
Appendix A: Preferences | Project Defaults
General
Path Substitutions
path substitutions Allows you to remap file paths in order to easily share projects across
different operating systems. When the application encounters a file path,
any text in the OSX/Linux column is replaced with the text in the Windows
column, or vice versa.
To be able to enter text in either column, you need to click on the + button
below to add a row to the table.
Project Defaults
Note: You must restart the application for changes to Project Defaults preferences to be
applied.
Channel Management
Channel Management
Channel Warning Sets the total number of channels required in a script to trigger the
Threshold Channel Warning. Nuke only supports 1023 uniquely named channels per
script.
USER GUIDE
1942
Appendix A: Preferences | Project Defaults
Channel Management
Note: Nuke does not remove unused channels until you close
and reopen a script, so the Channel Count does not decrease
when you remove Read nodes from the Node Graph.
Color Management
OpenColorIO config
OpenColorIO config Sets the OpenColorIO configuration to use, if you don’t intend to use the
file nuke-default settings.
If you select custom from the dropdown, enter the file path of the
configuration file or click Choose to use the browser.
working space Sets the colorspace files should be converted to, on import, and from,
during render - it's the colorspace used by Nuke under the hood.
thumbnails Sets the default LUT applied to thumbnails when ever they are generated.
8 bit files Sets the default LUT applied to the specified ingested file type.
16 bit files
log files
USER GUIDE
1943
Appendix A: Preferences | Project Defaults
Color Management
color management Sets whether Nuke uses the LUTs read from the configuration specified or
the Nuke native LUTs during export. Selecting OCIO makes the relevant
OCIO LUTs available to the Read and Write nodes in scripts on a per
project basis.
General - these preferences only apply to new scripts and projects. To affect the current project,
use the Project Settings.
Project
project directory Sets the project directory used by new projects. You can change the project
directory for the current project in the Project Settings.
Hrox Directory Click to set the project directory to the location of the .hrox file using the
[python {nuke.script_directory()}] expression.
custom export Sets the export directory used by new projects when the export directory
directory control is set to Use Custom Directory.
Sequence
output resolution Use this to set the output resolution in the Timeline environment for new
projects. By default, clips in the sequence are not reformatted to fit this
format, they retain the source clip resolution. You can adjust the
reformatting for new clips added to a sequence using the Clip settings
below or by selecting clips in the timeline and adjusting the settings in the
Properties tab.
USER GUIDE
1944
Appendix A: Preferences | Project Defaults
General - these preferences only apply to new scripts and projects. To affect the current project,
use the Project Settings.
frame rate Select the frame rate for new projects in the Timeline environment.
start timecode Use this to define the start timecode for new projects. For shots, this
overrides the timecode defined in the media.
time display You can use this to select the display format for times. You can select
either Timecode or Frames.
drop frame Use this to choose whether timecodes from this sequence are displayed in
drop frame times or not.
Drop Frame is a timecode display option that leaves out two frames from
the 30 fps timecode sequence every minute (except every 10th minute) so
that long running NTSC sequences are accurate to a real-time clock (NTSC
frame rate is 3000/1001, or approximately 0.01% slower than 30fps).
Clip
clip reformat Sets how new clips added to a sequence are formatted. The default, None,
displays shots at the source clip resolution, whereas To Sequence
Resolution reformats the shot to the output resolution using the resize
type control.
resize type When clip reformat is To Sequence Resolution, determines how the shot
is resized to fit the output resolution. This control is disabled when clip
reformat is set to None.
Poster Frame
poster frame Sets a preset poster frame for all new source clips or select Custom to
select a relative frame offset as the poster frame:
• First - new source clips display the first frame of the file on disk as the
USER GUIDE
1945
Appendix A: Preferences | Project Defaults
General - these preferences only apply to new scripts and projects. To affect the current project,
use the Project Settings.
poster frame.
• Middle - new source clips display the middle frame of the file(s) on disk
as the poster frame.
• Last - new source clips display the last frame of the file(s) on disk as the
poster frame.
• Custom - the poster frame number is derived from the number of
frames in the clip starting at 0. Use the frame offset control to set the
relative offset.
frame offset When poster frame is set to Custom, enter the relative frame offset from
the first available frame in the file(s) on disk.
Views - these preferences only apply to new scripts and projects. To affect the current project, use
the Project Settings.
Views
+/- Click to add and remove views from the views list.
↑↓ Click to move views up and down the views list. Moving a view changes the
position of the corresponding Viewer button.
View Lists the views in the script or project and the color associated with the
view when Use color in UI is enabled.
Set up views for stereo Click to automatically add left and right views to scripts or projects.
Use colors in UI? When enabled, the colors specified in the views matrix are applied to the
interface. For example, if you click Set up views for stereo and enable
this control, any UI items representing the left and right views are colored
red and green.
USER GUIDE
1946
Appendix A: Preferences | Performance
Performance
Caching
directory path The directory where all .exr files from timeline disk caching are stored by
default. The caching directory should be on a local disk, preferably with the
fastest access time available. It’s also important to leave enough space for
the maximum disk cache size (defined below).
limit to (GB) This allows you to set the maximum amount of space (in GB) to use for the
timeline disk cache. Set to zero for unlimited size. Values lower than zero,
leave that amount of space free. The currently in use and currently free
fields display how much free cache remains from the total specified.
EXR compression Sets the type of compression applied when writing files to the disk cache:
• DWAB
• Zip (1 scanline)
DWAB compression produces smaller cache files more quickly, but can be
lossy compared to Zip compression.
clear cache Clear All removes all cached files from the root directory specified in the
directory path control. A dialog displays a list of files for confirmation
before the files are deleted.
temp directory The comp disk cache saves all recent images displayed in the Viewer for
fast playback. Using this control, you can specify where you want Nuke to
save these images. Select a local disk (for example, C:/temp), preferably
with the fastest access time available. It’s also important to leave enough
space for the maximum disk cache size (defined below).
comp disk cache size Specifies the size of Nuke's disk cache, independent of the playback cache.
(GB) It is the maximum amount of disk that Nuke can allocate for caching.
When the limit is reached, Nuke attempts to free disk space before using
USER GUIDE
1947
Appendix A: Preferences | Performance
Caching
any more.
rotopaint cache size Specifies the size of Nuke's RotoPaint tile cache. It stores tiles for the
(GB) output image of each RotoPaint node, enabling you to paint on top of
existing RotoPaint without having to re-render the strokes underneath.
If you run out of RotoPaint disk cache, response times may suffer when
painting onto tiles containing lots of strokes.
Memory Caching
playback cache size (% Specifies the percentage of system RAM used for the timeline Viewer
of system RAM) playback cache. The entire amount is allocated, even if you've only got a
few frames in the Viewer.
Recently used frames are retained in the memory to avoid relying on the
disk buffering system. The cache is freed when you switch to the
compositing Viewer and reallocated when you switch back to the timeline
Viewer.
free timeline playback When enabled, any frames cached to RAM (the white bar in the timeline
RAM cache when Viewer) are discarded when you switch to the Node Graph within Nuke
switching to the node Studio, freeing the RAM for use in Nuke.
graph
Note: When you switch back to the timeline, the cached files are
re-cached, which can be time consuming.
USER GUIDE
1948
Appendix A: Preferences | Performance
Caching
comp cache size (% of Specifies the percentage of system memory available for comp caching. It
system memory) is independent of the playback cache and is the maximum amount of
memory that Nuke can use for caching. When the limit is reached, Nuke
attempts to free memory before using any more.
comp playback cache Specifies the percentage of the comp cache available for comp playback.
size (% of comp cache) This cache holds data displayed in Nuke's compositing Viewer, the result
from the node tree you're viewing. Results from further up the tree are
sometimes cached inside the comp cache as well, such as the output from
a node which is needed by more than one downstream node.
comp paint cache size Specifies the percentage of the comp cache available for comp paint. The
(% of comp cache) comp playback cache and comp paint cache are limits for the total
memory that is used, so it's possible to have a combined size greater than
100%.
How the memory is shared between the two depends on what you're
doing, and you won't necessarily be filling both up at the same rate. For
example, if you're doing a lot of paint work, you might want to allow the
paint cache to fill up more than 50% of the available memory if the
playback cache isn't using its full share.
Audio Waveforms
waveform memory Sets the amount of memory available for storing timeline audio
(MB) waveforms.
Application in Background
pause timeline Viewer When enabled, pause timeline Viewer caching when the application is in
when the application the background.
goes to the
background
clear timeline Viewer When enabled, the timeline Viewer cache is cleared when the application
cache when the goes into the background.
application goes to the
background
Note: This preference is only available when pause timeline
Viewer when the application goes to the background is
USER GUIDE
1949
Appendix A: Preferences | Performance
Caching
enabled.
pause comp Viewer When enabled, pause comp Viewer caching when the application is in the
when the application background.
goes to the
background
clear comp Viewer When enabled, the comp Viewer cache is cleared when the application
cache when the goes into the background.
application goes to the
background
Note: This preference is only available when pause comp
Viewer when the application goes to the background is
enabled.
Undo Caching
undo history size Allows you to set the amount of RAM, in MB, to use for the undo history. If
this limit is exceeded, older items are discarded.
minimum undo events Use this to set the amount of undo events. This setting always applies,
even if it breaches the undo history size limit.
Expression
Expressions Re-Evaluation
USER GUIDE
1950
Appendix A: Preferences | Performance
Hardware
Audio
audio device The audio device control allows you to select an existing audio device for
playout from a list of automatically detected devices. You can disable
playout on a device by selecting Disabled.
RED Rocket
use red rocket You can select the use red rocket checkbox to speed up decoding RED
media. If you’re using R3D Rocket graphics card, note that using it is likely
to only be considerably faster when you’re reading in at full resolution. If
you’re reading in at half resolution, for instance, using without the R3D
Rocket card enabled may be faster. This is because the R3D Rocket
graphics card is designed to be fast when reading in multiple frames at the
same time. This is not how it works internally, and therefore reads with the
R3D Rocket card disabled may sometimes be faster when working in lower
resolutions (< 4K widths). Also, note that the R3D Rocket card always
produces better results than when downsampling. Also, the R3D Rocket
card can only be used by one application at a time, so if you are viewing
multiple scripts at once, you may only be able to use the R3D Rocket card
in one.
GPU
expand 3 to 4 You can use this to expand images cached for playback from 3 to 4 color
channels channels per pixel. Some graphics hardware performs better at loading
images to video memory with 4 channels per pixel, than it does with 3.
Enabling this option improves playback performance on such hardware, at
the expense of reducing the number of frames that it's possible to cache.
If you are seeing poor playback performance, enabling this option may
help. However, if you are seeing acceptable playback performance with this
option disabled, then leaving it disabled increases the number of frames
that may be cached for smooth playback.
Note: You must restart Nuke for this option to take effect.
GPU texture cache Use this to set the maximum amount of GPU memory to use for caching
USER GUIDE
1951
Appendix A: Preferences | Performance
Hardware
default blink device You can use this to set the default blink device to use the CPU, or choose
which GPU to use for GPU accelerated plug-ins, such as, ZDefocus,
Convolve, Denoise, BlinkScript, Kronos, MotionBlur, and so on. Any
changes to this setting only take effect after you have restarted the
application.
enable multi_GPU If have multiple GPUs of the same type installed, you can enable this
support preference to share work between the available GPUs for extra processing
speed. This is a global preference and is applied to all GPU enabled nodes.
See Windows, Mac OS X and macOS, or Linux for more information on the
GPUs Nuke supports.
Localization
System
read source files when When enabled, source clips and Read nodes referencing out of date
localized files are out localized files automatically revert to reading the entire sequence from the
of date original source files. Source files are read in the following circumstances:
USER GUIDE
1952
Appendix A: Preferences | Performance
Localization
When disabled, the out of date localized files are read until you update
them manually.
hide out of date When read source files when localized files are out of date is enabled,
progress bar you can enable this control to hide the progress/status bar on Read nodes
that are reading from the original source files.
pause localization on When enabled, localization does not start automatically when you open a
script/project open script or project. Enabling this option can help to open scripts and projects
more quickly.
Inputs
localization policy Sets the localization policy for all new source clips and Read nodes:
• on - always localize source clips and Read nodes with this policy
automatically.
• from auto-localize path - localize these source clips and Read nodes
automatically if they reside in the auto-localize from directory.
• on demand - only localize these source clips and Read nodes when you
manually update them.
• off - never localize these source clips or Read nodes.
Paths
auto-localize from Enter the location of the files you need automatically localized, unless
otherwise specified in the Read node’s cache locally control or in the bin
right-click, Localization Policy menu. Commonly this would be your
USER GUIDE
1953
Appendix A: Preferences | Performance
Localization
remote working folder. If you leave this field blank, automatic local file
caching doesn’t take place.
localize to Enter the file path where all the localized files are automatically stored.
Localizing files allows for faster reloading for files that are stored in a
location that is slow to access (such as a network drive).
\\windowspath\to\my\network\file.dpx is saved as __
windowspath\to\my\network\file.dpx
t:\my\network\path\file.dpx is saved as t_\my\network\path\file.dpx
Storage
limit to (GB) This allows you to set the maximum amount of space (in GB) to use for
localized files. Set to zero for unlimited size. Values lower than zero, leave
that amount of space free. The currently in use and currently free fields
display how much free storage remains from the total specified.
Network
check for updated files When files are localized, specifies the time interval (in minutes) before
every Nuke checks for updated versions of the files.
Appearance
progress bar Sets the colors used to represent the localization states of source clips and
Read nodes.
Threads/Processes
Playback
USER GUIDE
1954
Appendix A: Preferences | Performance
Threads/Processes
default number of Sets the number of threads to use per reader. If your source files are
threads per reader located on high performance local drives, increasing the number threads
can significantly improve read times.
override number of Allows you to override the default number of decode threads used,
threads per reader dependent on file format.
Use the plus button to add an entry to the table and then select the file
format using the dropdown menu. Double click the Number of threads
column to set the required number of decode threads for that format.
OpenEXR helper Sets the number of helper threads to use for OpenEXR only. The default,
threads to use zero, automatically sets the number of helper threads used.
Arri helper threads to Sets the number of helper threads to use for ARRI only. The default, zero,
use automatically sets the number of helper threads used.
Note: The OpenEXR and ARRI helper thread preferences are independent of the threads
per reader and override table per format settings.
QuickTime decoders Sets the number of background processes available to handle QuickTime
to use file I/O. You must restart the application for this preference change to take
effect.
Note: You must restart Nuke for this setting to take effect.
Rendering
render using frame When enabled, the Frame Server is always used for rendering.
server (Nuke)
USER GUIDE
1955
Appendix A: Preferences | Performance
Threads/Processes
frame server render Allows you to increase the number of minutes a render process can stay
timeout unresponsive before ending. If you're experiencing Render application
timed out messages with process-heavy scripts, you can try increasing this
value.
focus background When enabled, rendering using the Frame Server automatically opens the
renders Background Renders panel, or if it is already open, shifts focus to the
panel.
frame server Set the number of slave Nuke processes to run for the frame server.
processes to run
Note: You must restart Nuke for this setting to take effect.
Note: You must restart Nuke for this setting to take effect.
number of threads Sets the number of threads that Nuke uses when transcoding. Lower
numbers allow the Timeline environment's interface to be more
responsive. Higher numbers allow faster transcodes. This setting is passed
to Nuke using the -m option.
cache memory (GB) Use this to set the number of gigabytes of RAM that Nuke uses for its cache
USER GUIDE
1956
Appendix A: Preferences | Behaviors
Threads/Processes
Downsize Filtering
8-bit images Customizes the downsize filtering behavior by bit-depth. The default (1x)
retains the original image size. You can select 2x to halve the image size, or
10-, 12- and 16-bit 4x to quarter the image size.
integer images
The Viewer image quality dropdown affects the decode rate and resolution
16-bit float images of clips displayed in the Viewer. Lower resolutions decode faster and vice
32-bit images versa.
Behaviors
Documentation
documentation source Sets the help source for the Properties ? button:
• local – use Nuke's built-in HTML help server. Nuke's local help server also
searches the NUKE_PATH, .nuke, and .nuke/Documentation directories
for HTML files with the same name as the requested node, such as
Blur.html.
• foundry – This uses Foundry's Online Help, the most up-to-date version
of the documentation.
• custom – Select this to point to your own help server.
USER GUIDE
1957
Appendix A: Preferences | Behaviors
Documentation
local port Specify a local documentation server port manually. This is usually >= 1024.
You can also set this to 0 to automatically assign the port.
range Specify a range of ports to attempt with the local documentation server.
File Handling
scan for file sequence When enabled, identify and import the file range of media that is dropped
range on drop into Bin into the bin. When disabled, no range is detected and only a single frame
view is ingested. (This does not affect container formats, such .mov and .r3d.)
automatically rescan When enabled, incrementing a source clip or shot’s version past the end of
versions when moving the previously discovered versions list, forces a rescan to update the
off end of the version versions list. See Using Versions for more information.
list
frame number style Sets the sequence display mode to be used in the file browser.
assume fixed width When enabled, assume frames have a fixed width number. With this
frame numbers in file selected, frame numbers need to be padded with zeros to a fixed length,
sequences otherwise frame numbers without preceding zeros are assumed to belong
to sequences with no padding. This is important as the sequence identifier
specifies a unique file name for each and every frame. For example:
default red clip video Sets the default red clip decode mode for new projects. You can choose
decode mode from FullPremium, HalfPremium, HalfGood, QuarterGood, EighthGood,
or SixteenthGood.
USER GUIDE
1958
Appendix A: Preferences | Behaviors
File Handling
alembic files
always load abc files When enabled, all .abc files are imported as a single node, without
as all-in-one displaying the Alembic import scenegraph.
Nodes
new Merge nodes When enabled, inserting a new Merge node automatically connects the A
connect A input input.
autokey roto shapes When enabled, keyframes are added automatically to Roto shapes when
they are adjusted.
when Viewer is closed When enabled, Viewer nodes are deleted when you close the associated
delete its node Viewer.
Weighting When enabled, nodes in the Tab menu are weighted so that more
commonly used nodes appear at the top of the list.
When disabled, the node list is ordered as it appears in the nodes toolbar
or alphabetically if you start typing.
Favorites When enabled, nodes that you have marked as favorite in the Tab menu
appear at the top of the list.
When disabled, the node list is ordered as it appears in the nodes toolbar
or alphabetically if you start typing.
USER GUIDE
1959
Appendix A: Preferences | Behaviors
OFX Plug-ins
allow trial mode in When enabled, OFX plug-ins that offer a trial mode render in that mode, if
OFX plugins a license cannot be found. When disabled, OFX plug-ins that can't get a
license appear in an error state.
Positions
show menus with When enabled, opening contextual menus positions them with the most
previous item under recently used item under the pointer.
the cursor
Scripting
script command When enabled, the dialog that appears when you press X in the Node
dialog defaults to Tcl Graph defaults to Tcl, rather than Python.
Startup
startup workspace Sets which workspace to display on startup. You can choose from
Compositing, Conforming, Editing, Finishing, Reviewing, and Timeline.
You can also choose to save a customized workspace, which would also be
available from this list.
show splash screen at When enabled, display the splash screen on startup.
startup
restore workspace When enabled, restore the selected saved workspace when opening
when opening projects projects.
Analytics
USER GUIDE
1960
Appendix A: Preferences | Behaviors
Startup
submit usage statistics When enabled, certain usage statistics are collected from the machine on
which you license Nuke, NukeX, Nuke Studio, Hiero, and HieroPlayer.
When disabled, we don't collect any usage data from your machine.
Timecode
R3D file timecode Sets the source timecode for RED files. You can choose from Default From
File, Absolute Timecode, or Edge Timecode.
other media timecode Sets the timecode source for file-per-frame media (such as .dpx). You can
choose from File Header or Frame Number. If File Header is selected
and a timecode exists, then the timecode is used. Otherwise it defaults
back to using the frame number from the file name.
max valid timebase Sets the maximum image header timebase above which the value is
(fps) clamped.
Image files are often created with application specific timebase values in
the header description. This can lead to reading in spuriously high frame
rates and the clamp aims to prevent this from happening.
If your clips do have extremely high frame rates, increase this value as
necessary to avoid clamping.
EDL style spreadsheet When disabled, the srcOut and dstOut values in the spreadsheet use the
timecodes film convention, representing the last frame of the cut.
When enabled, the srcOut and dstOut values in the spreadsheet use the
video convention, representing the frame directly after the cut.
USER GUIDE
1961
Appendix A: Preferences | Panels
Panels
Appearance
Font Change the type, weight, angle, and size of the font used on Nuke’s user
interface.
UI Colors - right-click on any color button and select Set color to default to revert changes.
Background Change the background color of most user interface elements (menus,
toolbars, panes, properties panels, Viewers, and pop-up dialogs).
Base Change the color of input fields, the input pane of the Script Editor, and
the left side of the Curve Editor.
Highlight Change the color of the highlighting that appears when you hover the
cursor over a control, select a file or folder in the File Browser, or scrub to
a new frame on the timeline.
Highlighted Text Change the color of any highlighted text (for example, text you select in
node properties).
Label Change the color of labels and text on the application interface. Note that
this does not set the color of the labels on nodes in the Node Graph.
Animated Change the color that indicates a control has been animated.
Keyframe Change the color that indicates a keyframe has been set.
Disk cached frames Change the color of the disk cached frames on the Viewer timeline.
RAM cached frames Change the color of the RAM cached frames on the Viewer timeline.
Playhead Change the color of the frame marker on the Viewer timeline.
In/Out Markers Change the color of the in and out frame markers on the Viewer timeline.
Curve Editor / Dope Sheet - right-click on any color button and select Set color to default to
revert changes.
no. of curves visible Sets the maximum number of curves visible in the Curve Editor.
USER GUIDE
1962
Appendix A: Preferences | Panels
Appearance
unselected key Change the color used for an unselected key on the Dope Sheet.
part-selected key Change the color used for a part-selected key on the Dope Sheet.
selected key Change the color used for a selected key on the Dope Sheet.
timeline Change the color used for the timeline on the Dope Sheet.
control text Change the color used for the control text on the Dope Sheet. These
indicate the frame number of a key when you select one.
control text shadow Change the color used for the shadow of the control text on the Dope
Sheet.
time label Change the color used for the time labels on the Dope Sheet. These
indicate frame numbers.
current frame Change the color used for the current frame on the Dope Sheet. This is a
vertical line that indicates the current frame on the timeline.
project frame range Change the color used for the project frame range on the Dope Sheet.
These are two vertical lines indicate your frame range.
Control Panels
max nodes in Use this to set the maximum number of panels that can be open in the
properties bin Properties pane.
reopen acts like new When this is enabled, double-clicking a node that has been open before,
panel places the panel in the same place as a new panel. If this is disabled, the
panel appears in its previous position.
expand / collapse If this is enabled, the node selection in the Node Graph determines which
panels in Properties control panels are expanded (all unselected nodes automatically have their
bin to match selection panels collapsed). This does not apply to floating control panels.
input button action Use this to define node input button action, which is located in the top-left
of the node properties panel. For example, you can set this to center a
USER GUIDE
1963
Appendix A: Preferences | Panels
Control Panels
max items channel Use this to set the maximum number of channels or layers that are
menu displayed in a single sub-menu of the main channel control.
Color Panel
color picker button Sets the type of color picker displayed when you click a color picker button
opens in the properties panel:
• in-panel color picker - opens a color wheel and sliders in the properties
panel.
• floating color picker - opens a color wheel and sliders in a floating
panel.
Tip: Holding Ctrl/Cmd and clicking the color picker button opens
the alternate color picker to the one specified in the Preferences.
File Browser
start file browser from When enabled, new file browsers open at the last location used. When
most recently used disabled, new file browsers open at the current working directory.
directory
Node Colors
autocolor Deselect this checkbox to ignore individual node/soft effect color settings
and, instead always use the All Others color.
Shade Nodes Select this checkbox to apply a slight gradient shading to nodes.
<node name or type> The nodes listed here have been given a default color. You can change this
by clicking the assigned color to open the color menu, and selecting a new
one.
USER GUIDE
1964
Appendix A: Preferences | Panels
Node Colors
All Others Use this to select the color to use as default for all nodes not otherwise
specified above, or all nodes if autocolor is disabled.
Text Use this to select the color used for node label text.
Selected Use this to choose the highlight color applied to any selected nodes.
Selected Input Use this to choose the color used for node inputs' label text when selected.
GL Color Use this to select the color to draw nodes' Viewer controls in. For example,
the Ramp node's gradient control.
Node Graph
autolabel When disabled, nodes only show the filename or node name - most of the
code in autolabel.py is disregarded.
For example, the Blur node does not display the affected channels when
this control is disabled.
highlight running When enabled, highlight any nodes whose output is currently being
operators calculated.
postage stamp mode When displaying a thumbnail render of the node’s output on its surface
(either using the PostageStamp node or the postage stamp control on the
Node tab of each node), you can select one of two modes:
• Current frame - The postage stamp is always updated to match the
current frame.
• Static frame - The postage stamp displays a fixed frame. To specify the
USER GUIDE
1965
Appendix A: Preferences | Panels
Node Graph
frame to use, open the node’s controls, go to the Node tab, and adjust
static frame.
Note: If the frame number you use is outside the frame range for
the node, it is clamped to the first or last frame in the range
accordingly.
node name When a node is selected and the node’s name is too long to fit inside the
background node, a background is drawn behind the name to improve legibility. Use
this control to set the intensity of the background, from 0 (no background)
to 1 (fully opaque background).
label font Sets the font for labels. You can use the B and I, to the right of the font
dropdown, to bold or italisize the selected label font.
tile size (WxH) Sets the size of nodes in the Node Graph using the width and height.
snap to node When enabled, nodes snap into positions (while dragging them) that line
up horizontally and vertically with their inputs and outputs.
grid size (WxH) Sets the grid size using width and height.
snap to grid When enabled, nodes snap into positions (while dragging them) that line
them up with the grid.
show grid When enabled, display the grid using the overlay color.
snap threshold When snap to grid is enabled, use this to set the maximum number of
pixels to jump by, when snapping nodes to the grid or other nodes.
Colors
Overlay Sets the color of the selection marquee when you lasso nodes.
Elbow Sets the color of the dots created when you 'elbow' a connection pipe by
USER GUIDE
1966
Appendix A: Preferences | Panels
Node Graph
holding Ctrl/Cmd.
Highlight When the bounding box warning is enabled, sets the color of the warning
displayed on nodes that exceed the threshold.
Line When the bounding box warning is enabled, sets the color of the dotted
line around the Highlight color on nodes that exceed the threshold.
enable When enabled, nodes that force the bounding box past the format size are
marked in the Node Graph:
• red rectangle with dotted stroke - the indicated node creates a
bounding box greater than the format.
• dotted stroke without the red rectangle - the bounding box size is
greater than the format at the indicated node, but the bounding box size
has been set by an upstream node.
threshold % Sets the threshold past which the bounding box warning is displayed.
Arrow
<directional arrows> You can select one of the directional arrows (up, down, left, or right) to
change the color it is displayed in. Click the arrow to open the color menu
and select a new color.
deep arrows Sets the color of arrows carrying deep data. Click the button to open the
color menu and select a new color.
expression arrows Sets the color of expression arrows, if enabled. Select the enable checkbox
to display expression arrows.
link knob arrows Sets the color of arrows indicating that a node contains linked knobs, that
is, knobs that are in use in another node's Properties panel. Select the
enable checkbox to display link knob arrows.
clone arrows Sets the color of clone arrows, if enabled. Select the enable checkbox to
display clone arrows.
<arrow components> Sets arrow and arrow head, lengths and widths. You can also use the
numeric field next to each component to enter a specific value.
USER GUIDE
1967
Appendix A: Preferences | Panels
Node Graph
allow picking of Select this checkbox to be able to pick up and move connected arrow
connected arrow heads.
heads
allow picking of arrow When enabled, press Ctrl (Cmd on a Mac) on the Node Graph to display
elbows to create Dots yellow “elbows” on the Node Graph arrows and then click on these to
insert Dot nodes.
drag-to-insert only Select this checkbox to restrict the arrow hotspot, for inserting nodes, to
work near middle of the middle of the arrow.
arrows
size of dots Use this slider to set the size of the Dot nodes. You can also enter a
specific value in the numeric field to the left of the slider.
Project Items
shade project items When enabled, additional shading is applied to source clips and shots in
the Project bin and timeline.
USER GUIDE
1968
Appendix A: Preferences | Panels
Project Items
Item Labels
project bin Click to change the color of labels in the Project and timeline panels. A
color wheel displays allowing you to select the required color.
timeline
auto-adjust contrast When enabled, label colors are automatically adjusted if a potential color-
clash is detected.
Item States
offline Click the buttons to change the color of shots and comps in the timeline
panel. A color wheel displays allowing you to select the required color.
error
freeze
comp rendered
Item Colors
display in project When enabled, the specified item colors, or defaults, are displayed in the
panel Project panel.
display in sequence When enabled, the specified item colors, or defaults, are displayed in the
panel timeline panel.
spreadsheet color When enabled, the specified item colors applied to rows in the
rows spreadsheet.
USER GUIDE
1969
Appendix A: Preferences | Panels
Project Items
project Click the buttons to change the color of items in the Project and timeline
panels. A color wheel displays allowing you to select the required color.
bin
sequence
source
audio
comp
file types Allows you to add custom color-coding by file extension. Click the
button and then select a file type from the extension dropdown. Double-
click the color swatch to display a color wheel allowing you to select the
required color.
Any source clip or shot with that extension is then colored accordingly in
the interface.
Scopes
black point Use the slider or the entry box to select the black point value.
white point Use the slider or the entry box to select the white point value.
luma/chroma Use this to select the video standard to use when converting from RGB to
encoding luma and chroma for scope display.
Include viewer color Select this checkbox to include applied Viewer color transforms (gain,
USER GUIDE
1970
Appendix A: Preferences | Panels
Scopes
transforms gamma, and LUT) in scope data. If this checkbox is disabled, all Viewer
transforms are ignored.
Force full frame Select this checkbox so that the Viewer always requests full frame data
when a scope is displaying data for that Viewer. If this checkbox is
disabled, the scopes only display data for the current area requested by
the Viewer, rather than the whole image.
Script Editor
font Use this to select the font to use in the Script Editor.
Note: This control also changes the font in the BlinkScript Kernel
Source field.
indent You can use this control to set the indent value to use when scripting.
save and restore script Disable this checkbox if you prefer that the contents of the Script Editor is
editor history not saved and restored between sessions of Nuke.
echo python Select this checkbox to print any Python commands executed by Nuke
comments to output itself to the Script Editor output window.
window
clear input window on Disable this checkbox if you want the most recent script to remain in the
successful script input window after execution.
execution
USER GUIDE
1971
Appendix A: Preferences | Panels
Timeline
show frame end When enabled, an extra line is drawn on the timeline to the right of the
marker playhead, indicating the end of the current frame.
visible range follows When enabled, the timeline scrolls with the playhead, constantly updating
playhead the view. When disabled, the playhead is allowed to move off screen.
Audio Tracks
half waveforms When enabled, audio tracks on the timeline display only the rectified
waveform. When disabled, the full waveform is displayed.
Viewer (Comp)
Defaults
new Viewers go to When enabled, new Viewers are placed in their own window instead of
own window docking in existing windows.
prevent auto zoom for When enabled, new Viewers are not auto-zoomed to the current Viewer's
new Viewers zoom level.
apply LUT to color When this is checked, look-up tables (LUTs) are only applied to the red,
channels only green, and blue channels.
viewer buffer bit depth Use this to select the OpenGL buffer depth, and enable use of the GPU for
(byte) the Viewer process and input process.
• byte – Converts to 8-bit with error diffusion.
• half-float – Converts to 16-bit (half) float. In this mode, the GPU can be
used to apply Viewer effects like gamma and the LUT in a Viewer process.
• float – Uses a full 32-bit floating point texture. This may be slow on
selected cards. In this mode, the GPU can be used to apply Viewer effects
like gamma and the LUT in a Viewer process.
You can choose a default value for this setting in the Preferences, or by
using knobDefault() in a startup script.
USER GUIDE
1972
Appendix A: Preferences | Panels
Viewer (Comp)
use GPU for Viewer When this is checked, the Viewer applies its effects (such as the Viewer
when possible Process node) in the GPU when possible. However, in some cases, like
when monitor output is enabled or gl buffer depth is set to byte in the
Viewer settings, effects (such as gain and gamma) must still be computed
on the CPU.
use GPU for inputs Normally, the Viewer only attempts to run its own effects (such as the
when possible Viewer Process node) on the GPU. However, when this is checked, any
nodes connected to the Viewer are also computed on the GPU when
possible. Note that this cannot be done for all nodes because not all nodes
have a GPU implementation.
If nodes are computed on the GPU, the color values displayed in the
Viewer are inaccurate. This is because they show the color from the last
node computed in the CPU prior to transferring the image into the
graphics card.
disable GPU Viewer Check this to disable dithering in the Viewer when you’re using half-float
dithering depth. Uncheck to allow dithering at all times.
Note: When the Viewer AB mode is changed to wipe or stack, the state of the GPU
acceleration controls is stored, GPU acceleration is turned off, and GPU acceleration is
disabled.
When the Viewer AB mode is changed back to default, GPU acceleration is re-enabled and
the state of the GPU acceleration controls is restored.
no incomplete stereo When this is checked, the Viewer only displays one view of a stereo project
for new viewers until both views have been rendered. This is to prevent disorienting effects
when watching the results.
When this is not checked, the Viewer displays both stereo views, even if the
render of either is incomplete.
Settings
flip stereo interlaced Select this checkbox to flip the left and right stereo views when the Viewer
views is set to Stereo Mode > Interlaced in the right-click/context menu.
USER GUIDE
1973
Appendix A: Preferences | Panels
Viewer (Comp)
texture size Use this to define the OpenGL texture size in Nuke's Viewers. It affects the
2D Viewer preview texture size, such as the preview displayed when
dragging transform or SplineWarp handles, and all textures in the 3D
Viewer. You can choose from 256x256, 512x512, 1024x1024, and
2048x2048.
Note: The larger the texture size, the sharper it is, but larger
texture sizes need more time and memory. Setting this
preference to a high value can impact 3D Viewer performance.
texture mode Use this to choose how textures are handled in the Viewer. You can choose
from the following options:
• Multiframe – Cache each frame of a texture; this gives animated textures
and fast playback after each frame is cached, but uses a lot more
memory. It also enables you to have multiple frames of a texture visible
at one time (for example, on particles).
• Classic – Textures are not updated in the Viewer during playback; this
gives the fastest playback speed.
use video legal range When enabled, automatically limit monitor output to the legal range when
for monitor out swapping between the Timeline environment and Compositing
environment.
USER GUIDE
1974
Appendix A: Preferences | Panels
guides You can use this to choose to show overlays in the image area. You can
choose from:
• Title Safe – Indicates where text should be entered to be visible.
• Action Safe – Indicates the area in which to place actions so that they are
visible.
• Format – Displays the size of the format over the Viewer.
fullscreen display Use this to select which display to use for fullscreen mode. This setting
takes effect the next time fullscreen mode is entered.
see through missing Select this checkbox to see through missing media in the timeline,
media displaying the first displayable media in the underlying tracks.
background Use this to select the Viewer background. You can select black, or gray
(using the slider to determine the grayscale), or checkerboard (using the
slider to determine the size of the squares).
frame increment Use this to set the default number of frames skipped by the Viewer skip
controls, and the timeline Nudge More commands.
filtering mode Use this to determine the filtering used during rendering in the Timeline
environment. You can select Auto, Nearest neighbour, or Linear.
Audio
default latency Use this to adjust the default timing offset (in milliseconds) between audio
adjustment (ms) and video to apply to new Viewers. Positive values make audio play earlier
relative to video; negative values make audio play later. To convert from
video frames to ms, divide 1000 ms by the video frame rate. For example:
• at 25fps, a video frame is 1000/25 = 40ms, or
• a 1.5 video frame delay = 1.5 * 40ms = 60ms.
default volume Use the slider or numeric field to set the default volume.
USER GUIDE
1975
Appendix A: Preferences | Panels
Viewer Handles
Colors
Splines
line width Sets the width of splines drawn in RotoPaint and SplineWarp.
draw shadows When enabled, shadows are added to splines drawn in RotoPaint and
SplineWarp to make the overlay easier to see.
general • Expression color – Change the default color of the control points when
an expression is set.
• Focus color – Change the default color of the control points when
focused.
roto • Points - Change the default color of the points on RotoPaint shapes and
strokes.
• Curves - Change the default color of the rotoshape and stroke curves in
RotoPaint and Roto.
• Transform - Change the default color of the RotoPaint transform jack.
• Locked - Change the default color of RotoPaint points and curves when
locked or otherwise unmodifiable.
USER GUIDE
1976
Appendix A: Preferences | Panels
Viewer Handles
destination curves.
• B Destinationcolor - Change the default color of SplineWarp’s B
destination curves.
• draw destination stippled - Check to change destination curves from
solid to stippled.
• Correspondencecolor - Change the default color of the SplineWarp
correspondence lines.
• Boundarycolor - Change the default color of the SplineWarp boundary
curves.
• Hardboundarycolor - Change the default color of the SplineWarp hard
boundary curves.
Note: To set a color back to its default, right-click on the button and select Set Color to
Default.
Controls
middle button pans Check this to use the middle-mouse button to pan in the Viewer, Node
Graph, the Curve Editor, and the Dope Sheet.
left-middle to zoom Check this to use the left and the middle-mouse button together to zoom
in the Viewer, Node Graph, the Curve Editor, and the Dope Sheet.
show transform Check this to disable the OpenGL preview when manipulating the handles
preview of 2D nodes, such as Transform and CornerPin.
3D control type Select the navigation control scheme you want to use in the 3D Viewer:
Nuke, Maya, Houdini, Lightwave, or Modo.
2D handle size Adjust the size of the square control handles that appear on the Viewer for
some operations, such as transformations, warps, and Bezier and B-spline
shapes.
USER GUIDE
1977
Appendix A: Preferences | Panels
Viewer Handles
By default, this value is set to 5. You can also set the pickable area size of
the square control handles in the numeric field or slider to the right of the
2D handle size control.
3D handle size Adjust the size of the square control handles that appear when you’re, for
instance, selecting vertices on a 3D object in the 3D view. By default, this
value is set to 5. You can also set the pickable area size of the square
control handles in the numeric field or slider to the right of the 3D handle
size control.
icon size Adjust the size of the 2D transformation overlay, 3D camera, 3D object
normals, and 3D axis on the Viewer. By default, this value is set to 50.
icon scaling Adjust how much the scale of display affects the size of the 2D
transformation overlay, 3D camera, and 3D axis. When this is set to 0,
these controls are always drawn the same size, regardless of the zoom
level. When the value is set to 1, the controls scale with the displayed
image or 3D scene when you zoom in or out.
Intermediate values mix this so that the controls do scale, but not as much
as the image does. This gives an optical illusion that you are zooming in or
out without making the controls unusably small or large.
object interaction Set how fast mouse movements rotate and translate 3D axis and cameras.
speed The lower the value, the finer the movements. The default value is 1.
camera interaction Set how fast mouse movements tumble and roll the 3D view in the Viewer.
speed The lower the value, the finer the movements. The default value is 1.
USER GUIDE
1978
Appendix B: Keyboard Shortcuts
Keyboard shortcuts, or hotkeys, provide quick access to the features of Nuke. The following tables
show these keystrokes.
Conventions
The following conventions apply to instructions for mouse-clicks and key presses.
• LMB means click or press the left mouse button.
• MMB means click or press the middle mouse button
• RMB means click or press the right mouse button.
• When you see the word “drag” after a mouse button abbreviation (i.e., “MMB drag”), this tells you to
press and hold the mouse button while dragging the mouse pointer.
• Keystroke combinations with the Ctrl, Alt, and Shift keys tell you to press and hold the key and then
type the specified letter.
For example, “Press Ctrl+S” means hold down the Ctrl key, press S, and then release both keys.
Note: On Mac, replace the Ctrl key with the Cmd key.
Note: Keystrokes in the tables appear in upper case, but you do not type them as upper
case. If the Shift+modifier does not appear before the letter, just press the letter key alone.
Note: This section assumes you are using the default keyboard and mouse-button
assignments. If the mouse buttons do not work for you as described here, try resetting the
mouse control type back to the standard Nuke setting (Preferences > Panels > Viewer
Handles > 3D control type > Nuke).
USER GUIDE
1979
Appendix B: Keyboard Shortcuts | Global
Global
Keystroke(s) Action
Space bar (short Expand the focused panel to the full window
press)
Ctrl+F# Save current window layout. The # represents a function key number, F1
through F6
Ctrl+T Cycle through tabs in the current pane. Note that this does not work if the
focus is on the input pane of the Script Editor
USER GUIDE
1980
Appendix B: Keyboard Shortcuts | Nuke Studio's Timeline Viewer
Keystroke(s) Action
Ctrl+Shift+S Save current project or script, depending on environment, and specify name
(Save As)
- Zoom Out
+ Zoom In
A Alpha
B Blue
USER GUIDE
1981
Appendix B: Keyboard Shortcuts | Nuke Studio's Timeline Viewer
Keystroke(s) Action
C Razor selected
E Clipping Warning
End Go to End
F Zoom to Fit
G Green
H Zoom to Fill
Home Go to Start
I Mark In point
J Play Backward
K Pause
L Play Forward
Q Show Overlays
R Red
W Wipe
Y Luma
USER GUIDE
1982
Appendix B: Keyboard Shortcuts | Nuke Studio's Timeline Viewer
Keystroke(s) Action
Shift+I Go to In Point
USER GUIDE
1983
Appendix B: Keyboard Shortcuts | Nuke Studio's Timeline
Keystroke(s) Action
M Insert the contents of a source Viewer into the timeline at the current playhead
position overwriting existing shots
USER GUIDE
1984
Appendix B: Keyboard Shortcuts | Nuke Studio's Timeline
Keystroke(s) Action
N Insert the contents of a source Viewer into the timeline at the current playhead
position and ripple existing shots downstream to accommodate the change
Q Cycles between the available move tools: Multi, Move/Trim, and Select
R Cycles between the available edit tools: Ripple, Roll, and Retime
T Cycles between the available razor tools: Razor, Razor All, and Join
U Mark clip
Alt+, (comma) Nudge selected shot(s) up, overwriting any clips on the tracks above
Alt+. (period) Nudge selected shot(s) down, overwriting any clips on the tracks below
Alt+LMB Select a clip, ignoring linked tracks (for example, audio only)
USER GUIDE
1985
Appendix B: Keyboard Shortcuts | 2D Compositing Viewer
Keystroke(s) Action
Shift+, (comma) Nudge selected shot(s) left by the increment amount set under the Viewer,
where space is available
Shift+. (period) Nudge selected shot(s) right by the increment amount set under the Viewer,
where space is available
2D Compositing Viewer
Keystroke(s) Action
- Zoom Out
USER GUIDE
1986
Appendix B: Keyboard Shortcuts | 2D Compositing Viewer
Keystroke(s) Action
+ Zoom In
H Zoom to Fill
I Mark In point
J Play Backward
K Pause
L Play Forward
USER GUIDE
1987
Appendix B: Keyboard Shortcuts | 2D Compositing Viewer
Keystroke(s) Action
Q Toggle overlays
Note: You can't use the S keyboard shortcut to open Viewer properties
when Roto or RotoPaint properties are open.
Alt+LMB Pan
USER GUIDE
1988
Appendix B: Keyboard Shortcuts | 2D Compositing Viewer
Keystroke(s) Action
Ctrl+Left Arrow Move the playhead backwards by 1/2 the distance from the playhead to the in
point (subsequent key strokes recalculate the distance before applying the
move)
Ctrl+Right Arrow Move the playhead forwards by 1/2 the distance from the playhead to the out
point (subsequent key strokes recalculate the distance before applying the
move)
LMB + MMB and Zoom in and out with the click point set as the center of the Viewer
drag
MMB and RMB Toggle between the last specified range (MMB and drag) and Visible mode
MMB and drag Zooms the time slider to the range specified by the drag operation
(time slider)
USER GUIDE
1989
Appendix B: Keyboard Shortcuts | 2D Compositing Viewer
Keystroke(s) Action
Shift+Left Arrow Move the playhead backward by the amount of frames specified in the skip
frames control
Shift+Right Move the playhead forward by the amount of frames specified in the skip
Arrow frames control
The script name must include _v# for the increment to work as expected. For
example, myScript_v01.nk
USER GUIDE
1990
Appendix B: Keyboard Shortcuts | 3D Compositing Viewer
3D Compositing Viewer
Keystroke(s) Action
C 3D Top view
V 3D Perspective view
X 3D right-side view
Z 3D front view
USER GUIDE
1991
Appendix B: Keyboard Shortcuts | Node Graph
Node Graph
Keystroke(s) Action
– Zoom-out
1, 2, 3, etc. With a node selected in the Node Graph, create/connect Viewer inputs
With no nodes selected in the Node Graph, cycle through connected views
+ Zoom-in
D Disable/Enable node
F Fit selected nodes to Node Graph panel or, if no nodes selected, fits all nodes to
Node Graph panel
USER GUIDE
1992
Appendix B: Keyboard Shortcuts | Node Graph
Keystroke(s) Action
Numeric pad Navigate around the node tree in the direction specified. For example, pressing
arrow keys the left arrow key (4) selects the next node to the left of the current node in the
tree.
Y With two or more nodes selected, splay the inputs of the first node selected to
the outputs of subsequent node selections upstream
Note: If more than two nodes are selected that don't have multiple
inputs, Y ignores all nodes except the first two selections.
USER GUIDE
1993
Appendix B: Keyboard Shortcuts | Node Graph
Keystroke(s) Action
Alt+Down Arrow Version down the current Read/Write node file name
Alt+I Display script information, such as the node count, channel count, cache usage,
and whether the script is in full-res or proxy mode
Alt+U With two or more nodes selected, splay first selected node to input A of all
subsequent selections
Tip: When enabled, the output from the nodes is cached so that it can
be re-read quickly. A yellow line displays under the nodes to indicate
that caching is enabled.
USER GUIDE
1994
Appendix B: Keyboard Shortcuts | Node Graph
Keystroke(s) Action
Ctrl+create node Replace selected node with new node, such as Ctrl+B to replace the target with a
Blur node
Ctrl+L Collapse selected nodes to a LiveGroup or, if no nodes are selected, create an
empty LiveGroup
LMB + MMB and Zoom in and out with the click point set as the center of the Node Graph
drag
Shift+create node Create node in new branch, such as Shift+B to create a Blur node in a new
branch
USER GUIDE
1995
Appendix B: Keyboard Shortcuts | Node Graph
Keystroke(s) Action
Shift+U With two or more nodes selected, splay first selected node to input B of all
subsequent selections
Shift+Y With two or more nodes selected, splay the outputs of the selected nodes to the
inputs of the last node selected downstream
Note: If more than two nodes are selected that don't have multiple
inputs, Shift+Y ignores all nodes except the last two selections.
Alt+Shift+U With two or more nodes selected, splay last selected node to input A of all
previous selections
Ctrl+Alt+V Paste knob values to a node of the same class as the copy operation
USER GUIDE
1996
Appendix B: Keyboard Shortcuts | Project/Tags/Versions Bin
Keystroke(s) Action
Ctrl+Shift+V Paste a copied node into a new branch from an existing node
Project/Tags/Versions Bin
Keystroke(s) Action
D Hide version(s) of a clip. You can only hide versions when a clip is opened in the
Versions Bin
F8 Refresh clips
USER GUIDE
1997
Appendix B: Keyboard Shortcuts | Properties Panel
Keystroke(s) Action
Ctrl+Y Create a new tag. You can only add tags to the Tags panel
Properties Panel
Keystroke(s) Action
1, 2, 3, etc. With a node selected in the Node Graph, create/connect Viewer inputsWith no
nodes selected in the Node Graph, cycle through connected views
D Disable/Enable node
USER GUIDE
1998
Appendix B: Keyboard Shortcuts | Properties Panel
Keystroke(s) Action
Y With two or more nodes selected, splay the inputs of the first node selected to
the outputs of subsequent node selections upstream
Note: If more than two nodes are selected that don't have multiple
inputs, Y ignores all nodes except the first two selections.
LMB and drag Copy current value from one control to another
USER GUIDE
1999
Appendix B: Keyboard Shortcuts | Properties Panel
Keystroke(s) Action
MMB and drag Adjust control values using virtual slider (regular)
Alt+P Toggle postage stamp on and off for selected Properties panel
Alt+U With two or more nodes selected, splay first selected node to input A of all
subsequent selections
Tip: When enabled, the output from the nodes is cached so that it can
be re-read quickly. A yellow line displays under the nodes to indicate
that caching is enabled.
USER GUIDE
2000
Appendix B: Keyboard Shortcuts | Properties Panel
Keystroke(s) Action
Ctrl+L Collapse selected nodes to a LiveGroup or, if no nodes are selected, create an
empty LiveGroup
Shift+create node Create node in new branch, such as Shift+B to create a Blur node in a new
branch
Shift+U With two or more nodes selected, splay first selected node to input B of all
subsequent selections
Shift+Y With two or more nodes selected, splay the outputs of the selected nodes to the
inputs of the last node selected downstream
Note: If more than two nodes are selected that don't have multiple
inputs, Shift+Y ignores all nodes except the last two selections.
Alt+LMB drag Adjust control values using virtual slider (magnitude dependent on cursor
position)
USER GUIDE
2001
Appendix B: Keyboard Shortcuts | Properties Panel
Keystroke(s) Action
Alt+Shift+U With two or more nodes selected, splay last selected node to input A of all
previous selections
Ctrl+Alt+A (on a Select all nodes connected to the target node's tree
node)
Ctrl+Alt+V Paste knob values to a node of the same class as the copy operation
Ctrl+Shift+/ Search and Replace strings in selected Read and Write nodes
Ctrl+Shift+V Paste a copied node into a new branch from an existing node
USER GUIDE
2002
Appendix B: Keyboard Shortcuts | Curve Editor/Dope Sheet
C Interpolation (Cubic)
H Interpolation (Horizontal)
K Interpolation (Constant)
L Interpolation (Linear)
MMB drag Draw box in area and zoom to fit area to curve editor panel
R Interpolation (Catmull-Rom)
USER GUIDE
2003
Appendix B: Keyboard Shortcuts | Script Editor
Keystroke(s) Action
Script Editor
Keystroke(s) Action
USER GUIDE
2004
Appendix B: Keyboard Shortcuts | Roto/RotoPaint
Keystroke(s) Action
Roto/RotoPaint
Keystroke(s) Action
D Toggle Dodge/Burn
I Pick color
N Toggle Brush/Eraser
USER GUIDE
2005
Appendix B: Keyboard Shortcuts | Roto/RotoPaint
Keystroke(s) Action
USER GUIDE
2006
Appendix C: Supported File
Formats
Notes
When importing and exporting files, remember the following:
• When you import images with a Read node (Image > Read), Nuke analyzes the contents of the file
to determine the format. The file name extension is not used to determine file format, which allows
flexibility with naming conventions in a production environment.
• Regardless of format, Nuke converts all imported image sequences to its native 32-bit linear RGB
colorspace.
• When you render new images from Nuke (Image > Write), you can use a file name extension to
specify format.
• To import and export geometry objects from Alembic, FBX, or OBJ files, use the ReadGeo node (3D >
Geometry > ReadGeo). To write them out again, use the WriteGeo node (3D > Geometry >
WriteGeo). To import cameras or transforms from Alembic or FBX files, use the Camera node (3D >
Camera). To import lights from an FBX file, use the Light node (3D > Lights > Light).
• To import deep images (either in DTEX or scanline OpenEXR format), use a DeepRead node (Deep >
DeepRead). To export deep images (in scanline OpenEXR format), use a DeepWrite node (Deep >
DeepWrite).
Alembic n/a read and abc You can read meshes, point clouds, cameras,
USER GUIDE
2007
Appendix C: Supported File Formats |
Apple 8, 10 read and mov Adds support for Apple ProRes 4444 and
ProRes write Apple ProRes 422 on Mac, Linux, and
Windows using the mov64 reader.
AVI n/a read and avi AVI files can be supported by default or via
write Nuke’s reader/writer that is based on the
FFmpeg open source library. If you get an
error when using AVI files in Read nodes, you
may need to use the prefix mov64: before the
file path and file name, for example:
mov64:z:/job/FILM/IMG/final_comp_
v01.####.avi
USER GUIDE
2008
Appendix C: Supported File Formats |
DPX 8, 10, 12, read and dpx YCbCr encoded DPX files are not supported on
and 16 write the timeline.
DTEX 32 read only dtex To use DTEX files, you need Pixar’s
PhotoRealistic RenderMan® Pro Server 20, or
earlier, on your computer.
FBX read and fbx You can read meshes, point clouds, cameras,
write lights, and transforms from FBX files into a
Nuke scene using the ReadGeo, Camera,
Light, and Axis nodes.
Radiance 16 read and hdr, hdri This format stores an 8-bit mantissa for each
write of r, g, and b and an additional 8-bit exponent
that is shared by all three, which packs the
floating point RGB triplet into 32 bits per
pixel.
JPEG 8 read and jpg, jpeg Adjust compression levels using the quality
write slider in the Write node’s properties panel.
USER GUIDE
2009
Appendix C: Supported File Formats |
OpenEXR 16, 32 read and exr OpenEXR handles 16- and 32-bit float. This 16
write is also called "half float" and is different from
and the 16-bit integer that all the other formats
OpenEXR that support 16-bit use.
2.2 Nuke supports multi-part OpenEXR files. For
more information, see Notes on Importing
OpenEXR Files and Notes on Rendering
OpenEXR Files.
USER GUIDE
2010
Appendix C: Supported File Formats |
EXR Compression
EXR file metadata contains a compression key/value pair detailing the compression type used to
write the .exr file. The value is expressed as the name of the compression type or an integer
referencing the compression used:
0 - no compression
7 - B44A compression, lossy 4-by-4 pixel block, flat fields are compressed more
9 - DWAB compression, lossy DCT based compression, in blocks of 256 scan lines
USER GUIDE
2011
Appendix C: Supported File Formats |
• Photo - JPEG
• MPEG-1 Video
• MPEG-4 Video
• PNG
• Animation
• Uncompressed 10-bit 4:2:2
The bit rates listed in the codec profile dropdown are the bit rates for 1080p at 29.97 fps EXCEPT for
36 (which is actually 45 Mbps @ 29.97fps). You should look at the codec format (422/444, 8/10-bit).
USER GUIDE
2012
Appendix C: Supported File Formats |
Note: Nuke only supports 1080p and 720p. Non-HD resolutions are scaled to 1080p
before writing.
At 720p, the codec profile dropdown has a different interpretation. The bit rate is taken as the bit
rate at 720p at 59.94fps. This leads to another set of bit rates:
• 720p/59.94 N/A, 220x, 220, 145, N/A
• 720p/50 N/A, 175x, 175, 115, N/A
• 720p/29.97 N/A, 110x, 110, 75, N/A
• 720p/25 N/A, 90x, 90, 60, N/A
• 720p/23.976 N/A, 90x, 90, 60, N/A
Note: Since the bit rates are for 1080p at 29.97 fps AND 720p at 59.94 fps (except for 36
Mbit which should read 45 Mbit). It is possible to calculate the bandwidth for all the other
frame rates by:
RAW n/a read only n/a DSLR raw data files, such as Canon .CR2 files.
These are only supported via the dcraw
USER GUIDE
2013
Appendix C: Supported File Formats |
REDCODE 16 read only r3d Note that .r3d files may look different in Nuke
compared to various versions of RED
applications, like RED ALERT or REDCINE.
Unlike most other file formats Nuke reads,
the .r3d REDCODE files must be processed to
convert from a raw format to an RGB color
image. From time to time, a new version of
the RED SDK that Nuke uses improves this
processing and due to the timing of release
cycles, Nuke may sometimes be using a
different version than the RED applications.
sgi16 (for
16-bit
sequences)
PIC
TIFF 8, 16, and read and tif, tiff (8- If utilized, the compression schema on
32 write bit imported TIFF sequences must be LZW®.
sequences)
tif16, tiff16
(16-bit
sequences)
ftif, ftiff
USER GUIDE
2014
Appendix C: Supported File Formats |
(32-bit
sequences)
RLA
XPM 8 read and xpm This is the text-based format in which Nuke’s
write interface elements are stored.
YUV 8 read and yuv This format does not specify resolution, so
write Nuke assumes a width of 720 pixels.
USER GUIDE
2015
Supported Camera Formats |
ALEXA Classic
ALEXA XT
ALEXA SXT(W)
ALEXA LF
ALEXA 65
ALEXA Mini
AMIRA
Note: Nuke, Nuke Studio, and Hiero do not support .mxf from the AMIRA camera.
R3D (.r3d)
MONSTRO 8K VV
HELIUM 8K S35
SCARLET-W 5K
WEAPON DRAGON 6K
EPIC/SCARLET DRAGON
MYSTERIUM-X
USER GUIDE
2016
Supported Camera Formats |
MYSTERIUM-X MONOCHROME
SONY (.mxf)
F5
F55
F65
FS700
VENICE
USER GUIDE
2017
Supported Audio Formats |
Note: Although Nuke supports the import and editing of multi-channel audio, during
playback audio is currently mixed to 48 KHz stereo output.
All platforms
Wave wav
USER GUIDE
2018
Appendix D: External Software
Third-Party Contributions
The following table lists third-party contributions included in Nuke, along with their licenses.
1. Definitions
2. Grant of Rights
(B) Patent Grant- Subject to the terms of this license, including the
license conditions and limitations in section 3, each contributor
grants you a non-exclusive, worldwide, royalty-free license under its
licensed patents to make, have made, use, sell, offer for sale,
USER GUIDE
2019
Appendix D: External Software | Third-Party Contributions
(A) No Trademark License- This license does not grant you rights to
use any contributor's name, logo, or trademarks.
(B) If you bring a patent claim against any contributor over patents
that you claim are infringed by the software, your patent license
from such contributor to the software ends automatically.
(C) If you distribute any portion of the software, you must retain all
copyright, patent, trademark, and attribution notices that are
present in the software.
(D) If you distribute any portion of the software in source code form,
you may do so only under this license by including a complete copy
of this license with your distribution. If you distribute any portion of
the software in compiled or object code form, you may only do so
under a license that complies with this license.
(E) The software is licensed "as-is." You bear the risk of using it. The
contributors give no express warranties, guarantees or conditions.
You may have additional consumer rights under your local laws
which this license cannot change.
USER GUIDE
2020
Third-Party Libraries and Fonts | Third-Party Library Versions
Version
CUDA 8.0 & 6.5 8.0 & 6.5 8.0 & 6.5
USER GUIDE
2021
Third-Party Libraries and Fonts | Third-Party Library Versions
Version
GCC 4.8.2 - with bugfix 4.8.2 - with bugfix 4.8.2 - with bugfix
JPEG 6b 6b 6b
USER GUIDE
2022
Third-Party Libraries and Fonts | Third-Party Library Versions
Version
PoissonRecon V2 V2 V2
USER GUIDE
2023
Third-Party Libraries and Fonts | Third-Party Library Versions
Version
USER GUIDE
2024
Third-Party Libraries and Fonts | Third-Party Library Versions
Version
For a full list of all third-party licenses and fonts used in Nuke, please see the Nuke Online Help,
Third-Party Libraries and Fonts, or click here.
USER GUIDE
2025