Houdini 20.0 Nodes Geometry nodes

Attribute Adjust Integer geometry node

Modifies integer attribute values on the incoming geometry.

On this page
Since 18.5

Overview

The Attribute Adjust Integer SOP provides an interface to vary integer type attribute values, reducing the need to create VOP networks or write VEX code. It allows modification by a uniform value or a varying value for each element. The varying values can be generated fully randomly or sampled from a spatially-coherent noise pattern.

This node can also post-process the values, for example by blending them with another attribute or limiting them to the specified range.

The following graph provides a basic schematic view of the processes behind Attribute Adjust Integer:

Parameters

General

Group

The subset of the input geometry to apply the modifications to. Leave this blank to affect all elements.

Attribute Name

The name of the attribute to create or modify. If the attribute does not exist with the given name, it will be added to the selected Attribute Class.

Attribute Class

Element type for the destination attribute (specified by Attribute Name).

Adjustment Value

Adjust Value

Generates a value that will be combined with the incoming attribute value. When this option is turned off, only post-processing will be done.

Operation

Specifies how to combine the generated adjustment value with the incoming attribute value. If the target attribute does not exist on the input geometry, all operations will have the same effect.

Set Initial

Use this operation if you want to ensure the attribute is created, but don’t want to overwrite any existing value. If the target attribute is already present, its values will be left untouched.

Set Always

Use this operation if you want to overwrite any existing value with the generated adjustment value.

Add

The generated adjustment value will be added to the existing attribute value.

Subtract

The generated adjustment value will be subtracted from the existing attribute value.

Multiply

The existing attribute value will be multiplied by the generated adjustment value.

Minimum

Output will be minimum of the existing attribute value and the adjustment value.

Maximum

Output will be maximum of the existing attribute value and the adjustment value.

Pattern Type

Specifies how the adjustment value is generated. Constant Value will use the same Value for every element. Random and Noise will generate varying values across each element of the geometry, in which case varying values will be inside a well defined range or selected from a list of specific values. Additionally, you can provide another attribute to use as the adjustment value for every element.

Constant

The adjustment value will be the same for all elements in the geometry. Use this to do simple math operations for all elements. For example, to offset all element values.

Random

The adjustment values will be sampled fully randomly. Adjustment values can be inside a well defined range or selected from a list of specific values.

Noise

The adjustment values will be sampled based on a coherent noise field using the Attribute Noise SOP. Adjustment values can be inside a well defined range or selected from a list of specific values.

Attribute

Value of the attribute specified in Attribute Name will be used as the adjustment value.

Range Values

The adjustment value will be generated in the selected range. This parameter governs how this range is specified. You can also provide a list of specific values or multiple ranges by selecting Specific Values, which can be useful to create attribute values representing specific trigger frames.

Min/Max

The range contains all values between Min Value and Max Value.

Min Value

Max Value

Custom Range

0

1

0 to 1

5

10

5 to 10

-5

7

-5 to 7

Min + Range Length

The range contains all values between Min Value and Min Value + Range Length. For instance, if Min Value is 2 and Range Length is 5, the minimum and maximum limits of the range will be 2 and 7, respectively.

Min Value

Range Length

Custom Range

0

1

0 to 1

5

10

5 to 15

-5

7

-5 to 2

Middle ± Range Length

The range contains all values between Middle Value - Range Length / 2 and Middle Value + Range Length / 2. For instance, if Middle Value is 8 and Range Length is 4, the minimum and maximum limits of the range will be 6 and 10, respectively. The range will be rounded to integer values.

Middle Value

Range Length

Custom Range

0

2

-1 to 1

5

10

0 to 10

-5

7

-8 to -2

Specific Values

The adjustment value will be one of the discrete listed values. The probability of selecting each value is proportional to its Weight. Pattern Type controls how the adjustment value is sampled for each element.

Constant Value

Sets the adjustment to this value for every element in the geometry.

Min Value

Sets the minimum limit of the custom range.

Max Value

Sets the maximum limit of the custom range.

Middle Value

This value lies in the center of the custom range.

Range Length

Sets the length of the custom range; that is, the difference between the maximum and minimum of the range will be equal to the value of this parameter.

Value Distribution

Provides a way to control distribution of the generated adjustment values.

Uniform

Generated adjustment values will be uniformly distributed within the custom range.

Elements are distributed in 0 to 3 range using different pattern types:

Uniform with Remapping

The generated value will be fed through the Remap Ramp to produce the final adjustment value. You can use this option to shift the values or create gaps in the given range.

Elements are distributed in 0 to 3 range using different pattern types, while shifting values towards the minimum limit of the range:

Uniform with Outliers

Allows for a percentage of elements to extend beyond the given range. Use the outlier visualizer button next to Outlier Attribute to see which elements are selected as outliers. It is possible to extend the range beyond the minimum and/or maximum limits, either by adding or multiplying the selected limits with Outlier Range.

