Houdini 22.0 Nodes Copernicus nodes

Paint 3D Copernicus node

Paint on a COP layer or UV-mapped geometry.

On this page
Since 22.0
This feature is still under development. The current functionality is unfinished and subject to change, and may have thin or no documentation. Please bear this in mind when using it.

This node paints on top of a layer or UV-mapped geometry. Wire either a layer into the canvas input or a geometry with a uv attribute into the uvgeo input to paint on. The canvas input layer is the background image on which you apply paint. If no canvas is connected, the node uses a default canvas made with the COP network context settings. If you have both a uvgeo and canvas input, the canvas remains the background while the uvgeo provides the surface on which to visualize the painted texture and project brush strokes.

In addition to regular parameters, this node also includes a preview of the brush and alpha strokes and the stack of layers (blend stack). When you use the sample or fill tools, the preview is of the paint tool.

Paint layers

A paint layer has a color, alpha, and optional mask image. A paint layer is like a bundle of COP layers that are treated as a single layer. Paint layers are stored and output by the node as three distinct COP layers, all with the same resolution and COP layer properties (same resolution, same display and data window). The color layer can have 1, 2, or 3 channels, referred to by their COP type names: Mono, UV, and RGB. Typically, the color layer stores actual color. The alpha and mask layer are single-channel (Mono) COP layers.

The paint layers are output in the layers cable as individual wires. The name of the paint layer in the blend stack determines the names of the wires. For example, a paint layer named foo in the blend stack appears in the layers cable as foo.color, foo.alpha, and an optional foo.mask entry. Use a Cable Unpack COP to extract individual wires from this cable.

Notes

  • Paint layers are identified by their names so these must be unique. If you try to rename a paint layer to have the same name as an existing paint layer, the node automatically appends a #<integer> to the layer name.

  • Color and alpha are stored as separate COP layers, but color is stored premultiplied by the associated alpha layer. This is because premultiplied representation is used internally to evaluate the blend stack, combined with the fact that while it’s possible to create 1- and 2-channel color layers, there are no COP layer types that semantically represent Mono+Alpha or UV+Alpha, that would be interpreted correctly by nodes like Blend.

  • There is currently no support for painting geometries with multiple UV tiles (UDIMs). To work with these geometries, split the geometry by UV tile, shift the UV coordinates into the 0 to 1 range, and use a separate Paint 3D node to paint textures for each UV tile.

Blend Stack

The blend stack determines how the paint layers and canvas input blend together. The Canvas is the bottom, background canvas layer. The other layers stack on top of each other from bottom to top.

The parameters in this section determine how a paint layer blends with the paint layer above and below.

  • Data Type: The data type of the layer.

  • Resolution: The resolution size of the layer.

  • Blend Mode: How the layer blends together with the other layers.

  • Opacity: The amount of the layer to mix in with the other layers.

Note

Blend stack evaluation is the non-interactive function of this COP. When you are not interacting with the node through its viewer state or panel, the behavior of this node is essentially equivalent to the Blend chain shown above.

Note

Regardless of the signature chosen for this node and the data types of the color images of the stored paint layers, the intermediate data type passed through this conceptual chain of blend nodes is RGBA. After the chain is evaluated, if the node’s signature is Mono, UV, or RGB, the color is divided by the alpha to disassociate it. When the node’s signature is RGBA or Metadata, in both cases the output type is RGBA, so the result of the conceptual blend chain is output directly. As a consequence, the final alpha channel is always computed, but is only output for these two signatures.

Alphas

An alpha may be procedural (a circle or square with falloff) or a raster image. Preview the alpha output with the Alpha and Brush preview images.

When painting with a procedural alpha, the alpha is sampled with infinite precision, and so the precision of the brush is only limited by the resolution of the selected layer. You can use a raster image as the alpha by loading it from a file path. When you save a brush or alpha recipe that references such a raster image, the node embeds the raster as a PNG inside the generated recipe HDA.

Note

An alpha with too high of a resolution may impact a brush’s performance.

Brushes and tools

You must select a tool and a paint layer to paint. This node includes the following tools:

  • Paint brush: Adds the FG Color paint on the image. This increases the alpha value.

  • Erase brush: Subtracts paint from the image. This decreases the alpha value.

  • Smooth brush: Blurs the paint on the image.

    Note

    This tool’s performance is more expensive.

  • Sample: Replaces the current FG Color with a color you pick in the image.

    Note

    When Write to Mask is on, this tool samples the mask value instead of the color and alpha.

  • Fill: Floodfills a region of the image. The tool applies the FG Color to a group of flooded texels.

See How to use Paint 3D for how to use and switch between the tools. The brush strokes are divided into stamps, so use the Stroke Spacing parameters to adjust whether the stamps overlap. Preview the brush output with the Alpha and Brush preview images.

