Channel Modifiers

Channel modifier nodes act on channels and changes them in various ways. In general channel modifiers require at least one Eddy channel input and provide different modes depending on the passed ValueType. The ValueType is the type of values (Scalar or Vector) stored in a channel.

Typically the modes and output ValueType of a modifier is determined as soon as the first input is connected and cannot be changed after this.

Consider the merge node as an example. The node will have an undefined ValueType on creation. If a scalar Eddy channel is connected the Merge node will only display compatible operations in its Mode Parameter and the output ValueType will become Scalar. At this stage the node will retain the channel ValueType which cannot be changed for the lifetime of the node. To change the output type of such a ‘locked’ modifier a new modifier should be created and connected to replace the locked one.

EddyComponent

Constructs a vector channel from three input scalar channels representing the x, y and z components of the vector. If an input componnet is not connected the value of that component is assumed to be zero.

Usage

This node is useful when one wants to manually bundle together three scalar channels into a vector channel for use as for example guide forces for a simulation.

For the inverse operation (i.e., extracting a component of a vector channel as a scalar field), see the EddyMath node.

Inputs/Outputs

Connections

ClassType

Number

Description

fieldX

EddyChannel (scalar)

0-1

The x component of the vector channel created by this node

fieldY

EddyChannel (scalar)

0-1

The y component of the vector channel created by this node

fieldZ

EddyChannel (scalar)

0-1

The z component of the vector channel created by this node

Outputs

EddyChannel (vector)

1

An Eddy vector channel constructed from the three input channels

Controls

Parameter

Values

Description

Transform Type

List

Specifies how this vector field should behave when transformed. See Vector Channel Transformations.

alternate text

Constructing a vector channel from scalar channels

EddyDistort

Distorts the input channel through a vector channel describing the displacement.

Usage

This node can for example be used to deform a simple geometric primitive such as a box or sphere into more complex shapes.

Note

The node’s output ValueType and Modes are determined by the ValueType of the initially connected Eddy channel and cannot be changed later.

Note

Using the Trace mode with Trace Steps is set to 1 is equivalent to direct displacement

Inputs/Outputs

Connections

ClassType

Number

Description

field

EddyChannel

1

An Eddy channel that will be distorted

offset_field

EddyChannel (vector)

1

An Eddy vector channel representing the distortion

Outputs

EddyChannel

1

A distorted version of the input channel

Controls

Parameter

Values

Description

Mode

List

Type of distortion applied to the input

Vector Scale

0…inf

Multiplier used to control the magnitude of the distortion

Trace Steps

1…inf

Maximum number of trace steps in the vector channel before the input is sampled. More steps increase the accuracy of the deformation but is more time consuming to compute.

BBox Gain

1…inf

Adjusts the size change of the generated bounding box for the new output channel. A value of 0.0 will keep the input bounds.

Modes

Mode

Description

Trace

Starting at the current position perform one or more steps along the vector channel before sampling the input channel

Remap Coordinates

Sample the input channel at the UVW values (coordinates) provided by the vector channel

Motion Blur

Motion Blur the input channel based on the provided vector channel

alternate text

Distorting a sphere through a vector noise channel

EddyFilter

Performs a filtering operation on the input channel. A filtering operation will appear like a blur and smooth the features of the input.

Usage

This node can be used to smooth/blur a channel.

Note

The source samples are sampled on the fly and not aggregated like in a mipmap. This means larger kernel windows will lose information of the higher detailed input.

Inputs/Outputs

Connections

ClassType

Number

Description

field

EddyChannel

1

An Eddy channel on which the filtering operation is applied

Outputs

EddyChannel

1

An Eddy channel containing the result of the operation

Controls

Parameter

Values

Description

Mode

List

A list of the types of operations available for the input ValueType

Kernel Width

0…inf

The size of the kernel window size. All the samples lie within this region. The value is specified in distance units.

Modes

Mode

Input ValueType

Output ValueType

Description

Box

Scalar/Vector

Scalar/Vector

Performs a 3x3x3 box filter within the kernel size window.

Gaussian

Scalar/Vector

Scalar/Vector

Performs a 5x5x5 gaussian filter within the kernel size window.

EddyFiniteDifference

