What's New in v2.4? |
Information is listed chronologically with the most recent additions first.
If there are apparent contradictions, go by the first listing of the information.
The items flagged with the
marker have been introduced since the last beta release.
Jump to New GUI Functions
Jump to New Tremor Functions
Jump to New Documentation
M_PI variable added A variable set to pi at 20 decimal places. If you want more precision, give us a call and we'll tell you the website that lists it out thousands of decimal places.
HD YUV supported We thought this might be handy for Tremor HD...1920x1080 4:2:2 8-bit yuvs are now supported.
Text Kerning and Quality The Text node now has kerning and quality settings. Quality controls the polygonalization of the fonts splines. When artwork is flat, you can probably get away with a quality of 0. When you have extreme perspective, you will have to raise this value higher.
Image - RotoShape.
A new roto-scoping tool to give you multiple shapes, holes, edges, and
bones to connect them.
Color - ColorCorrect. This is a master color corrector, with settings to do Add, Mult, Gamma and Contrast on the entire range, or lows, midtones and highs. It's a little funky at the moment. You can also do color replacement, inversion, and colormatching and reordering. See below under GUI Functionality for what is going on with it.
Color - Threshold. A node to clip underneath a certain value to black.
Color - HueCurves. An excellent node for spill suppression. There are several parameters. Take the type of parameter you want and load it into the Curve Editor (we are working on building it in the Parameters tab...) and the Y axis is that parameter, and the X axis is the hue. For example, if you wanted to get rid of bluespill, which has a hue of roughly .66, you would load either bHue or saturation into the Curve Editor (don't use the sliders...). Then grab the point that is at .64 and drag it down. If you have loaded bHue, it will shift it away from blue to a different hue. If you have loaded saturation, it will drop saturation only in the blue areas. To best understand this node, put it on a ColorWheel and load the different curves, one at a time, and reseting as you go, to test to see what happens.
Color - LogLin. This node replaced DelogC, DelogRGB, LogC and LogRGB. It has a toggle to indicate if you want to go from log to lin or lin to log. You can therefore copy the log to lin conversion node and use it to go back out to log space later on with the same settings. The old log functions are still in the nreal.h file for compatibility purposes.
Filter - EdgeDetect. A node to do better edge detection than Convolve. Lots of controls that are swell. Currently (I know, I'll get on it...) they are commented on in the nreal.h file. I'll get to it. Promise.
Layer - Layer. This node works like the LayerMacro node.
Other - Transition. A node to do wipes and other transitions between two clips. The overlap slider controls how much the clips overlap. Otherwise, it will shift the second clip to the end of the first clip. You can add your own transition effects. There is a mini-tutorial in the docs under function documentation page.
Reference a parameter at a different frame. You can now reference
a parameter at a different frame by using parameter@@time. For example,
if I want to link to Blur1's xPixel parameter at two frames
previously, I would use:
Blur1.xPixel@@time-2
Primatte improvements. We are using Photron's new
libraries and we have improved certain aspects of Primatte. It shouldn't
be as "crunchy" as before, so you can hopefully key things other
than people in red wax helmets, to quote one of our users. It also has garbage
and fg mattes, as well as replace color and defocused FG and BG sources.
Defocused FG is for Back screen noise reduction and Defocused BG is the
spill replacement color source. Or so they tell me. Check out the new Primatte
docs and the new Primatte
Tutorial.
defaultBytes global parameter. There is now a defaultBytes similar in operation to defaultWidth, Height, and Aspect.
TRadioButtons. This is the macro I use to generate radio buttons
for the interface, and it is certainly not official. It is stored in the
doc/cook directory. I use it in the command-line because that way, the FileOut
engages to write button.on.nri, button.on.focus.nri, button.off.nri,
and button.off.focus.nri automatically by rendering frames 1-4 .
The first thing to do is to set the fileout path inside the macro itself
and then try it out. Because I am lazy, I never fixed the fact that it creates
images 2 pixels narrower than the length parameter. Try to use lengths of
76, 55 or 39, so they will tend to match up to other buttons.
You will also have to install the Relief macro, also included.
Here is a typical usage:
shake -tradio "Hello World" 76 helloworld -t 1-4 -v
This will create D:/Shake2/icons/ux/radio/helloworld.on.nri, helloworld.on.focus,
helloworld.off.nri and helloworld.off.focus.nri.
For an example, look at the Text function, and you will see radio
buttons for alignment:
The ui.h source code looks like this, with ux/radio being the subdirectory
under the icons directory.
nuxDefRadioBtnCtrl(
"Text.xAlign",1, 1, 1,
"1|ux/radio/radio_left",
"2|ux/radio/radio_center",
"3|ux/radio/radio_right"
);
-fldr Field Rendering . There is now a new command-line option
to turn on field rendering. -fldr 0 = ntsc, -fldr 1 = pal
NT and NVidia
cards. We have made significant improvements in the drawing pipeline
that the NVidia boards can particularly take advantage of, so offhand, we
would recommend an NVidia board. We have also put a plug into the nrui.h
to mess with the OpenGL pipeline that can be tried no matter what card you
are using if you are having graphic problems. For more information, jump
to Customize
- ui Files - Tuning the NT OpenGL pipeline.
Quit Hotkey
Shift+Ctrl+Alt+X will quit Shake and Tremor.
Render Window: Update From Globals. This previously oh-so-annoying button has been fixed so that if you enter a new number, it will automatically turn off. Therefore, the Update button works as a Reset button.
Curve Editor: Inserting a Key. To avoid the unwanted insertion of keyframes while tuning tangents or other keys, you are now required to Shift+click on a segment to insert a new key.
Keyboard Tweaking. By hitting Shift, Ctrl or Alt and the left/right arrow with the cursor over a textfield, you can increase the number by 10x increment, 1x, or .01x, respectively. For example, the value parameter in Brightness increases by .1 increments. Hitting Shift+left arrow will decrease it by 1, Ctrl will decrease it by .1, and Ctrl+Alt will decrease it by .01.
Dimming of icons. Due to popular request, the Node and Function icons have been dimmed to appear less "garish" or like "a Christmas Tree" to quote two of my favorite comments.
Browser Bookmarks are saved. Hitting the Bookmark button will now save your settings as a ui setting. To keep it always around, hit File - Save Interface Settings. Otherwise, it is saved with the script and loaded with the script by ensuring that include interface settings is turned on in the Browser when loading/saving a script.
T toggles timecode. Hitting T will toggle timecode/frame display in any time-oriented area (curve editor, timebar, timeview)
UI Time Slider color coding: Here is some color coding settings
for your ui.h files, obviously in Hex. To get hex, you can use the
Color Picker and set the values to Hex, or any HTML editor.
gui.timeSlider.color = 0x4B4B4BFF
gui.timeSlider.focusColor = 0x5B5B5BFF
gui.timeSlider.textColor = 0x0A0A0AFF
gui.timeSlider.focusTextColor = 0x000000FF
nuiPushControlGroup("colorExpr");
nuiGroupControl("Lookup.rExpr");
nuiGroupControl("Lookup.gExpr");
nuiGroupControl("Lookup.bExpr");
nuiGroupControl("Lookup.aExpr");
nuiPopControlGroup();
registerCurveFunc("colorExpr"); //This will hide all curve by defaultregisterCurveFuncVisible("colorExpr"); //This will turn on all curves automatically
New Color Picker behavior. The Color Pickers are swell. If you hit on the keyboard (R)ed, (G)reen, (B)lue, (H)ue, (S)aturation, (L)uminance, (V)alue, (C)yan, (M)agenta, (Y)ellow, (T)emperature and drag left and right inside the Color Picker, you will be virtually sliding those values. It will automatically convert that space back into RGB values for you. If you open the tree, you can enter a numeric value for any given channel, and if you open further, you can enter expressions.
default Node View zoom level plug. In a ui.h file, gui.nodeView.defaultZoom=1; will set your default node view zoom level.
Auto timeRange Hitting the Auto button by the timeRange parameter in the Globals will automatically take the frame range from the start point of your first clip to the ending point of your last clip.
FileIn Browser Improvement Hitting the Space Bar is the equivalent to hitting Next.
ColorPicker Improvements Now all Color Pickers have the 3 or 4
fields. You can modify any field to modify that channel. You can also use
the Color Picker (the button in the parameters) as a virtual slider. If
you press V and drag on it, it will increase the value. If you hit S, it
will modify saturation, etc. The following keys are active:
r - red
g - green
b - blue
h - hue
s - saturation
v - value
m - cyan-magenta (use with Value and Temperature)
t - temperature
You can also open up the subtree to access the radio buttons indicating
the channel, with an attached slider. Expressions can be entered under that.
Keep Tab Menus Open If you drag open a tab with the right mouse, you can select multiple nodes from the same tab with the right mouse. Click somewhere with the left mouse to close the tab.
More Robust Undo
Floating Tweaker Windows You can launch as many parameter windows as you want. Select a node and hit Ctrl+T, and its parameters will appear in a floating window.
Display of Links By hitting Ctrl+E, you can toggle the visualization of expression dependency in the Node View.
nuiSetMultipleObjectsColor( colorToolBoxRed, colorToolBoxGreen, colorToolBoxBlue, 1, 1, 1, "Add", "AdjustHSV", ... "@Threshold", "VideoSafe" );
Setting SGI Monitor Resolution. Courtesy of MenaceFx. This
isn't anything specific for Shake, but it is helpful for when using Shake
in the Tremor-style GUI on an SGI machine:
To set your resolution, use the command 'setmon' in the command line,
or 'xsetmon' for an interface.
AS ROOT:
/usr/gfx/setmon -x 1600x1024_72
The allowed values depend on your graphics card. If you are using an Octane
with MXI graphics, go to the
/usr/gfx/ucode/MGRAS/vof/2RSS/ directory to see the allowed choices.
In the case of the MXI Octance, you have:
1024x768_60.sdb 1280x1024_72.sdb
1024x768_60p.sdb 1280x1024_76.sdb 1024x768_72.sdb 1280x492_120s.sdb 1024x768_76.sdb 1280x960_30i.sdb 1024x768_96s.sdb 1600x1024_72.sdb 1024x768_96s_vs.sdb 1600x1200_60.sdb 1280x1024_49.sdb 1600x1200_60_32db.sdb 1280x1024_50.sdb 1920x1035_60.sdb 1280x1024_50_2f.sdb 1920x1080_60_32db_gdm24w.sdb 1280x1024_59.sdb 616x492_140os.sdb 1280x1024_60.sdb 640x480_60.sdb 1280x1024_60_2f.sdb 640x486_30i.sdb 1280x1024_60p.sdb 768x576_25i.sdb
So: /usr/gfx/setmon -x [settingFileWithoutExtension]
In both cases, you will have to log out and log in again. No reboot needed.
Tremor-style interface. To launch Shake in the Tremor-style interface,
use
shake -gui 1
Darker Icons. All icons are now at 22% grey. It makes it dark and mysterious like the back of Ron's fridge.
Node Cloning. If you copy nodes and then paste with Ctrl+Shift+V, the pasted nodes will contain links back to the copied nodes. Note that Lookup and Tracking nodes don't clone properly at this time.
Concatenating Node Icons. Color and Transform Nodes which concatenate have been labeled with a yellow C under the tabs. AdjustHSV and LookupHSV use a red C as they only concatenate with each other.
Color-coded nodes and tabs. Each tab is assigned a color code.
A node can also be assigned a unique color. In a ui.h file, use
nuiSetObjectColor("MyNode", redVal, greenVal, blueVal, textRedVal,
textGreenVal, textBlueVal);
We have put in variables to take the color of tab (imageToolBoxRed,
filterToolBoxRed, etc), but just placing a node in a specific tab will not
color it to the tab's color - you must assign the color explicitly. You
can also assign the same color to multiple nodes. See nuiSetMultipleObjectsColor,
described above.
Curve Editor View Filters. The Curve Editor now has viewing filters:
current: This will only list the currently loaded parameters from
the Parameter tab. It is a state button that can be on or off.
selected: This will list animated parameters from all active nodes.
It is a state button that can be on or off.
There is also a third visibility state, Persistent. When this is
on, this parameter will always be loaded regardless of viewing filter. Hit
the visibility button until you reach the red P.
Curve Editor Scaling. Dragging left mouse in the lower-left corner will scale the Curve Editor. All time lines have been synchronized in behavior (Time Bar, Time View, Curve Editor) and have the same behavior.
Curve Action Buttons. You can now do several operations to selected curves or points, including smoothing, adding noise, removing all but the jitter, negating, and averaging curves. You specify an amount and apply it to either curves or selected points.
Jump Next/Previous Key buttons. The Time Bar now has Jump to Next/Previous Key buttons. You can also hit up or down arrow.
Viewer Flipbook Button. Now looks like a flipbook, rather than the misleading Play button.
Force FileIn Reload. On the Right Mouse in the Node View, you can force a reload of selected or all FileIns. This is for when you are working on a script and your input files are written over because of a re-render, copying, etc.
Save Selected Nodes as Script. On the Right Mouse in the Node View, you can save selected nodes as their own script, or under File.
Automatic Mask Generation. Every node now has a Create button
by Mask in the Parameters. You hit Create and it will attach
a node of the type that you specify as a mask input. You can add additional
mask types with the ui.h file command:
nuiAddMaskCommand("FunctionName", Function();");
Viewed Node Indicator. The Node View now displays a number and tab ("1A") above and to the left of the current node to indicate it's viewer and tab. The first created Viewer will show 1, etc. If the node is in the A tab, it will display A, etc.
Auto-Formats. You can now specify your resolution from a list,
and it will automatically arrange the defaultWidth, aspect, field rendering,
etc. You can input your own formats under a ui.h file. We strongly encourage
you to submit these - the most common will go into the standard release.
Submit them to support@nothingreal.com. To create your own format, add:
DefFormatType("name", xRes, yRes, aspectRatio, fps, 1);
The command
script.format="Custom";
sets the Shake default format. If you always wanted to do NTSC_D1, you would
use script.format="NTSC_D1";
RotoShape. There is a new roto-generator. Please hold...
Text when scaling Node View. The text remains visible longer when zooming out.
Drive Names in the Browser. The Browser will now display the drive names of a disk.
Reset All Values. This has been added to all parts of the Parameters Tab, not just the top part.
Drop/non-drop Time Code. You can specify if you want Time Code to drop the frame to compensate between 29.97 or 30 fps.
Tracking Offset Reset . We have added a new button to reset the offset tracker. You now have two buttons for offset track. The first one allows you to move the tracking area away from the saved keyframes. Hitting it again means both search region and key move the same amount. The reset tracker button will shift the search region back onto the keyframe.
Note: The Tremor-style GUI should really be used with a monitor resolution of 1600 pixels or more. See above for how to set the resolution.
Hitting Enter
will Play/Stop/Render in VTRIn, VTROut .
Render Queue
for FileOut, VTROut.
Space Bar changes:
-Pressing the Space Bar will pop the current tab fullscreen.
-Holding Tab will switch the tabs within the current pane.
Menus On the right side of the center bar is a button called Menus. Holding it down will access all of the File, Edit, etc menus that one sees in Shake.
Virtual Sliders. Under each textfield, a mini-slider will appear. Use this to quickly go to the min or max of the slider.
Editing Expressions. If you put the cursor over a numeric textfield, you have focus in the Expression box, so you can type your expression in immediately. Double-clicking on the textfield locks the expression into the Expression box until you click elsewhere.
Middle-bar panning now works. You can pan with the middle button or alt+left button in the middle function bar to reach other tabs.
Maximum columns widths for Tremor layout. There is a new parameter
for nuiDefTweakerCol, which sets how wide a column is when layout out parameters
in Tremor. An extra parameter has been set for maximum width, as Tremor
will determine the size and title of a tweaker column. The width
and maxWidth parameters bound the width of the column. The UI will
adjust the widths of the tweaker columns within this range to attempt to
fit all columns within the screen width. If the sum of the minimum widths
exceeds the screen width, the tweaker will scroll to accommodate:
nuiDefTweakerCol("name",colNum,"label",spacing,width,maxWidth);
Preset Viewers. The Viewers no longer are floating. You can have
1, 2, 3, or 4 viewers. There is a button immediately to the right of the
compare slider to set how many viewers you have.
To assign an image to a Viewer, you double click on the viewer. The image
in the main Viewer will go there. At the moment, you must set the display
characteristics in the main viewer. To swap the main Viewer with a sub-viewer,
Ctrl+double click in the sub-viewer.
Favorite Functions. You can assign your favorite functions to appear
on the middle Function Bar with the ui.h command. Let us know what you think
of this. We are reviewing it and considering different ideas still.
nuiAddToolBoxFav("MyFunction");
Sliders. They're gone. Kaput. Finito. Sayanora. Instead, all text fields are virtual sliders just by dragging on them. Double-click to enter a value/expression. If you Ctrl+drag, it has more control.
VTRIn/Out. These are only for Tremor, but can be rendered in Shake.
This will allow you to control your decks, giving you a VTR-style control
area. You have shuttle controls, mark in and out, as well as diagnostic
indicators (remote/local control, no tape, etc). A few non-obvious things:
<> = play Will play back or forwards.
return or enter = play
m = rewind
/ = fast forward
i/o Will mark your in/out points for capture.
Dragging in the time code will shuttle through your tape
On the right side is capture and purge to start the capture process as well
as purge the footage. The name of the clip is supplied in the parameters,
as well as the reel name. This will be directory/filename on disk once it
is captured. At this point, VTRIn turns into a FileIn.
There is a little betatape icon on the Viewer to indicate if you are reviewing
captured files or the deck.
Expression Box. Expressions are now loaded into the box on the left side underneath the Node View. Drag from the parameter name into the box to edit it. If you double click on the parameter textfield, it will lock it into the box.
ColorCorrect Node. This new color corrector is also in Shake, but
the layout is really designed for Tremor. Here's how it goes:
This is a combination of Mult, Gamma, Add, ContrastLum,
ContrastRGB, Invert, Reorder, ColorReplace,
and Lookup. There are 7 tabs (at the moment):
1. Master - acts as a global modifier across the entire image, i.e., Adding
.2 to the red will add to the entire red range, but not green or blue.
2. Low, Medium, High - modify just in the low, medium and high range of
the image.
3. Curves - These are lookup-style curves to put in arbitrary points.
4. Globals - this has controls to do inversion, reordering, to indicate
if you want to unpremultiply the input, and ColorReplace
5. Range Curves - this gives you a display of the mask curves for the low/mid/high
areas, which cannot yet be modified. It also displays the final composite
lookup of all of your modifications.
ColorCorrect will break concatenation at the moment.
In the Master/Low/Mid/High Control Tabs, there are 4 columns, Master, Red,
Green, and Blue. If you modify the Master column, it will apply the same
effect to Red, Green, and Blue channels, i.e., similar to the Brightness
node. Per-channel control is then done in the Red, Green, and Blue channels.
New UI Column Layout Code. You can now assign parameters to a column
with the ui.h code. The first line indicates how many columns exist for
the parameters. The second line indicates to which column the particular
parameter is assigned to.
nuiDefTweakerNumCol("MatchMove",3);
nuiDefPCtrlLoc("MatchMove.applyTransform",1);
This next line assigns a Title to a column, i.e., Translate Scale and Rotate
in Move3D:
nuiDefTweakerCol("Move3D",1,"",10,200);
nuiDefTweakerCol("Move3D",2,"Translate",10,250);
nuiDefTweakerCol("Move3D",3,"Rotate",10,250);
nuiDefTweakerCol("Move3D",4,"Scale",10,300);
nuiDefTweakerCol("Move3D",5,"",10,150);
The values are the names, column number, the label, spacing and width of
the title.
Beginning
Tutorial All new, just for
you. Info on using both Shake and Tremor.
Intermediate Tutorial A new
intermediate tutorial.
How to Key DV footage. This has been added to the end of Overview - Keying.
Overview - About Masks. This has been completely rewritten, and is a sort of tutorial.
Overview - About Premultiplication. Have fun with this one.
Using Stabilize as an alternative to MatchMove. The tracking tutorial has been updated with an extra section at the end on how to use Stabilize as a matchmoving tool.
Overview - About Caching. A bit of new information regarding the .h cache settings.
Overview - Keying. This page discusses keying strategies as well as spill suppression and edge treatment.
ColorX has examples that actually relate to how it is used.
Overview - Logarithmic Color Space has been completely rewritten. It is now actually useful.
Command-line. This has been completely rewritten to reduce redundancy between the tutorials and the manual. It also focuses more on tasks one typically does in the command-line.
Scripting. This section was lame too. It consolidates the scripting sections of previous versions, and includes a mini-tutorial for how to add buttons and behaviors for macro parameters. Use this as a resource to understand macros and scripting, use the How To Build A Macro tutorial for a step-by-step guide to building a macro structure, and use Customize Shake for an explanation of any given piece of scripting code.