Note

The parameters configure the local coordinate system of the stamps with respect to the world. The transformation between world-space and this local coordinate system is projective, and so can be orthographic or perspective.

  • When using Surface Stroke Alignment, the tangent plane and normal vector of the surface under the mouse is used to construct an orthographic stamp transform.

  • When using Screen Stroke Alignment, the projection of each stamp matches that of the viewport.

The brushes position their alpha image according to each stamp’s local coordinate system to determine how the effect of the stamp varies across the paintable surface.

With a paint layer selected, you are writing either to its color and alpha or its mask. This is set by the Write to Mask parameter, which you can also change by clicking on the corresponding thumbnail in the blend stack. Clicking the color thumbnail selects the color and alpha for writing, and clicking the mask thumbnail selects the mask.

Note

Which tool is active is stored as the value of the tool parm tuple, which is a virtual parameter representing the currently open tab of the Tools parameter folder, in the parameter dialog. This makes it possible to switch tools by opening the desired tool’s tab, and the currently open tool tab always reflects what tool is currently active.

How to use Paint 3D

To...Do this

Select tools

In the viewer, press 1 (paint), 2 (erase), 3 (smooth), 4 (sample), or 5 (fill).

or

In the viewer, press C to use the radial menu.

or

Click a Tool tab in the parameter editor.

Tip

Hold ⇧ Shift to temporarily switch to the smooth tool or ⌃ Ctrl to temporarily switch to the erase tool.

Use the paint, erase, and smooth brushes

  1. Select the layer on which to use the tool.

  2. Turn on the Show Handle button.

  3. Select the paint, erase, or smooth brush tool.

  4. Set the Paint, Erase, or Smooth parameters to the desired output.

  5. Drag in the viewer to paint, erase, or smooth.

Sample an image

  1. Turn on the Show Handle button.

  2. Select the sample tool.

  3. (Optional) Turn on Sample All Visible Layers in the Sample tab to make the tool sample the entire blend stack. When off, the tool samples only the layer selected in the blend stack.

  4. Click the section of the image with the color you want to sample.

Fill an image

  1. Turn on the Show Handle button.

  2. Select the fill tool.

  3. Set the FG Color parameter to the color you want in the filled area.

  4. Set the Fill parameters to determine the opacity and threshold of the fill.

    Note

    The Threshold parameter sets the maximum distance that the fill floods the area. This value is multiplied with the color value of the clicked image location. A pixel is included in the fill area if it’s close in color to the original selection.

  5. Click the section of the image to fill.

    Note

    When Write to Mask is on, this tool evaluates the mask value of the image location instead of the color and alpha.

Add paint layers

Click the Add Layer button under the blend stack.

Delete paint layers

  1. Click a layer or range of layers in the blend stack.

  2. Click Delete to remove the selected layers.

Tip

Click Delete All to remove all layers. This reverts the node to its default state where it outputs the canvas input with nothing blended onto it.

Duplicate paint layers

  1. Click a layer or range of layers in the blend stack.

  2. and choose Duplicate Selected.

Collapse paint layers into one layer

  1. Click a range of layers in the blend stack.

  2. and choose Merge Selected. The selected layers now appear as one layer named Merged, and have a Blend Mode of Over. The merged layer uses the properties of the initial (bottom) merged layer.

View presets

Click the first preview image to open the Alpha Brush Presets window or second preview image to open the Brush Stroke Presets window. The node’s parameters automatically update when you choose a preset.

See Ramp Presets window for information about how to use the Presets window.

Save recipes

  1. Use the node parameters to configure the brush or alpha that you want to save as a recipe.

  2. Click the Save Brush as Recipe or Save Alpha as Recipe parameter.

  3. Configure the Save recipe window to save the current tool as a node preset recipe. The saved brush or alpha now appears in the Presets window.

Note

You can’t edit these recipes through the Recipe Manager. You must load them in a Paint 3D COP, configure the parameters, and resave the recipe.

Parameters

Note

These parameters don’t affect the paint and layers outputs. These outputs are configured through the blend stack.

Signature

The layer type that the canvas accepts.

For metadata and RGBA signatures, the alpha for the canvas is 0 and the paint output is RGBA. For RGB, mono, and UV signatures, the alpha for the canvas is 1 and the paint output matches the type of the canvas input.

See Signatures for more information.

Group

The group expression that sets the surface primitives on which to paint. You can paint on only this region of uvgeo.

Hide Rest

Displays only the set Group of uvgeo in the viewport. When off, the viewport displays all regions of uvgeo.

FG Color

The color with which to paint.

BG Color

The color to swap with the FG Color. Press X in the viewer to switch the colors.

FG Mask

The value to use for the mask.

BG Mask

The value to swap with the FG Mask. Press X in the viewer to switch the values.