Perform finite difference operations on the input channel. A finite difference operation is an approximation of the equivalent mathematical operator - for example the gradient operator.

Usage

This node can be used to extract information and/or properties from a channel. The gradient of a signed distance channel will for example be a vector pointing in the direction of the geometric surface normal.

Note

Both the gradient and laplace operators can be used as edge detectors. The magnitude of the gradient and the value of the laplacian will peak around edges in the input data.

Note

The node’s output ValueType and Modes are determined by the ValueType of the initially connected Eddy channel and cannot be changed later.

Inputs/Outputs

Connections

ClassType

Number

Description

field

EddyChannel

1

An Eddy channel on which the finite difference operation is applied

Outputs

EddyChannel

1

An Eddy channel containing the result of the operation

Controls

Parameter

Values

Description

Mode

List

A list of the types of operations available for the input ValueType

Stencil Width

0…inf

Spacing between the samples used in the finite difference computation. This distance should ideally be around the size of the smallest feature present in the input. This would for example be the voxel size of a discrete channel.

Note

If the feature size of the data is unknown or hard to estimate a good Stencil Width can be found manually. Start with a Stencil Width that is much smaller than the size of the bounding box of the input channel - for example the longest side of the bounding box divided by 100. Then inspect the result using the visualizer and manually adjust the Stencil Width up or down until the result contains a satisfactory level of detail.

Modes

Mode

Input ValueType

Output ValueType

Description

Gradient

Scalar

Vector

Compute the gradient of the input channel

Laplacian

Scalar

Scalar

Compute the laplacian of the input channel

Curl

Vector

Vector

Compute the curl of the input channel

Divergence

Vector

Scalar

Compute the divergence of the input channel

alternate text

Finite difference gradient of a sphere distance channel

EddyMask

Generates a mask from a scalar channel by returning the Inside Value whenever the input channel is smaller than the Iso parameter value and the Outside Value everywhere else. This is effectively a method for classifying space into regions and assigning user specified values to these regions.

Usage

Signed distance channels in Eddy always have negative values inside and positive values outside the surface. Using an iso value of 0.0 and for example an inside value of 1.0 and outside value of 0.0 this can be used to mask out the inside of for example a sphere channel source. The resulting channel will have the value 1.0 inside the sphere and 0.0 outside.

Inputs/Outputs

Connections

ClassType

Number

Description

field

EddyChannel

1

An Eddy channel from which the mask will be created

Outputs

EddyChannel

1

An Eddy channel containing the resulting mask

Controls

Parameter

Values

Description

Mode

List

Set the output ValueType of this channel

Transform Type

List

Specifies how this vector field should behave when transformed. See Vector Channel Transformations.

Iso Value

-inf…inf

Input values below this threshold are treated as “inside”

Falloff

0…inf

Falloff distance in scene units between the inside / outside value. Use this to achieve a smooth transition between the inside and outside regions.

Inside Value

-inf…inf

Returns this value where the input value is smaller than the iso threshold

Outside Value

-inf…inf

Returns this value where the input value is larger than the iso threshold

alternate text

Using a sphere to generate a mask

EddyMath

Perform basic mathematical operations on the input channel.

Usage

This node can be used to apply mathematical operations to change channel data - including selecting individual components of a vector channel.

Note

The node’s output ValueType and Modes are determined by the ValueType of the initially connected Eddy channel and cannot be changed later.

Inputs/Outputs

Connections

ClassType

Number

Description

field

EddyChannel

1

An Eddy channel on which to apply the math operation

Outputs

EddyChannel

1

An Eddy channel containing the result of the math operation

Controls

Parameter

Values

Description

Mode

List

Types of math operations supported for the input ValueType

Modes

Mode

Input ValueType

Output ValueType

Description

Absolute

Scalar

Scalar

Returns the unsigned (i.e. absolute) value of the input

Sign

Scalar

Scalar

Return the sign of the input value ( -1.0 or 1.0 )

Smoothstep

Scalar

Scalar

Applies a smooth step function to the input. Assumes that the input has a normalized input value range of between 0.0 and 1.0.

Pow

Scalar

Scalar

Return the second power of the input (i.e. output = input*input)

Magnitude

Vector

Scalar