Using outliers to extend both minimum and maximum range limit:

Note

It is possible to achieve similar value manipulation by using Uniform with Remapping. However, Uniform with Outliers lets you you to precisely control the proportion of points that fall outside the proper range.

Remap Ramp

The intermediate uniformly-distributed value will be fed through this ramp to obtain the adjustment value. Vertical axis of this ramp spans the custom range.

Outlier Percent

Controls the number of outliers. Value of 15 means that the adjustment value for 15% of all elements will fall outside the original range.

Outlier Attribute

Integer attribute to store whether an element is outlier (indicated by 1) or not (signaled with 0).

Outlier Range

Controls how much the outlier range extends beyond the original. You can extend the maximum range, minimum range, or both either by multiplication or addition.

Additive

Outlier Range will be added to the maximum and/or minimum of the original range.

Elements are distributed in -2 to 2 range with Outlier Range set to 3:

Multiplicative

Outlier Range will multiply the maximum and/or minimum of the original range.

Elements are distributed in -2 to 2 range with Outlier Range set to 3:

Below Min Value

Only extend the minimum limit of the range.

Elements are distributed in -2 to 2 range with Outlier Range set to 3:

Both

Extend both the minimum and maximum limit of the range.

Elements are distributed in -2 to 2 range with Outlier Range set to 3:

Seed

Controls random selection of outliers. Change the value of the Seed if the outlier selection is undesirable.

Enable Stepping

If this checkbox is turned on, possible adjustment values will be quantized to the Step Size. For example, if the minimum and maximum of the range are 1 and 9, and the Step Size is set to 2, then the possible adjustment values are 1, 3, 5, 7, 9.

Step Size

Controls the spacing between the generated adjustment values.

Number of Values

Controls the number of sets of possible adjustment values. Each set can be a single value or a list of numbers. Probability of selecting each adjustment from each set is proportional to its Weight.

Value

Sets an exact adjustment value.

Value Type

In Constant mode, the set will only contain the Value. In List of Values mode, Value List defines the set of values.

Weight

Samples the given adjustment value with the specified weight. Values with lower Weight will be selected less frequently. When all weights are the same, each adjustment value has the same probability.

Value List

Sets adjustment values by a list of independent range sequences or numbers. The listings can be separated by whitespace, commas, and semi-colons. Use the syntax min-max:stepsize, which expands to values between min and max, separated by stepsize. When stepsize is not provided, the default value of 1 is used.

Note

Each expanded values will be assigned the same Weight.

Value List

Expanded Values

5

5

3;5 7

3, 5, 7

1-3

1, 2, 3

0-9:2

0, 2, 4, 6, 8

0-9:3 5; 10-16:2

0, 3, 6, 9, 5, 10, 12, 14, 16

Random

Randomization By

Specifies how the pseudo-random number generator is seeded for each element to produce the adjustment value. Element Number will use the point, primitive, or vertex number depending on Attribute Class. Topology changes on the input geometry can shift element numbers, causing different adjustment values to be used. Custom Attribute lets you provide an integer attribute to make sure the random value is not dependent on element order.

Tip

In case of a particle simulation, use id attribute to apply the same random value to the particles throughout their lifetime. You can also use Custom Attribute to apply the same random value to multiple elements.

Custom Attribute

The attribute to use for seeding random number generation.

Seed

All generated values depend randomly on this value. Choose a different value if the current seed produces undesirable samples.

Noise Pattern

Noise type

The type of noise to generate. Different algorithms give noise with different characteristics.

Fast

The default. A faster and more interesting variant of Perlin noise.

Sparse Convolution

Sparse Convolution noise is similar to Worley noise. Does not have artifacts at grid points.

Alligator

Produces a bumpy output. Named for its alleged resemblance to alligator skin.

Perlin

A noise where the visual details are the same size. Wikipedia article

Perlin Flow

A noise that’s stable over time, like a rotated Perlin noise, useful to create noise that seems to swirl and flow smoothly across time. Use the Flow rotation parameter below to control the rotation.

Simplex

A noise similar to Perlin but the noise lattice is on a tetrahedral mesh rather than a grid. This can avoid the grid patterns often visible in Perlin noise.

Worley Cellular F1

Produces cellular features similar to plant cells, ocean waves, honeycombs, cratered landscapes, and so on. Wikipedia article

Worley Cellular F2-F1

A variant of Worley noise that produces blunted and cornered features.

Manhattan Cellular F1

A variant of Worley F1 noise that uses Manhattan distance calculation. Useful when you want unusual-looking noise.

Manhattan Cellular F2-F1

A variant of Worley F2-F1 noise that uses Manhattan distance calculation. Useful when you want unusual-looking noise.

Chebyshev Cellular F1

A variant of Worley F1 noise that uses Chebyshev distance calculation. Useful when you want unusual-looking noise.