Preferences

2D Paint Mode

Paints on the 2D texture map instead of the input 3D geometry. Press F in the viewer to turn this on and off.

Stroke Alignment

How the stroke is positioned and oriented in 3D space while painting.

Surface

A ray is repeatedly cast from the mouse position to the input geometry. Where it hits, a local coordinate system is constructed for each stamp, with the surface normal as Z, either the stroke direction or tangent vector most closely directed toward Up Direction as Y, and the cross product of these as X. Each stamp can thus be thought of as a rectangular prism centred on this local coordinate system, whose depth (along the Z axis) is determined by the Depth Falloff.

Screen

Stamps are positioned along the screen-space stroke. For each stamp, a local coordinate system is constructed, with either the stroke direction or screenspace “up” as Y, the screen-space orthogonal direction as X, and the direction from the viewport camera toward the mouse’s screenspace position as Z. Because there is no notion of depth, Depth Falloff doesn’t apply in this mode and each stamp can be thought of as a rectangular pyramid extending to infinity.

Only Write to Visible

Brushes and tools apply to only texels visible by the viewport camera.

Lazy Mouse Radius

Trails the brush a distance (in viewport widths) behind the pointer. In the viewport, this looks like the brush is dragged by a string.

Write to Mask

Writes to the mask of the selected paint layer. Use the color or mask thumbnail of a paint layer in the blend stack to turn this on and off.

Visualize Mask

Visualizes the mask of the paint layer. This shows the mask as a tinted overlay on top of the final blended texture. Press G in the viewer to turn this on and off.

Mask Tint

The color of the mask overlay when Visualize Mask is on.

Mask Visibility

The visibility of the mask overlay when Visualize Mask is on. Set this to 1 to display only the mask.

Tip

When 1, set the Mask Tint to white (1,1,1) for easier visibility.

Up Direction

When the Stroke Alignment is Surface and Orient to is Up Direction, this is the direction toward which to orient the Y-axis of each stamp before the node applies rotation (static or dynamic).

Symmetry

Tile Symmetry

Tile Symmetry

Wraps paint near the edges of the canvas around to the other side when painting on a COP layer.

Visualize Tile Symmetry

Replaces the canvas with a 3-by-3 grid that displays how painted features wrap around the border of the canvas when painting on a COP layer.

Reflection

Reflection

Turns on 3D reflection symmetry.

Origin

The origin of the reflection plane.

Direction

The direction of the reflection plane.

Offset

The amount to shift the Origin along the set Direction.

Tools

Paint

Save Brush as Recipe

Save the current brush as a partial node preset recipe. The node saves the recipe in the Brush Stroke Presets window (see View presets for how to open this window).

Brush Radius

The size of the brush. ⌃ Ctrl + ⇧ Shift + drag or to adjust the radius in the viewer.

Opacity

The amount by which to multiply a layer’s Opacity parameter. A stroke can’t exceed this amount of alpha added to the layer.

Flow

The amount by which to multiply the paint brush’s flow, which is the rate at which alpha is added to the layer.

Stroke Spacing

The space between stamps, measured in stroke widths. A value of 0.01 removes any spaces between the stamps so they touch. A value of 0.5 means the left half of a stamp is completely overlapped by its left neighbor and its right half is completely overlapped by its right neighbor.

Adjust Flow to Compensate for Spacing

Adjusts the amount of flow to compensate for variable stroke spacing. When on, changing stroke spacing results in the overall alpha-applied-per-distance to remain constant, modulo quantisation due the starts and ends of stroke stamps.

Rotation

The amount in degrees to rotate each stamp.

Orient to

When Stroke Alignment is Screen, this indicates whether to orient the stamp’s Y-axis (up) along the stroke direction or to match the screen space “up” direction.

Orient to

When Stroke Alignment is Surface, this indicates whether to orient the stamp’s Y-axis (up) along the stroke direction or toward the specified Up Direction parameter as closely as possible. With surface alignment, stamps are always placed tangent to the surface at the brush cursor, so in most cases the world space up direction can’t exactly be aligned to the stamp’s up direction. However, there is typically a surface tangent direction most closely aligned with the worldspace up direction that’s used as the stamp up direction.

Alpha

Save Alpha as Recipe

Save the current brush alpha as a partial node preset recipe.

If a raster image is being used as the current alpha, the saved partial node preset recipe HDA contains the raster image embedded as an HDA section to avoid the possibility of a brush recipe becoming unlinked from the image used to create it. If the current alpha is procedural (circle or square), a low resolution image is still saved as part of the preset recipe and is used as a thumbnail to display the recipe in the Alpha Catalogue.

Shape

The alpha image to use.

Square

Use an alpha image that’s in the shape of a square.

Circle

Use an alpha image that’s in the shape of a circle.