Return the magnitude (i.e. length) of the input vector

Normalize

Vector

Vector

Return the normalized input vector (i.e. a vector of length 1.0)

Vector Component X

Vector

Scalar

Return the x component of the input vector

Vector Component Y

Vector

Scalar

Return the y component of the input Vector

Vector Component Z

Vector

Scalar

Return the z component of the input Vector

alternate text

Manually masking out the interior of a sphere distance channel

EddyMerge

Composites together multiple Eddy channel inputs.

Note

The node’s output ValueType and Modes are determined by the ValueType of the initially connected Eddy channel and cannot be changed later.

Rules apply when mixing input ValueTypes

  • Scalar/Scalar is allowed

  • Vector/Vector is allowed

  • Vector/Scalar is allowed

  • Scalar/Vector is NOT allowed

Note

To multiply a vector channel with a Scalar Mask, connect first the vector channel and the scalar channel afterwards.

Note

In some cases Scalar/Vector composites can be performed by converting the scalar channel to a vector channel using a EddyComponent node with the scalar channel as the input to all three components.

Note

For non-commutative operations (subtraction and division) the first input channel connected to the node will act as the value source and each additional channel added will subtract/divide this value.

Usage

This node can be used to merge different Eddy channels into a single channel. The manner in which the channel values are merged is controlled through the Mode parameter.

Inputs/Outputs

Connections

ClassType

Number

Description

fields

EddyChannel

1+

Eddy channel(s) that will be merged into a single channel

Outputs

EddyChannel

1

The Eddy channel that is the result of the merge

Controls

Parameter

Values

Description

Mode

List

Type of compositing operation

First input bounds only

True/False

Specifies that only the bounds of the first input should be used, otherwise all input bounds will be combined for the output.

Modes

Mode

Description

Additive

Adds all input channels together

Subtract

Subtracts each channel input (except the first one) from the value of the first channel input connected

Minimum

Computes the minimum value of all input channels

Maximum

Computes the maximum value of all input channels

Multiply

Computes the product of all input channels

Divide

Divides the first input channel with all connected channels (except the first one)

alternate text

Cutting away a sphere shape from a cube

EddyRasterize

Rasterizes a field into a voxel grid.

Usage

This node can be used to rasterize a field into a voxel grid. If the input field was made from a large network of expensive nodes, it can be expensive to sample. The rasterized output field is faster to sample, albeit at the cost of memory and quality. Operations which require a lot of sampling (e.g. rendering) can benefit from using a rasterized field.

Inputs/Outputs

Connections

ClassType

Number

Description

field

EddyChannel

1

An Eddy channel that will be rasterized.

Outputs

EddyChannel

1

An Eddy channel that contains the rasterized field.

Controls

Parameter

Values

Description

Voxel Size

0…inf

The size of the voxels to use. This has a big effect on memory usage and quality.

Interpolator

List

The interpolator to use when sampling the rasterized voxels. See Interpolators for more details.

EddyRemap

Remaps the value ranges of the input channel.

Note

The node’s output ValueType and Modes are determined by the ValueType of the initially connected Eddy channel and cannot be changed later.

Usage

This node can be used to remap the value range of the input channel to another user defined range. For example to the interval 0..1 for use as an alpha mask.

Inputs/Outputs

Connections

ClassType

Number

Description

field

EddyChannel

1

An Eddy channel that will be remapped

Outputs

EddyChannel

1

An Eddy channel that contains the result of the remapping operation

Controls

Parameter

Values

Description

Ramp

Ramp

Control the remapping via Nuke’s ramp widget

Clamp

True/False

Specifies if the result should be clamped to 0…1

EddySetBounds

Assigns new bounds to the input channel.

Usage

This node can be used to change the bounds on a channel. Usually the bounds on a field are determined automatically, but in cases where the automatic bounds are not good enough for some reason, this node allows the bounds to be set manually.

Note

The bounds of a channel cannot be used to perform clipping or masking on the values in the channel. Instead the bounds should be thought of as defining the ‘interesting’ region of the channel. Channels can and do have values defined outside of the bounds. For example, an emitter uses the bounds to determine where to emit, however this is not always exact so values from just outside the bounds may be emitted also. Use compositing operations to mask out regions correctly.

