Rotoshape
compositing node
Draws one or more curves or shapes.
See also: Creating Freehand Curves, Creating Preset Shapes, Copying an Existing Shape, Editing Curves and Shapes 8 more , Polygon Handles, Bezier Handles, Selecting Shape Points, Inserting a Point into a Shape, Deleting a Point from a Shape, Animating a Shape’s Points, Feathering the Edges of a Shape, Shape
RotoShape allows multiple curves and/or shapes to be drawn and animated. Each shape can be drawn freehand, selected from a list of presets, or copied from an existing shape. There is no limit to the number of shapes in one RotoShape node.
By default, shapes are composited together with an Over operation. However, any compositing operation may be selected. Subtract and XOR are often used to cut holes in other shapes. Shapes are composited on black starting with Shape #1.
Each shape has its own color, feathering, closure (open, closed, hollow) and transform.
RotoShape is very useful for creating garbage mattes and masks.
RotoShape replaces the RotoSpline node, found in versions previous to Houdini 7.
Generator Usage
This operator is a generator, which allows it to create new sequences or planes. A generator can be used without any inputs, with one input or with two.
When a generator has no inputs, it generates a new sequence of frames. By default, most of the main generator parameters use the Composite Project settings:
-
Resolution
-
Pixel Aspect Ratio
-
Raster Depth
-
Sequence Range
-
Frame Rate
Each of these parameters may be overridden to enter specific values.
If you are working consistently in a certain bit depth, resolution or frame range, it is recommended that you alter the Composite Project settings rather than individually modify the generator nodes' settings. The Composite Project settings, when changed, will automatically update all COPs settings that are linked to it.
Color and Alpha are always created, though if the generator does not include them in its Image Planes parameter, they will be empty.
Attaching a Node to the Merge Input
The Merge input is the main input on the top of the node. When connecting a node to this input, the generator creates a new plane and merges into that node’s sequence. The plane may exist in the input, in which case the generator can modify it using simple compositing operations or replace it entirely. This process is called 'Inline Generation'.
When using Inline Generation, the parameters on the Image and Sequence pages cannot be modified, as they are inherited from the input.
If you disconnect the generator from its merge input, any overridden generator parameters (Resolution, Pixel Aspect Ratio, Sequence Range) will be modified to match the input’s settings, so that the generated output remains roughly the same.
Attaching a Node to the Mask Input
The Mask input is the side input. Connecting a node to this input will restrict the generated output to the area of the mask. This mask can be selected from the list of planes in the connected node, and inverted, brightened or dimmed, if desired.
If an input is connected to the Merge input, and the generator is modifying one of the input’s planes, the mask will blend the generated output with the input.
The parameters for selecting the mask can be found on the Mask page.
The following applies to interactively creating or modifying shapes in the viewport.
Create and Edit Modes
The RotoShape state has two modes - Create mode and Edit mode. Initially RotoShape is in Create mode.
Create Mode
Create mode is where new shapes are added - either freehand drawn curves or preset shapes. Once the shape is created, press 'Done' in the toolbox or
Click in the viewport to finish the shape. To quit this state without creating a curve or shape, hit
Esc
or press 'Cancel' in the toolbox.
From left to right, the UI controls for Create mode are:
-
Curve Type - Polygon or Bezier
-
Shape Type - Curve, Regular Polygon, Star or Circle
-
Parameters specific to the shape type:
-
Closure Type - Open, Closed or Hollow
-
Copy - Copies an existing shape.
-
Cancel - Exit create mode without creating the shape. Esc
-
Done - Complete create mode and create the shape. N
Creating a Freehand Curve
-
Enter Create mode if you are not already in it.
-
Set the shape type to 'Curve'.
-
Select either Polygon or Bezier for the curve type. This can be changed in Edit mode as well.
-
Create a freehand curve by clicking to plot a single point, or dragging to create a curve stroke. Del will delete the last stroke (or plotted point), while ⇧ Shift + Del will delete only the last point.
-
You can specify if the curve is closed (solid shape), open (open curve) or hollow (closed curve) by using the menu in the toolbar. This can also be changed in Edit mode.
-
When you are ready to complete the curve,
click in the viewport or press 'Done' in the toolbox.
Creating a Preset Shape
-
Enter Create mode if you are not already in it.
-
Set the shape type to one of the following:
-
Use the transform handle to position the shape. The transform does not carry over into the Edit mode’s transform for the shape, so it is useful for setting the initial orientation without having a dirty transform in Edit mode.
-
When you are finished,
click in the viewport or press 'Done' in the toolbox to create the shape and return to edit mode.
Copying an Existing Shape
-
Enter Create Mode if you are not already in it.
-
Press the 'Copy' button and select one of the existing shapes. The shape is copied and you are returned to Edit mode.
Edit Mode
Edit mode allows you to edit the shapes by using handles. In this mode, you can animate the shape. The parameters for the current shape are found in the toolbox. To add another shape, press 'New' in the toolbox or
Click in the viewport.
From left to right, the UI controls for Edit mode are:
-
New - Create a new curve or shape. N
-
Show Current/All Curves - Show the handles for only the current shape, or all the shapes.
-
Current Shape - Selects the current shape, if there is more than one. Only the current shape’s parameters are shown in the toolbox. If Show Current Shape is on, this also changes the handles visible in the viewport. B
-
Curve Type - Polygon or Bezier
-
Composite Operation - Selects the compositing operation used to draw the shape into the image. Normally only needed for the second and subsequent shapes.
-
Closure Type - Open, Closed or Hollow.
-
Thickness - Determines the global thickness of open and hollow shapes. Each point on the shape can thickened individually by using the
slider on the point. -
Feather - Turns on feathering for the shape, and sets the minimum feather amount. Each point can be feathered individually by enabling the feather handle ( W while over the point, or use the
menu on the Point and select 'Display Feather Handle'). -
Color - Pops up a color editor for the color and alpha of the shape.
-
Fill Inside/Outside - Inverts the filling of the shape.
-
Delete Current Curve - Deletes the current curve.
Editing Curves and Shapes in Edit Mode
Edit Mode allows you to modify the shape of the curve as well as its parameters. To show the parameters of a given shape, change the 'Current Shape' menu to the shape of interest. If 'Show Current Shape' is enabled, this will also change which shape’s handles are displayed in the viewport.
The following guides apply to Edit mode.
Selecting a Different Shape to Edit
You can show the handles of another shape two ways:
-
Using the 'Current Shape' menu in the toolbox, select another shape.
-
Turn on all the shapes' handles using the 'Show All Handles' button in the toolbox.
Using Polygon Handles
Polygon handles are very simple - they only have a position.
-
drag the point to change its location. -
If the curve closure is Open or Hollow, using
slider on the point will change that point’s thickness. -
If feathering is on, press W while over the point to display the feather handle (or use the 'Show Feather Handle' menu item in the point’s
menu)
Using Bezier Handles
Bezier handles are more complex. They have a point position plus two tangent points to affect curvature. For curves, these slopes are normally tied; for shapes, they are normally untied.
-
drag the center point to change its location. -
If the curve closure is Open or Hollow, use the
slider on the point to change that point’s thickness. -
If feathering is on, press W while over the point to display the feather handle (or use the 'Show Feather Handle' menu item in the point’s
menu) -
click the bezier point to tie or untie the slopes. -
Grabbing the slope line will only change the direction, without changing the length.
-
Grabbing the ball at the end of the slope allows you to change both the length and the direction.
-
To change the slope length only, hold down Ctrl while moving the slope ball. Alternatively, use the
slider on the slope to increase or decrease its length. -
For tied slopes, changing the slope length with automatically scale the other slope. To only affect the one slope, hold down ⇧ Shift while scaling the slope.
-
For untied slopes, one slope is completely independent of the other. To change both at the same time, hold down ⇧ Shift .
Selecting Shape Points
Selecting points allows you to translate, tie, keyframe or delete multiple points at once.
-
To box select,
drag the selection box around the points to select. You can also use a
Alt
+
drag to avoid accidentally moving points or slopes. -
To pick a specific point, Alt +
click the point. -
Points are always added to the selection. To clear the selection, box pick or Alt +
pick empty space.
Inserting a Point into a Shape
To insert a point into a shape,
Ctrl
+
click near the segment you want to insert the point on (it doesn’t have to be on the curve).
If you have more than shape, and have displayed all the shapes' handles, the shape with the curve edge closest to the point clicked will be the one to receive the new point. To ensure the point gets added to the correct shape, display only the current shape’s handles, and make the current shape the one you want to insert a point on.
Deleting a Point from a Shape
You can delete a point one of two ways:
-
Using the
handle menu, select 'Remove Point'. -
Move the mouse over the point and press Del .
Animating a Shape’s Points
Animating the handles is done by pressing K in the viewport to set a keyframe, just like animating other handles. However, the scope of the keyframe varies depending on the handles visible and selection:
|
Mouse pointer located over a handle |
Only the handle under the point is keyframed. |
|
All Shapes' Handles shown, no selection |
Every shapes' points and transforms will be keyframed. |
|
Current Shape’s Handles shown, no selection |
The current shape will be keyframed, but none of the other shapes will be. |
|
Selected Handles |
Only the selected handles will be keyframed. This includes transform handles, if they are selected. |
To avoid keyframing the transform, temporarily turn the transform handle off by using the transform’s
menu turn off 'Display Handle'. To get the handle back, you’ll need to open the bar to the left of the viewport and toggle the transform icon for the shape.
Or
Keyframe the transform anyway and use the
menu on the transform to 'Remove Keyframe' (make sure the handle isn’t selected).
Feathering the Edges of a Shape
-
Turn on feathering toggle in the toolbox.
-
Adjust the global feather to the amount of feather that you want on the curve using the toolbox feather amount.
-
To adjust individual points, turn on the feather handle by pressing W while the mouse is over the point, or, using the point’s
menu, select 'Show Feather Handle'. -
Pull the feather handle outwards from the point to increase the feather.
-
The feather falloff can also be adjusted in the parameter dialog, to change it to Linear, Ease In, Ease Out, Ease In Ease Out or Gaussian. The default is Gaussian.
Useful Hotkeys
Create Mode
Del - Delete the last curve stroke.
⇧ Shift + Del - Delete the last curve point.
N - Complete the curve or shape.
Esc - Cancel Create mode
Edit Mode
N - Create a new curve or shape.
B - Toggle between display of the current shape’s handles and all shapes' handles.
Del - If over a point, delete that point.
W - If over a point, show the feather handle.
K - Set a keyframe for selected or visible handles.
⇧ Shift + K - Remove a keyframe for selected or visible handles.
Parameters
RotoShape
|
Level of Detail |
The level of detail when rendering smooth curve shapes. Higher values create smoother shapes. A LOD of 2 is normally adequate. Lower this value will speed up rendering slightly. |
|
Antialias |
The level of antialiasing, both horizontally and vertically. This can vary from 1 to 8. Higher levels of antialiasing will produce more levels of gray on edges, but increase rendering time. The product of the horizontal and vertical antialias setting cannot exceed 64 (8×8). |
Number of Shapes
There are an unlimited number of shapes that this node can create.
Curve
|
Spline Type |
The primitive type of the created curve.
|
||||||
|
Shape Composite |
The composite operation used to add the shape to the image. The shapes are composited starting with shape #1, up to the last shape. Over: Under: Atop: Inside: Outside: Screen: Add: Subtract: Diff: Multiply: Minimum: Maximum: Average: Exclusive Or: |
||||||
|
Fill |
The closure type of the shape.
|
||||||
|
Thickness |
For open and hollow shapes, this determines the global thickness of the curve. Each point can also further modify the thickness. |
||||||
|
Feather |
If on, feathering is enabled, providing a very soft edge for the shape. |
||||||
|
Feather Dropoff |
How the feathering is interpolate across the edge of the shape. Linear: Gaussian: Ease In: Ease Out: Ease In Ease Out: |
||||||
|
Feather Width |
The global feathering width. The shape will always have at least this much feathering. |
||||||
|
Color |
The color and alpha of the shape. The shape is not premultiplied. |
||||||
|
Fill Outside |
If on, the filling of the shape is inverted. For example, closed shapes will leave their interior unfilled and fill everywhere else. |
||||||
|
Translate |
The translate component of the shape’s transform, which is applied first. It is expressed in UV units (1 = X/Y res pixels). |
||||||
|
Scale |
The scale component of the shape’s transform, applied second. |
||||||
|
Rotation |
The rotation of the shape. |
||||||
|
Pivot |
The pivot of the shape’s transform, about which the scale and rotation occur. It is an offset from the translated position expressed in UV units. |
Points
This tab contains all the points in the current shape.
Normally the state creates and deletes points, but this parameter can also be used to add more points or remove them.
|
Point n |
The UV position of the point. |
|
Tie Slopes |
The slope position of the point, for bezier shapes. If the toggle is on, the slopes are tied. |
|
Thickness |
The point thickness, which is multiplied by the global thickness. Only applicable for open or hollow shapes. |
|
Feather |
The point feather, which is added to the global feather. Only applicable when feathering a curve. |
Mask
The mask parameters control the mask applied when a node is connected to the mask input. The Effect Amount parameter is always available, whether a mask is connected or not.
|
Effect Amount |
If no mask is present, this multiplies the output by a constant amount (0 = black, 1 = all output). If a mask is present, this amount multiplies the mask. |
|
Mask Plane |
A mask can be a component of a plane or an entire plane. If a vector plane is supplied as a mask, its components are multiplied by the images' components. Scalar Mask ('A', 'C.r')
C.r = I.r * M C.g = I.g * M C.b = I.b * MVector Mask ('C') C.r = I.r * M.r C.g = I.g * M.g C.b = I.b * M.b |
|
Invert Mask |
Inverts the mask so that all fully 'masked' portions become unmasked. This saves you from inserting an Invert COP after the node with the mask. |
Image
Parameters relating to the structure of the image generated, including Resolution, Pixel Aspect Ratio and Raster Depth.
|
Override Size |
If off, the resolution of the image is defined by the resolution in the Composite Project settings. If on, any resolution can be specified. |
||||||||||||||||||||||||||||
|
Pixel Aspect Ratio |
If off, the pixel aspect ratio of the image is defined by the pixel aspect ratio in the Composite Project settings. If on, any pixel aspect ratio can be specified. The pixel aspect ratio determines the shape of the pixel; it represents the width of the pixel compared to the height. A pixel with an aspect ratio of '2' is twice as wide as it is high (2:1). Pixel aspect ratios less than 1 are taller than they are wide. The image viewer attempts to show the image as it would appear by horizontally scaling the image by the pixel aspect ratio. This can result in slight artifacts for non-integer ratios (ie, 0.9:1, 1.442:1). Turn off 'Fast Pixel Aspect' in the Display Options to suppress these artifacts. Many effect filters that have parameters that represent width and height will have the width scaled appropriately (such as Blur, Defocus, Expand). |
||||||||||||||||||||||||||||
|
Image Planes |
Specifies the plane(s) to generate. Color and Alpha will always be present, but the generator does not always have to write to them. The list of planes is all the ones Halo recognizes as special. Other planes can be added with the 'Custom Planes' parameter.
|
||||||||||||||||||||||||||||
|
Add Plane |
When a generator is connected to an input, it generates a Mask plane by default. This parameter determines which planes are generated in this case. The list of planes to generate are the same as 'Image Planes'. In addition, if the plane already exists in the input sequence, one of the following operations will be performed to combine the new plane.
|
||||||||||||||||||||||||||||
|
Custom Planes |
This string parameter allows you to create your own plane formats. The syntax is:
planename(arraysize){comp1,comp2,comp3,comp4}:format(black,white)
All parts are optional except for planename. arraysize must be 1 or greater (default 1). comp1-4 are arbitrary strings representing the component names. 'format' is either i8, i16, i32, f16 or f32. black and white are integers representing the black & white points for integer formats.
|
||||||||||||||||||||||||||||
|
Raster Depth |
The byte format of the image. Higher bit depths provide better color resolution and range at the expense of memory.
|
||||||||||||||||||||||||||||
|
Black/White Points |
The integer formats (8, 16 and 32 bit) can specify the raw values that the black and white points occur at. The white point must always be higher than the black point. The minimum and maximum values for the black and white points for each format are:
Floating point formats always have their black point at 0 and their white point at 1. |
||||||||||||||||||||||||||||
|
Interlacing |
Controls the ability to generate images that are compatible with interlaced images. If you are manipulating the generated output with a filter that uses neighboring pixels (like Blur or Expand), it is recommended that you do not use Black Interlaced, as the filter will use the black scanlines as well. The second menu determines which scanlines are in which fields (odd,even)
|
Sequence
This tab contains parameters which deal with the timing and frame range of the generated sequence.
|
Override Global Range |
If off, the global animation range is used as the frame range. If on, the frame range of the sequence can be specified in the following parameters. |
||||||||||
|
Still Image |
A still image is time-invariant. It exists at every frame. If off, the Start Frame and Length are used to determine the frame range. |
||||||||||
|
Start Frame |
The starting frame of the sequence. |
||||||||||
|
Length |
The length of the sequence (number of frames in the sequence). |
||||||||||
|
Frame Rate |
If on, the frame rate of the sequence can be overridden. |
||||||||||
|
Pre Extend |
For sequences with a frame range, this determines how to show frames before the start frame.
|
||||||||||
|
Pre Hold |
The number of frames to hold the first frame for, if 'Hold N Frames' is selected. |
||||||||||
|
Post Extend |
For sequences with a frame range, this determines how to show frames after the last frame.
|
||||||||||
|
Post Hold |
The number of frames to hold the last frame for, if 'Hold N Frames' is selected. |
Inputs
|
Image to Add To |
Merges the generated plane with the planes from this input. |
|
Mask Input |
Masks the operation, which restricts the generated output to the masked area (or to outside the masked area). |
Local variables
|
L |
Sequence length |
|
S |
Start of sequence |
|
E |
End of sequence |
|
IL |
Input sequence length |
|
SR |
Sequence frame rate |
|
NP |
Number of planes in sequence |
|
W,H |
Width and height of image |
|
I |
Image index (0 at start frame) |
|
IT |
Image time (0 at start frame) |
|
AI |
Current plane array index |
|
PI |
Current plane index |
|
PC |
Num of channels in current plane |
|
CXRES |
Composite Project X resolution |
|
CYRES |
Composite Project Y resolution |
|
CPIXA |
Composite Project pixel aspect ratio |
|
CDEPTH |
Composite Project raster depth |
|
CBP |
Composite Project black point |
|
CWP |
Composite Project white point |