File Path

Use an alpha image from a file.

Catalog

Use an alpha image from the loaded recipe.

Soft Edge

When the Shape is Circle or Square, this is the amount of feathering around the edges of each stamp. This parameter is forwarded to Stamp Point’s Shape Falloff parameter.

File

When the Shape is File Path, this is the file in which the alpha image is stored.

Catalog File (hidden)

The HDA section in which an alpha image is stored, when a recipe is loaded from the asset catalogue.

Depth Falloff

When Stroke Alignment is Surface, this is the amount by which each brush stamp extends in 3D space along its normal axis. When using Surface stroke alignment, the node constructs a local coordinate system for each brush stamp on the input geometry surface at the location of the brush cursor, using two surface tangents and the surface normal. Since the painted surface is typically not completely flat, the node computes a “Z alpha” as a multiplier for the stamp’s alpha based on its distance to the stamp plane. This multiplier is computed as smoothstep(-z_falloff, 0, -abs(z_distance)). This parameter is forwarded to Stamp Point’s Z Falloff parameter.

Squish

The amount by which to shrink the alpha image along its horizontal axis. A value of 1 collapses the image into a line.

Flow Dynamics

Flow Dynamics

Makes flow a dynamics output (driven by dynamics).

Distance Input

Distance Input

Multiplies the flow by a value based on the screen-space accumulated stroke distance.

Max Distance

The accumulated screen-space stroke distance (measured in viewport widths) at which this flow dynamics input multiplier reaches its final value. The final value is 1 when Increase with Distance is on. The final value is the Min Flow Scale when Increase with Distance is off.

Min Flow Scale

The minimum value of this flow dynamics input multiplier.

Increase with Distance

Makes the flow dynamics input multiplier increase as the accumulated screens-space stroke distance increases. When off, the flow dynamics input multiplier decreases. Min Flow Scale to 1 or 1 to Min Flow Scale.

Pressure Input

Pressure Input

Multiplies the flow by a value-based pen pressure.

Min Flow Scale

The minimum value of this flow dynamics input multiplier.

Increase with Pressure

Makes the flow dynamics input multiplier increase as the pen pressure increases. When off, the flow dynamics input multiplier decreases. Min Flow Scale to 1 or 1 to Min Flow Scale.

Random Input

Random Input

Scales the flow of each brush stamp by a random amount.

Random Scale

The amount by which to randomize each brush stamp’s flow.

A value of x multiplies each stamp’s flow by a number that’s uniformly randomly selected between 1-x and 1+x. If the final flow surpasses 1, the node instead uses a flow of 1. 0 means there’s no randomisation.

Speed Input

Speed Input

Scales the flow by a value based on the current stroke speed.

Max Speed

The speed (measured in viewport widths/second) at which this flow dynamics input multiplier reaches its final value. The final value is 1 when Increase with Speed is on. The final value is the Min Flow Scale when Increase with Speed is off.

Min Flow Scale

The minimum value of this flow dynamics input multiplier.

Increase with Speed

Makes the flow dynamics input multiplier increase as the speed increases. When off, the flow dynamics input multiplier decreases. Min Flow Scale to 1 or 1 to Min Flow Scale.

Radius Dynamics

Radius Dynamics

Makes the brush radius a dynamics output (driven by dynamics).

Distance Input

Distance Input

Multiplies the radius by a value based on the screen-space accumulated stroke distance.

Max Distance

The accumulated screen-space stroke distance (measured in viewport widths) at which this radius dynamics input multiplier reaches its final value. The final value is 1 when Increase with Distance is on. The final value is the Min Radius Scale when Increase with Distance is off.

Min Radius Scale

The minimum value of this radius dynamics input multiplier.

Increase with Distance

Makes the radius dynamics input multiplier increase as the accumulated screens-space stroke distance increases. When off, the radius dynamics input multiplier decreases. Min Radius Scale to 1 or 1 to Min Radius Scale.

Pressure Input

Pressure Input

Multiplies the radius by a value-based pen pressure.

Min Radius Scale

The minimum value of this radius dynamics input multiplier.

Increase with Pressure

Makes the radius dynamics input multiplier increase as the pen pressure increases. When off, the radius dynamics input multiplier decreases. Min Radius Scale to 1 or 1 to Min Radius Scale.

Random Input

Random Input

Scales the radius of each brush stamp by a random amount.

Random Scale

The amount by which to randomize each brush stamp’s radius.

A value of x multiplies each stamp’s radius by a number that’s uniformly randomly selected between 1-x and 1+x. 0 means there’s no randomisation.

Speed Input

Speed Input

Scales the radius by a value based on the current stroke speed.

Max Speed

The speed (measured in viewport widths/second) at which this radius dynamics input multiplier reaches its final value. The final value is 1 when Increase with Speed is on. The final value is the Min Radius Scale when Increase with Speed is off.