Inputs/Outputs

Connections

ClassType

Number

Description

field

EddyChannel

1

An Eddy channel that will have its bounds changed

bounds

EddyBounds

1

The new bounds for the channel

Outputs

EddyChannel

1

An Eddy channel that contains the input channel with the new bounds

alternate text

Setting the bounds of a Perlin noise channel

EddyTransformField

Applies an axis transformation to a channel.

Usage

This node allows a channel to be transformed by an axis node. While most channel nodes have axis inputs, sometimes it is more convenient to apply the transformation later in the graph, for example to transform a channel which was composited from many inputs.

Inputs/Outputs

Connections

ClassType

Number

Description

field

EddyChannel

1

An Eddy channel that will be transformed

axis

axis

1

An axis node to provide the transformation

Outputs

EddyChannel

1

An Eddy channel that has been transformed by the axis

EddyVectorMath

Perform vector math operations on two input channels.

Usage

This node is used to apply vector math operations to Eddy vector channels.

Inputs/Outputs

Connections

ClassType

Number

Description

fieldA

EddyChannel

1

The first Eddy vector channel of the vector math operation fieldA OP fieldB

fieldB

EddyChannel

1

The second Eddy vector channel of the vector math operation fieldA OP fieldB

Outputs

EddyChannel

1

An Eddy vector channel that is the result of the vector math operation

Controls

Parameter

Values

Description

Mode

List

Types of math operations supported for the input ValueType

Modes

Mode

Input ValueType

Output ValueType

Description

Dot

Vector

Scalar

Return the dot product of the two vectors

Cross

Vector

Vector

Return the cross product of the two vectors

alternate text

Using vector math to calculate trajectories around a cylinder

EddyChannelSet

Combines multiple fields into a channel set.

Usage

This node combines multiple input channel sets and fields into a single result channel set. Channel names can be provided for the fields included in the channel set. If an individual channel input is given the same name as a pre-existing channel in an input channel set, then it will replace that channel in the result.

Inputs/Outputs

Connections

ClassType

Number

Description

channel

EddyChannelSet/EddyChannel

0+

Channels and/or channel sets which will be combined into the channel set result.

Output

EddyChannelSet

1

Channel set containing all of the input channels.

Controls

Parameter

Values

Description

ChannelNames

ListViewWidget

Allows channel names to be specified for the input channels. By default, the channel will be given the same name as the input node.

alternate text

Combining some rasterized fields into a ChannelSet so they can be written to a cache.

EddyFieldDebug

Allows numeric value visualization of Eddy Fields.

Usage

This node can be used to inspect the numeric values of any Eddy field. It works both for scalar and vector fields and can be useful to debug complex field compositing operations.

Inputs/Outputs

Connections

ClassType

Number

Description

channel

EddyChannel (Scalar/Vector)

1

Scalar channel that will be used to drive the field debug node.

Controls

Parameter

Values

Description

Enable Visualizer

True/False

Enables drawing.

Resolution

1…512

Number of samples along the dominant axis of channel bounding box.

Width

0…inf

Multiplier for the channel bounding box or overall width when bounds aren’t provided.

Draw Bounds

True/False

Enable drawing of the bounding box wireframe.

Draw Subbounds

True/False

Enable drawing of the active space wireframe for sparse channels.

Numeric Text Color

(0,0,0)…(inf,inf,inf)

The color of the numeric text.

Text Scale

0…inf

Scales the size of the text.

Numeric Precision

1…inf

The floating point precision. Controls the maximum number of digits displayed after the decimal separator.

Scientific Notation

True/False

Use scientific notation to display floating point numbers.

Draw Background

True/False

Adds a background behind each text to make the text more readable.

Background Color

(0,0,0)…(inf,inf,inf)

The color of the background area behind the text.

Display Values In Range

True/False

Only values that are within the range specified will be displayed. For vector values the magnitude is used to check the range.

Minimum Value Range

-inf…inf

Minimum range of the values that will be displayed.

Maximum Value Range

-inf…inf

Maximum range of the values that will be displayed.

Crop Window

True/False

Enable GL corner points to adjust the visualizer draw region.

Reset Crop

Button

Reverts the crop window to the original bounding box from the channel.