A Viewer’s on-screen controls let you navigate the timeline, display channels, zoom, choose cameras (3D mode), and create display wipes and composites.
There are many useful tools at the top of the Viewer, some of which allow you to select layers and channels, adjust gain and gamma, and zoom and scale down the image in the Viewer.
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.
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.
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.
The following table lists the functions of the playback buttons:
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 sequence in a loop. |
|
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. |
You can move quickly to a specific frame on the timeline by choosing Viewer > Go to frame (or by pressing Alt+G), entering a frame number in the dialog that appears, and clicking OK.
The 'Lock All Viewer Playback Ranges' button allows you to toggle synchronized playback of Viewer windows. By default, all Viewers are locked - that is, if you cue to a frame in one Viewer, all other Viewers follow suit.
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.
The 'Pause Viewer Update' button stops the Viewer from updating and holds the last frame rendered. To reactivate display rendering for all frames, press the button again.
You can click the 'Refresh Viewer' button (or press U) to manually update the display while keeping Viewer paused.
You can press the R, G, B, and A keys on your keyboard to display the red, green, blue, and alpha channels respectively. Or, you can also select a channel from the RGB dropdown menu in the top-left corner.
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.
The layer dropdown menu lets you choose a set of color channels to display in the Viewer. By default, this is set to display the rgba layer, but you can choose any layer in the data stream.
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.
When you’ve read in an image that has an alpha channel, you can display the alpha channel as a red overlay on top of the image’s red, green, and blue channels.
1. | Select Image > Read to read in an image. |
2. | Connect a Viewer node to the Read node. |
By default, Nuke displays the red, green, and blue channels in the Viewer.
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.
5. | To return to the RGB display, press M again. |
The info bar displays information about the image format, bounding box, and pixel underlying the pointer, a sampled pixel or region of pixels. From left to right, the indicator displays the following about the current image and pixel or sample: image resolution and the size of the bounding box, the pixel's x and y position and its Red, Green, Blue, and Alpha values, and other values depending on the color type you have selected from the color type menu on the right.
Color Type |
Description |
Values for RGB 0.1, 0.1, 0.1, 1.0 (Dark Gray) |
---|---|---|
Spotmeter |
Colorspace values measured in f-stops at 1/48th of a second shutter speed. |
f/5.9 @48th sec |
8-bit |
RGB colorspace values. |
25, 25, 25, 255 |
8-bit Hex |
The same colorspace values as 8-bit, but displayed in hexadecimal. |
1A 1A 1A FF |
log |
Logarithmic colorspace values. |
397, 397, 397 |
HSVL |
The default setting, shows colorspace values as Hue, Saturation, Value, and Level. |
0, 0.00, 0.10, 0.10000 |
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.
To cancel a pixel selection, hold Ctrl/Cmd and right-click in the Viewer.
The Zoom dropdown menu lets you select the magnification factor by which the current image is displayed. This menu also shows the keyboard shortcuts to press to quickly switch between the different zoom settings.
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).
|
Proxy display resolution defined on the Project Settings properties panel. |
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
Viewers also have a dropdown menu that allows you to easily switch to lower display resolutions, regardless of whether you have activated proxy mode or not. Using this multiplier setting, you can, for example, change the display resolution of an individual Viewer to 50% of the current (be it full-size or proxy) resolution. This is useful if you want to have Nuke display your images more quickly without having to touch the project settings. It also comes in handy if you have just a few very large plates in your script, as you can choose to use lower resolutions when viewing just these plates.
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.
The pixel aspect ratio determines whether your images are displayed using square or rectangular pixels. By default, the Viewer uses the pixel aspect ratio defined in your project settings. To see the current setting, select Edit > Project Settings (or press S).
For example, a pixel aspect ratio of 2 accurately displays anamorphic footage the way it is projected, as shown in the image below:
|
The Viewer uses the pixel aspect ratio defined for the script. |
If you want to ignore the pixel aspect ratio, you can toggle it by pressing Ctrl/Cmd+Shift+P over the Viewer window.
|
Press Ctrl/Cmd+Shift+P over the Viewer window to ignore the pixel aspect ratio. |
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, 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.
The ROI button lets you enable rendering only through a region of interest - a portion of the image you explicitly select. This is useful for quickly viewing render results in a process-heavy script.
1. | Click on the ROI button in the Viewer controls. The ROI overlay appears. |
2. | Drag to resize and move the ROI overlay as necessary. |
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. |
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). |
The gain and gamma sliders let you adjust the displayed image, without affecting your final output. These controls are useful for tasks like spotting holes in mattes. You can boost or reduce gain by entering a multiplier (exposure value), dragging on the slider, or using the F-Stop arrows. Boost or reduce gamma by entering a gamma level or dragging the gamma slider.
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.
The Viewer guides and masks assist with placing effects and text within the current format. For example, text placed with the Title Safe guide is visible to the audience. Use the Guideline and Mask dropdown menus to select the required overlays.
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.
• action safe - any visual elements intended for the audience should reside within this zone.
• format center - overlays a crosshair in the center of the format area.
• 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.
• lines - any mask applied is highlighted using a pair of lines in the Viewer.
• half - any mask applied is highlighted using semi-transparent shading.
• full - any mask applied is highlighted using black shading.
• 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.
You can add custom guides and masks to the Viewer dropdowns by creating a file called custom_guides.py and placing it in your .nuke folder.
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)
The wipe control provides an option for displaying a split-screen of two images, which can help you compare before and after versions for color correction, filtering, and other image manipulation. This control also includes display compositing options to overlay different images.
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. |
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.
5. | Drag the handles of the crosshair to adjust the wipe: |
• Drag the crosshair center to change its position.
• Drag the long handle (on the right) to rotate the wipe.
• Drag the “arc” handle to cross-dissolve the second image.
6. | When finished with the split-screen, select none (-) from the Viewer composite dropdown menu. |
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 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.
Special thanks to for use of the above footage.
The 2D / 3D dropdown menu lets you toggle between 2D and 3D display modes in the current Viewer. This menu also lets you choose between different orthographic (non-perspective) views when working in the 3D mode.
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.
Input Process and Viewer Process operations can be used to modify the image from the viewed node before it is displayed on your monitor. Both only affect the Viewer in which they are activated and do not affect your rendered output. Input Process is a legacy system which uses a node instantiated in the Node Graph to process the image. This is handy for script-specific, temporary, or experimental use, but can be error prone due to the node accidentally being deleted or changed and is limited to a single node. The Viewer Process system allows a gizmo (or compiled node) to be registered from the Python programming language at start-up. The registered item appears in a 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.
Input Process |
Viewer Process |
Set by selecting the node in the Node Graph and choosing Edit > Node > Use as Input Process. |
Registered using Python. |
Activated using the IP button in the Viewer controls. |
Activated using the Viewer Process dropdown menu in the Viewer controls. |
Requires that the node exists in the Node Graph. Can quickly and easily be modified by artists. Can also be accidentally deleted, disabling the effect. |
Is defined in a text file called menu.py that is run at start-up. Accessible for artists, but not likely to be accidentally modified or deleted. |
Script dependent. Unless your Input Process node is saved in the template.nk file that is loaded at start-up, the Input Process is lost when you restart Nuke. |
Session independent. The Viewer Processes registered in menu.py are always available in each new session of Nuke. |
There can only be one Input Process at a time. Setting a new Input Process overrides any previously used Input Process. |
There can be an unlimited number of Viewer Processes available in the Viewer 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 options that you want in the current shot for convenience, or for testing Viewer Processes 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. |
Useful for viewing options that you often need or that should not be modified by artists on a shot-by-shot basis. |
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 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 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.
The monitor output button – which automatically appears when you connect an external monitor – allows you to preview the current Viewer image on an external broadcast video monitor.
NOTE: For more information, see Previewing on an External Broadcast Video Monitor
|