Min Radius Scale

The minimum value of this radius dynamics input multiplier.

Increase with Speed

Makes the radius dynamics input multiplier increase as the speed increases. When off, the radius dynamics input multiplier decreases. Min Radius Scale to 1 or 1 to Min Radius Scale.

Rotation Dynamics

Rotation Dynamics

Makes rotation a dynamics output (driven by dynamics).

Turns per Distance

Adds this amount of turns to the brush’s rotation for every viewport width of accumulated stroke distance.

Turns at Full Pressure

Adds this amount of turns to the brush’s rotation when at full pen pressure. This parameter has no effect on the brush’s rotation when at minimal pen pressure.

Random Offset

Rotates every brush stamp by this random amount. A value of x rotates each stamp by a value uniformly randomly selected between -x/2 and x/2.

Turns per Speed

Adds this amount of turns to the brush’s rotation for every viewport width/second of stroke speed.

Erase

Save Brush as Recipe

Save the current brush as a partial node preset recipe. The node saves the recipe in the Brush Stroke Presets window (see View presets for how to open this window).

Brush Radius

The size of the brush. ⌃ Ctrl + ⇧ Shift + drag or to adjust the radius in the viewer.

Opacity

The amount by which to multiply a layer’s Opacity parameter. A stroke can’t exceed this amount of alpha added to the layer.

Flow

The amount to multiply the erase brush’s flow, which is the rate at which alpha is removed from the layer.

Stroke Spacing

The space between stamps, measured in stroke widths. A value of 0.01 removes any spaces between the stamps so they touch. A value of 0.5 means the left half of a stamp is completely overlapped by its left neighbor and its right half is completely overlapped by its right neighbor.

Adjust Flow to Compensate for Spacing

Adjusts the amount of flow to compensate for variable stroke spacing. When on, changing stroke spacing results in the overall alpha-applied-per-distance to remain constant, modulo quantisation due the starts and ends of stroke stamps.

Rotation

The amount in degrees to rotate each stamp.

Orient to

When Stroke Alignment is Screen, this indicates whether to orient the stamp’s Y-axis (up) along the stroke direction or to match the screen space “up” direction.

Orient to

When Stroke Alignment is Surface, this indicates whether to orient the stamp’s Y-axis (up) along the stroke direction or toward the specified Up Direction parameter as closely as possible. With surface alignment, stamps are always placed tangent to the surface at the brush cursor, so in most cases the world space up direction can’t exactly be aligned to the stamp’s up direction. However, there is typically a surface tangent direction most closely aligned with the worldspace up direction that’s used as the stamp up direction.

Alpha

Save Alpha as Recipe

Save the current brush alpha as a partial node preset recipe.

If a raster image is being used as the current alpha, the saved partial node preset recipe HDA contains the raster image embedded as an HDA section to avoid the possibility of a brush recipe becoming unlinked from the image used to create it. If the current alpha is procedural (circle or square), a low resolution image is still saved as part of the preset recipe and is used as a thumbnail to display the recipe in the Alpha Catalogue.

Shape

The alpha image to use.

Square

Use an alpha image that’s in the shape of a square.

Circle

Use an alpha image that’s in the shape of a circle.

File Path

Use an alpha image from a file.

Catalog

Use an alpha image from the loaded recipe.

Soft Edge

When the Shape is Circle or Square, this is the amount of feathering around the edges of each stamp. This parameter is forwarded to Stamp Point’s Shape Falloff parameter.

File

When the Shape is File Path, this is the file in which the alpha image is stored.

Catalog File (hidden)

The HDA section in which an alpha image is stored, when a recipe is loaded from the asset catalogue.

Depth Falloff

When Stroke Alignment is Surface, this is the amount by which each brush stamp extends in 3D space along its normal axis. When using Surface stroke alignment, the node constructs a local coordinate system for each brush stamp on the input geometry surface at the location of the brush cursor, using two surface tangents and the surface normal. Since the erased surface is typically not completely flat, the node computes a “Z alpha” as a multiplier for the stamp’s alpha based on its distance to the stamp plane. This multiplier is computed as smoothstep(-z_falloff, 0, -abs(z_distance)). This parameter is forwarded to Stamp Point’s Z Falloff parameter.

Squish

The amount by which to shrink the alpha image along its horizontal axis. A value of 1 collapses the image into a line.

Flow Dynamics

Flow Dynamics

Makes flow a dynamics output (driven by dynamics).

Distance Input

Distance Input

Multiplies the flow by a value based on the screen-space accumulated stroke distance.

Max Distance

The accumulated screen-space stroke distance (measured in viewport widths) at which this flow dynamics input multiplier reaches its final value. The final value is 1 when Increase with Distance is on. The final value is the Min Flow Scale when Increase with Distance is off.