Chebyshev Cellular F2-F1

A variant of Worley F2-F1 noise that uses Chebyshev distance calculation. Useful when you want unusual-looking noise.

Location Attribute

The node generates values for each element by sampling a noise field at the location specified by this vector attribute on the incoming geometry. If this is P (point position, the default), the points of the geometry will appear to swim through the noise. If you want the noise to “stick” to the points, you can copy the initial point positions into a rest attribute and use that attribute here instead.

Element Size

Uniform scale of elements in the noise.

Click the Per Component button for separate scales along each axis.

Element Scale

When you turn on the Per Component button, this lets you scale the Element Size separately across each axis.

Offset

Offset within the evaluated noise field (added to each axis). If you have the general noise effect you want, but want to get a different set of values for a different look, try changing the offset.

You can animate the noise using an expression such as $T * 0.25 here. This is faster to compute than Animate Noise, but gives the visual effect of “panning” across the noise field, which may or may not be acceptable.

Click the Per Component button for separate additional offsets along each axis.

Offset

When you turn on the Per Component button, this lets you add the a separate offset along each axis.

Use VEXpression

Turn this checkbox on to use a VEXpression to override parameters based on arbitrary attribute values.

Animation

Animate Noise

Vary the generated noise with time. Some noise types do not support this feature.

Applying animation this way on geometries with millions of element count is slower to compute than using expressions such as $T * 0.25 in the Offset parameter to “pan” across the noise field.

Pulse Duration

When Animated Noise is on, this controls the rate of change of the noise pattern.

Fractal

The fractal controls let you add additional fractal noise on top of the output of the basic noise type.

Fractal Type

None

Does not add any additional noise on top of the basic noise.

Standard

Adds pseudo-random noise on top of the basic output.

Terrain

Adds noise like “Standard” but dampens the noise in the valleys, which can be useful for generating mountainous terrain.

Hybrid

Like terrain, but with more sharpness in the valleys.

The following parameters are available when Fractal type is anything except None.

Max octaves

The number of iterations of distortion to add to the output of the basic noise. The more iterations you add, the more “detailed” the output. Note that the output may have fewer octaves than this parameter (that is, increasing the parameter will eventually stop adding detail), because the node eventually stops when there’s no more room to add more detail in the output.

Lacunarity

The frequency increment between iterations of fractal noise added to the basic output. Note that you can use a negative value.

Roughness

The scale increment between iterations of fractal noise added to the basic output. The higher the value the larger the “jaggies” added to the output. You can use a negative value for roughness.

Warping

Lattice Warp and Gradient Warp are two methods for adding “fractal-ness” to the basic noises by warping the noise space.

Lattice Warp

Adds “stringiness” or “wiriness” to standard noise.

Lattice Warp Size

Controls base feature size of the generated noise. The value applies to each axis.

Gradient Warp

Widens the peaks or valleys of the noise output.

Accumulate Lattice Warp

Accumulates the warp for each iteration (octave) of added fractal noise. This can add interesting smudgy effects when used in images, and interesting landmarks when used for terrain.

Accumulate Gradient Warp

Accumulates the warp for each iteration (octave) of added fractal noise.

Flow Rotation

When Noise type is “Flow”, this controls the rotation of the “swirl”, from 0 to 1. Because this parameter is fractional, you can’t just use $F to animate it, since all integral values will look the same, representing a complete revolution. Instead, try something like $FF / 100.

Distortion

Controls how much the noise is distorted in the direction of decreasing noise values if Distortion is greater than 1, and in the direction of increasing noise values if Distortion is less than 1. When worley details are added to the noise pattern, the effect of distortion are largely diminished.

Distortion with a value of 1:

Distortion with a value of -1:

Stretch

How much to stretch the noise in each direction. The advantage of using this instead of Element Size is that it preserves some details unstretched, making the stretched noise pattern more natural looking.

Comparing Element Scale of 3 (left) to Stretch value of 3 (right) along the X-axis:

Droop

Warps the generated noise such that the noise pattern is bending or hanging towards the given droop direction.

Noise pattern without (left) and with droop applied (right):

Droop Direction

The direction in which the noise is warped.

Post-Process

Enable Post-Process

Displays a set of controls to further fine tune the output attribute value. All post-process modifications will take place after adjustment is applied to the attribute, unless set otherwise.

Minimum

If this checkbox is turned on, output attribute values are clamped to the specified Minimum. Use the menus on the right to clamp with unit conversion.

Maximum

If this checkbox is turned on, output attribute values are clamped to the specified Maximum. Use the menus on the right to clamp with unit conversion.

Attribute Properties

Default Value

If this checkbox is turned on, it overwrites the default value property for the target attribute. Merging the output of this node with another geometry that is missing the attribute guarantees that new values will be initialized to this Default Value.

See also

Geometry nodes