Viewers |
You can create as many Viewers as you want, each dynamically updated in any channel you choose from any node you choose. You can therefore watch the behavior downstream to see the effects of a node you modify upstream.
Each Viewer has a set of two buffers to compare images, or you can create multiple Viewers by pressing N with the cursor in the Viewer area. If you have multiple Viewers, double-clicking in a Viewer window selects that Viewer and displays the currently viewed node in it. The next time you click on the left side of a node to view it, it displays in the active Viewer. To switch to a different Viewer, double-click it.
The Viewers take up memory, so if rendering, you may want to close your higher-resolution viewers. Additionally, the more Viewers you have, the slower your display rate is.
If you are getting strange Viewer behavior, delete the Viewer, and create
a new one by pressing N.
You can create a separate Viewer workspace to be used on a second monitor with the menu function Spawn Viewer Desktop in the View menu. This only works if the second monitor is being run from the same graphics card.
In order to protect you from accidentally rendering an enormous image (whoops
put 200 instead of 20 into your zoom parameter?) the Viewer's resolution
is limited to 4k. This limit is configurable (see Maximum
Viewer Resolution). It has no effect on rendered images it only
crops the view in the GUI to the set resolution.
In this image, the vanilla node is loaded into Viewer 1, buffer A.
The Pixel Analyzer and Color Picker windows can help you analyze this data.
Many buttons correspond to a Right mouse menu selection with the same function. You can also select the setting from the menu.
Some of the buttons have different behaviors between clicking and holding.
For example,
clicking... | holding down... |
![]() |
![]() |
Override the default choices of clicking progression by Ctrl+clicking.
For example, when you are on RGB View and you click, you go
to Alpha View. When you click again, you return to RGB
View. To modify this to go from RGB View to Red
View to Alpha View, do the following steps:
Some Viewer functions have number keys to cycle through them, i.e. 2 will toggle through the channels. Shift+2 will toggle backwards. Nobody uses these except button 1, which toggles the compare buffers.
Function
|
Keyboard
|
Notes
|
![]() |
Drag the cursor over the window and X, Y position, and RGBA color values are printed in the top of the screen | |
![]() |
Stows the current viewer. | |
![]() |
Ctrl+F | Fits the Frame to the Image. |
![]() |
Shift+F | Fits the Frame to fit the entire Viewer Workspsace. When down, the Viewer "sticks" to the Workspace. You can therefore resize the workspace and the Viewer will expand to match. |
![]() |
Right Menu: Delete | Deletes the Viewer. A good strategy if anything bizarre is happening. Create a new viewer by pressing N. |
![]() |
1 | Buffer tabs. You can have two different buffers in a viewer to compare images. See Using the Compare Buffers, below. |
![]() |
R,G,B,A,C 2/Shift+2 cycle |
Toggles through different color channels. |
![]() |
3/Shift+3 | This update mode displays a rendered image only after it is finished rendering. This is for relatively fast renders. |
![]() |
3/Shift+3 | Scrolling update mode. Displays each line, starting from the bottom, as the image renders. Used for slower renders. |
![]() |
3/Shift+3 | No Update. The Viewer never updates until this is deactivated. Use this to load an image into a Viewer, then switch to the second buffer (see below) and do some changes. You can then compare it with the original. |
![]() |
Incremental Viewer Update. Only updates the portion of the image which changes. As an example, if you composite a 10x10 pixel element on top of a 6k plate and panned it around, the entire 6k plate would have to be updated if this is deactivated. Only the actual 10x10 pixel area is updated when this is turned on. There are still a few update glitches, mainly when doing filter operations. To fix this, turn off the Incremental Update and adjust again the glitches are corrected. This button has no effect on the output file or batch rendering speed, only on the image in the Viewer. | |
![]() |
Activates Viewer Lookups. VLuts differ from Viewer Scripts in that you can scrub from the unmodified plate. See Viewer Lookups, ROI and Scripts, below. | |
![]() |
Gain/Offset/LogLin - allows you to apply different quick lookups to your image. See Viewer Lookups, ROI and Scripts, below. | |
![]() |
Turns on the ROI Rendering. This limits your rendering area. See Viewer Lookups, ROI and Scripts, below. | |
![]() |
4/Shift+4 | Viewer Scripts. See Viewer Lookups, ROI and Scripts, below. |
![]() |
Applies aperture markings. See Viewer Lookups, ROI and Scripts, below. | |
![]() |
Applies a PlotScanline. See Viewer Lookups, ROI and Scripts, below. | |
![]() |
Applies a Histogram. See Viewer Lookups, ROI and Scripts, below. | |
![]() |
Views the Z channel. See Viewer Lookups, ROI and Scripts, below. | |
![]() |
Displays superwhite and subzero pixels. See Viewer Lookups, ROI and Scripts, below. | |
![]() |
5/Shift+5 | Off Compare mode. Only one buffer is displayed. See Using the Compare Buffers, below. |
![]() |
5/Shift+5 | Horizontal Compare mode. See Using the Compare Buffers, below. |
![]() |
5/Shift+5 | Vertical Compare mode. See Using the Compare Buffers, below. |
![]() |
5/Shift+5 | Fade Compare mode. See Using the Compare Buffers, below. |
![]() |
DOD/Frame display toggle. Displays the green Domain of Definition (either created automatically by Shake, or manually with SetDOD) and the red border. It has no effect on processing or the rendered image. | |
![]() |
Home | Centers the image and sets the zoom level to 1:1. |
![]() |
F | Fit the image to the Frame. Be careful, since you may get a non-integer zoom (for example, instead of 2:1, you get 2.355:1), which might give you display artifacts. Don't use this when massaging pixels. |
![]() |
Flipbook button to render a RAM-based image player. |
These generic buttons appear for many functions with onscreen controls. For more information on onscreen controls, jump to onscreen Controls.
Function
|
Notes
|
![]() |
AutoKey is on. Whenever you move an onscreen control, you are be entering a keyframe. |
![]() |
Always display the onscreen control when those parameters are loaded. |
![]() |
Turn off the onscreen control display when actually modifying the image. They return when you release the mouse. |
![]() |
Turn off the onscreen controls. |
![]() |
Delete Key at the current frame. This is used because controls for functions like Move2D enter keyframes on xPan, yPan, xScale, yScale, and angle simultaneously. Therefore, Delete Key delete from all of these parameters. |
![]() |
X/Y Lock Button. Indicates that you can move a control in both X and Y directions. |
![]() |
Indicates that you can move a control in only the X direction. |
![]() |
Indicates that you can move a control in only the Y direction. |
![]() |
Press this to change the color of the onscreen control. |
![]() |
Motion Path Display Button. Displays both the path and the key positions. You can grab the keys and move them onscreen. |
![]() |
Displays just the key positions. |
![]() |
Does not display the path or the keys in the Viewer. |
You can load two images at once into a Viewer by using the A and B buffers. In this example, there are two images, both from the pix/keylight tutorial.
Switch over to buffer B either by clicking on the B tab, or by pressing 1 (above the Tab key, not on the NumPad).
Click on the left side of the second image you want to look at.
Now, by pressing 1 repeatedly, you switch buffers. Naturally, you
can also press the A and B tabs.
Notice how the Compare button at the bottom of the Viewer indicates you are
in vertical mode .
To remove the compare, switch off Compare .
Turn the compare back on by grabbing the C in the corner again. If you
drag on the right highlighted edge, you get a horizontal compare. To turn
it back into a vertical comprae, drag on the lower highlighted edge:
If it isn't the compare mode, check to see if your Update button isn't
turned off: If that isn't the problem, check the manual update mode on the top of
the interface: OK, now you can rant on the Shake list. |
There are three similar ways of affecting how your images are viewed, which
are the Viewer Lookups (VLuts) ,
the Viewer DOD
and Viewer Scripts
.
None of these functions affect the output image, they only modify the image
for efficiency or previsualization purposes. You can, however, optionally apply
these to a render launched from the GUI.
Here is an example of using a VLUT with a log image:
With LogLin conversion turned on in g/o/log - you still
work on the log image in the process tree, you are seeing the linearized plate.
To activate VLut or Viewer Script Controls:
The current default scripts and luts are:
Function
|
Notes
|
||||||||||||
![]() |
Gamma/Offset/LogLin - Allows Gamma, Add and LogLin operators to be applied. | ||||||||||||
![]() |
A field chart. Lots of chart controls to figure out...
|
||||||||||||
![]() |
Displays a PlotScanline of your image. See Overview - About Color for more information about a Plot Scanline.
Displays the values along the horizontal axis (where the light grey line is). You can see the bluescreen is pretty evenly lit. You can choose to look at rgb, a, or rgba, and calculate the value based on color, luminance, or value.
|
||||||||||||
![]() |
Displays a Histogram of your image.
The colors are squeezed down in a limited range, an indication that this is probably a logarithmic image. Notice the big healthy chunk of blue near the high-end. That is good.
|
||||||||||||
![]() |
Displays Z depth of an image either normalized or between a set range. One very important thing: closer pixels are white, so the image can fade to infinity (black) without a visual discontinuity.
|
||||||||||||
![]() |
Displays pixel values above 1 or below 0 for float images. The Alpha channel is also tested. view: This parameter controls how the pixels are displayed:
sub-zero color: Only active when view equals on Image, it indiicates the sub-zero pixels. superwhite color: Only active when view equals on Image, it indicates the superwhite pixels. Example:
The per-channel view indicates that most of the superwhite values are in the blue channel. The per-image view indicates the dark areas more clearly. The on image view has coded the highlights yellow and the darks blue. |
The VLuts and the Viewer Scripts are similar in that they apply an arbitrary set of functions that modify the image. The typical example is a color lookup table to compensate for the display properties of the monitor. The key difference is that VLuts allow you to scrub pixel values from the unmodified image. You can turn this behavior off for VLuts. You are always scrubbing the modified pixel values with Viewer Scripts. As an example, you may want to work on cineon plates in logarithmic space without converting them to linear space. However, you want a rough idea of what they look like in linear color space. Apply a VLut to convert the images to linear space. Your color scrubs are still coming from the input logarithmic plates, ensuring accurate processing for your output images.
Therefore, VLuts are typically used for color correction, and Viewer Scripts are typically used for odd operations like doing something for stereoscopic viewing. Both allow you to put in any series of pre-created functions you want (See below).
You can have as many VLuts as you want, but Shake comes with only one. You can only turn on one VLut and one Viewer Script at the same time, but you can have both of these simulateously activated. To apply multiple color corrections, build your VLuts and Scripts to have multiple controls.
DOD stands for Domain of Definition. The Viewer DOD limits your rendering region to a box, optimizing your processing. For example, if you are doing head replacement, you may want to activate the Viewer DOD and box off the head, saving your processing time for the rest of the image.
Keep in mind:
Image with VLut 1 and Viewer DOD applied:
If you Right click on the Viewer DOD button, you have several display options on the DOD controls. However, the interesting one is Frame DOD to Viewer, which sets it to the Viewer frame. With this, you can zoom in on an area you want to focus on and limit your DOD to that area. Note it is not dynamic, as it would be constantly recalculating as you pan around.
For more information on what the DOD is, jump to Overview - The DOD.
Creating your own VLuts and Viewer Scripts. The preset examples are stored in the end of the nreal.h file. To roll your own, you first declare them in a startup directory following the same guidelines for macros. The following functions do absolutely nothing:
image ViewerLookup1_(image img) { return img; } image ViewerScript1_(image img) { return img; }
You then, also in a startup file, hook them into the Viewers:
nfxDefViewerLookup("Lookup1", "ViewerLookup1_()", "default"); nfxDefViewerScript("Script1", "ViewerScript1_()", "default");
The first argument ("Lookup1", "Script1")
is the name of the VLut/Script as it appears in the list in the interface. The
second argument ("ViewerLookup1_()", "ViewerScript1_()") are the
actual functions they call when activated. These must be declared in a startup
.h file. The third arguments are the optional icon files, relative to the icons/viewer
directory. It is assumed there is an .nri extension and that you also have a
focused version called [icon].focus.nri. Therefore, if you wanted to
load a button called icons/viewer/vluts/dufus.nri, you also create a
focused version called icons/viewer/vluts/dufus.focus.nri. You then use
"vluts/dufus" as your icon name. "default" means it is looking
for vlut.@.nri, vlut.@.focus.nri, vscript.@.nri and vscript.@.focus.nri.
(@ = 1, 2, 3, etc.) All paths are relative to icons/viewer. The icons
for viewer scripts are 30x30 pixels, no Alpha. The standard VLut buttons are
51x30 pixels, no Alpha. There is a macro in Cookbook
- Other Macros - VLUTButton to make your own. Necessary macros (it relies
on others) are found in doc/cook/macros.
Also, see above for keyboard equivalents to Viewer buttons.
Keyboard
|
Notes
|
N | Create/Copy New Viewer |
F | Fit Image to Viewer |
Ctrl+F | Fit Viewer to Image |
Shift+F, | Fit Viewer to Desktop |
Alt+drag | Pan image |
+/- | Zoom image in Viewer |
Home | Reset view |
R,G,B,A,C | Toggle Red, Green, Blue, Alpha, and Color views |
Tree |
Function
|
Keyboard
|
Notes
|
Edit | Undo | Ctrl+Z | Undo the last operation. Does not work with RotoShape or QuickPaint. |
Redo | Ctrl+Y | Redoes last un-did command. | |
View | Zoom In/Out | +/- (by Backspace) | Zooms in and out by increments. You can also Ctrl+middle drag or Ctrl+Alt+drag to zoom in/out with non-integer increments. |
Reset View | Home | Sets the viewer ration to 1:1. The viewer ratio is listed in the upper left corner of the title bar. | |
Fit Image To Viewer | F | Resizes the image to the Viewer boundaries. | |
Fit Viewer To Desktop | Shift+F | Fits the Viewer window to the larger desktop pane. Does not change the Viewer zoom, it just helps you when resizing the larger Desktop pane. | |
Fit Viewer To Image | Ctrl+F | Snaps the Viewer to the Image size. | |
Render | Render Flipbook | Renders a non-permanent flipbook. | |
Render FileOut Nodes | Renders FileOut nodes to disk. | ||
Render Proxies | Renders proxy images. | ||
Clear Buffer A/B | Clears out either buffer A or B. | ||
New Viewer | N | Creates a new viewer. If the mouse is over a Viewer, it clones that Viewer. | |
Delete Viewer | Removes that Viewer. Helpful in clearing up graphic/refresh problems sometimes. | ||
Minimize / Restore Viewer | Stores the Viewer as a tiny bar. | ||
Load Viewer Script Controls | Loads the VLut/Viewscript controls into one of three options. | ||
View Channel | Views a channel. Nobody ever uses this. I'm not sure why its here... |