Min Flow Scale

The minimum value of this flow dynamics input multiplier.

Increase with Distance

Makes the flow dynamics input multiplier increase as the accumulated screens-space stroke distance increases. When off, the flow dynamics input multiplier decreases. Min Flow Scale to 1 or 1 to Min Flow Scale.

Pressure Input

Pressure Input

Multiplies the flow by a value-based pen pressure.

Min Flow Scale

The minimum value of this flow dynamics input multiplier.

Increase with Pressure

Makes the flow dynamics input multiplier increase as the pen pressure increases. When off, the flow dynamics input multiplier decreases. Min Flow Scale to 1 or 1 to Min Flow Scale.

Random Input

Random Input

Scales the flow of each brush stamp by a random amount.

Random Scale

The amount by which to randomize each brush stamp’s flow.

A value of x multiplies each stamp’s flow by a number that’s uniformly randomly selected between 1-x and 1+x. If the final flow surpasses 1, the node instead uses a flow of 1. 0 means there’s no randomisation.

Speed Input

Speed Input

Scales the flow by a value based on the current stroke speed.

Max Speed

The speed (measured in viewport widths/second) at which this flow dynamics input multiplier reaches its final value. The final value is 1 when Increase with Speed is on. The final value is the Min Flow Scale when Increase with Speed is off.

Min Flow Scale

The minimum value of this flow dynamics input multiplier.

Increase with Speed

Makes the flow dynamics input multiplier increase as the speed increases. When off, the flow dynamics input multiplier decreases. Min Flow Scale to 1 or 1 to Min Flow Scale.

Radius Dynamics

Radius Dynamics

Makes the brush radius a dynamics output (driven by dynamics).

Distance Input

Distance Input

Multiplies the radius by a value based on the screen-space accumulated stroke distance.

Max Distance

The accumulated screen-space stroke distance (measured in viewport widths) at which this radius dynamics input multiplier reaches its final value. The final value is 1 when Increase with Distance is on. The final value is the Min Radius Scale when Increase with Distance is off.

Min Radius Scale

The minimum value of this radius dynamics input multiplier.

Increase with Distance

Makes the radius dynamics input multiplier increase as the accumulated screens-space stroke distance increases. When off, the radius dynamics input multiplier decreases. Min Radius Scale to 1 or 1 to Min Radius Scale.

Pressure Input

Pressure Input

Multiplies the radius by a value-based pen pressure.

Min Radius Scale

The minimum value of this radius dynamics input multiplier.

Increase with Pressure

Makes the radius dynamics input multiplier increase as the pen pressure increases. When off, the radius dynamics input multiplier decreases. Min Radius Scale to 1 or 1 to Min Radius Scale.

Random Input

Random Input

Scales the radius of each brush stamp by a random amount.

Random Scale

The amount by which to randomize each brush stamp’s radius.

A value of x multiplies each stamp’s radius by a number that’s uniformly randomly selected between 1-x and 1+x. 0 means there’s no randomisation.

Speed Input

Speed Input

Scales the radius by a value based on the current stroke speed.

Max Speed

The speed (measured in viewport widths/second) at which this radius dynamics input multiplier reaches its final value. The final value is 1 when Increase with Speed is on. The final value is the Min Radius Scale when Increase with Speed is off.

Min Radius Scale

The minimum value of this radius dynamics input multiplier.

Increase with Speed

Makes the radius dynamics input multiplier increase as the speed increases. When off, the radius dynamics input multiplier decreases. Min Radius Scale to 1 or 1 to Min Radius Scale.

Rotation Dynamics

Rotation Dynamics

Makes rotation a dynamics output (driven by dynamics).

Rotation per Distance

Adds this amount of turns to the brush’s rotation for every viewport width of accumulated stroke distance.

Rotations at Full Pressure

Adds this amount of turns to the brush’s rotation when at full pen pressure. This parameter has no effect on the brush’s rotation when at minimal pen pressure.

Random Offset

Rotates every brush stamp by this random amount. A value of x rotates each stamp by a value uniformly randomly selected between -x/2 and x/2.

Rotations per Speed

Adds this amount of turns to the brush’s rotation for every viewport width/second of stroke speed.

Smooth

Save Brush as Recipe

Save the current brush as a partial node preset recipe. The node saves the recipe in the Brush Stroke Presets window (see View presets for how to open this window).

Brush Radius

The size of the brush. ⌃ Ctrl + ⇧ Shift + drag or to adjust the radius in the viewer.

Flow

The amount by which to multiply the smooth brush’s flow, which is the amount to locally blur the selected paint layer at the brush cursor.

Stroke Spacing

The space between stamps, measured in stroke widths. A value of 0.01 removes any spaces between the stamps so they touch. A value of 0.5 means the left half of a stamp is completely overlapped by its left neighbor and its right half is completely overlapped by its right neighbor.

Adjust Flow to Compensate for Spacing

Adjusts the amount of flow to compensate for variable stroke spacing. When on, changing stroke spacing results in the overall alpha-applied-per-distance to remain constant, modulo quantisation due the starts and ends of stroke stamps.

Rotation

The amount in degrees to rotate each stamp.

Orient to

When Stroke Alignment is Screen, this indicates whether to orient the stamp’s Y-axis (up) along the stroke direction or to match the screen space “up” direction.

Orient to

When Stroke Alignment is Surface, this indicates whether to orient the stamp’s Y-axis (up) along the stroke direction or toward the specified Up Direction parameter as closely as possible. With surface alignment, stamps are always placed tangent to the surface at the brush cursor, so in most cases the world space up direction can’t exactly be aligned to the stamp’s up direction. However, there is typically a surface tangent direction most closely aligned with the worldspace up direction that’s used as the stamp up direction.

Alpha

Save Alpha as Recipe

Save the current brush alpha as a partial node preset recipe.

If a raster image is being used as the current alpha, the saved partial node preset recipe HDA contains the raster image embedded as an HDA section to avoid the possibility of a brush recipe becoming unlinked from the image used to create it. If the current alpha is procedural (circle or square), a low resolution image is still saved as part of the preset recipe and is used as a thumbnail to display the recipe in the Alpha Catalogue.

Shape

The alpha image to use.

Square

Use an alpha image that’s in the shape of a square.

Circle

Use an alpha image that’s in the shape of a circle.

File Path

Use an alpha image from a file.

Catalog

Use an alpha image from the loaded recipe.

Soft Edge

When the Shape is Circle or Square, this is the amount of feathering around the edges of each stamp.

File

When the Shape is File Path, this is the file in which the alpha image is stored.

Catalog File (hidden)

The HDA section in which an alpha image is stored, when a recipe is loaded from the asset catalogue.

Depth Falloff

When Stroke Alignment is Surface, this is the amount by which each brush stamp extends in 3D space along its normal axis. When using Surface stroke alignment, the node constructs a local coordinate system for each brush stamp on the input geometry surface at the location of the brush cursor, using two surface tangents and the surface normal. Since the smoothed surface is typically not completely flat, the node computes a “Z alpha” as a multiplier for the stamp’s alpha based on its distance to the stamp plane. This multiplier is computed as smoothstep(-z_falloff, 0, -abs(z_distance)).

Squish

The amount by which to shrink the alpha image along its horizontal axis. A value of 1 collapses the image into a line.

Flow Dynamics

Flow Dynamics

Makes flow a dynamics output (driven by dynamics), where flow is interpreted as the local blur radius.

Distance Input

Distance Input

Multiplies the flow by a value based on the screen-space accumulated stroke distance.

Max Distance

The accumulated screen-space stroke distance (measured in viewport widths) at which this flow dynamics input multiplier reaches its final value. The final value is 1 when Increase with Distance is on. The final value is the Min Flow Scale when Increase with Distance is off.

Min Flow Scale

The minimum value of this flow dynamics input multiplier.

Increase with Distance

Makes the flow dynamics input multiplier increase as the accumulated screens-space stroke distance increases. When off, the flow dynamics input multiplier decreases. Min Flow Scale to 1 or 1 to Min Flow Scale.

Pressure Input

Pressure Input

Multiplies the flow by a value-based pen pressure.

Min Flow Scale

The minimum value of this flow dynamics input multiplier.

Increase with Pressure

Makes the flow dynamics input multiplier increase as the pen pressure increases. When off, the flow dynamics input multiplier decreases. Min Flow Scale to 1 or 1 to Min Flow Scale.

Random Input

Random Input

Scales the flow of each brush stamp by a random amount.

Random Scale

The amount by which to randomize each brush stamp’s flow.

A value of x multiplies each stamp’s flow by a number that’s uniformly randomly selected between 1-x and 1+x. If the final flow surpasses 1, the node instead uses a flow of 1. 0 means there’s no randomisation.

Speed Input

Speed Input

Scales the flow by a value based on the current stroke speed.

Max Speed

The speed (measured in viewport widths/second) at which this flow dynamics input multiplier reaches its final value. The final value is 1 when Increase with Speed is on. The final value is the Min Flow Scale when Increase with Speed is off.

Min Flow Scale

The minimum value of this flow dynamics input multiplier.

Increase with Speed

Makes the flow dynamics input multiplier increase as the speed increases. When off, the flow dynamics input multiplier decreases. Min Flow Scale to 1 or 1 to Min Flow Scale.

Radius Dynamics

Radius Dynamics

Makes the brush radius a dynamics output (driven by dynamics).

Distance Input

Distance Input

Multiplies the radius by a value based on the screen-space accumulated stroke distance.

Max Distance

The accumulated screen-space stroke distance (measured in viewport widths) at which this radius dynamics input multiplier reaches its final value. The final value is 1 when Increase with Distance is on. The final value is the Min Radius Scale when Increase with Distance is off.

Min Radius Scale

The minimum value of this radius dynamics input multiplier.

Increase with Distance

Makes the radius dynamics input multiplier increase as the accumulated screens-space stroke distance increases. When off, the radius dynamics input multiplier decreases. Min Radius Scale to 1 or 1 to Min Radius Scale.

Pressure Input

Pressure Input

Multiplies the radius by a value-based pen pressure.

Min Radius Scale

The minimum value of this radius dynamics input multiplier.

Increase with Pressure

Makes the radius dynamics input multiplier increase as the pen pressure increases. When off, the radius dynamics input multiplier decreases. Min Radius Scale to 1 or 1 to Min Radius Scale.

Random Input

Random Input

Scales the radius of each brush stamp by a random amount.

Random Scale

The amount by which to randomize each brush stamp’s radius.

A value of x multiplies each stamp’s radius by a number that’s uniformly randomly selected between 1-x and 1+x. 0 means there’s no randomisation.

Speed Input

Speed Input

Scales the radius by a value based on the current stroke speed.

Max Speed

The speed (measured in viewport widths/second) at which this radius dynamics input multiplier reaches its final value. The final value is 1 when Increase with Speed is on. The final value is the Min Radius Scale when Increase with Speed is off.

Min Radius Scale

The minimum value of this radius dynamics input multiplier.

Increase with Speed

Makes the radius dynamics input multiplier increase as the speed increases. When off, the radius dynamics input multiplier decreases. Min Radius Scale to 1 or 1 to Min Radius Scale.

Rotation Dynamics

Rotation Dynamics

Makes rotation a dynamics output (driven by dynamics).

Turns per Distance

Adds this amount of turns to the brush’s rotation for every viewport width of accumulated stroke distance.

Turns at Full Pressure

Adds this amount of turns to the brush’s rotation when at full pen pressure. This parameter has no effect on the brush’s rotation when at minimal pen pressure.

Random Offset

Rotates every brush stamp by this random amount. A value of x rotates each stamp by a value uniformly randomly selected between -x/2 and x/2.

Turns per Speed

Adds this amount of turns to the brush’s rotation for every viewport width/second of stroke speed.

Sample

Sample All Visible Layers

Samples the result of evaluating the blend stack and stores the sampled result as the new foreground color. When off, this tool samples only the paint layer.

Fill

Sample All Visible Layers

Uses the result of evaluating the blend stack to determine which texels to floodfill based on the Threshold. When off, this tool uses only the paint layer to determine the floodfilled area.

Opacity

The amount of transparency the foreground color has. A value of 1 shows only the foreground color in the filled area, with none of the previous layer visible.

Threshold

The maximum distance in Euclidean RGB-space at which floodfill proceeds from the color of the texel clicked on in the viewer state to every texel traversed while flood filling. Because the maximum distance between colors in an RGB cube is sqrt(3), this parameter is multiplied by this value to normalize the parameter to a [0,1] range. For example, if in the viewer state a red (1,0,0) texel is clicked and this parameter is set to x, floodfill proceeds so long as it can traverse texels whose color satisfies |(1,0,0) - (r,g,b)|_2 <= x/sqrt(3). This parameter is forwarded to Segment by Connectivity’s Threshold parameter.

To fill the entire paint layer with a single color, set this to 1 to ensure all texels get flooded.

Inputs

canvas

An optional layer (background image) onto which every paint layer in the blend stack is repeatedly blended onto. If no canvas is connected, the node uses a default canvas made with the COP network context settings.

For RGB, mono, and UV signatures, a black color = (0,0,0), alpha = 1 canvas is used by default. For metadata and RGBA signatures, a transparent color = (0,0,0), alpha = 0 canvas is used by default.

uvgeo

An optional UV-mapped geometry on which to paint. This is output as visgeo with the paint output applied as its base color for visualization. The final alpha value acts as this geometry’s opacity.

Outputs

paint

The result of evaluating the blend stack by repeatedly blending each paint layer onto the accumulation of layers from bottom to top. The canvas layer is the bottom.

visgeo

The geometry that visualizes the result of evaluating the blend stack while you paint in the viewer state.

layers

The cable that contains the paint layers as individual wires (color, alpha, and optional mask layers). The name of the paint layer in the blend stack determines the names of the wires.

Tip

Display visgeo when the Paint 3D’s display flag is on, and use the paint and layers outputs downstream in the network.

See also

Copernicus nodes