Houdini 20.0 Nodes Geometry nodes

Attribute Adjust Color geometry node

Modifies values for a vector-type color attribute on the incoming geometry.

On this page
Since 19.0

Overview

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

This node can also post-process the color, for example by blending them with another attribute or limiting them to the specified range. Additionally, it has the functionality to look up color from a disk image.

Note

Attribute Adjust Color SOP works with 3 float (RGB) color attribute only. To specify alpha for the geometry, use Attribute Adjust Float with Attribute Name set to Alpha.

The following graph provides a basic schematic view of the processes behind Attribute Adjust Color.

Parameters

General

Group

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

Blend

Blends between the incoming attribute and the output attribute value. A blend of 0 means that no adjustment takes place: the incoming attribute value is the output value. Likewise, a value of 1 will output the adjusted value, ignoring the initial value. Blending can be done either by uniform value (Constant) or by value of the Blend Attribute (when the menu on the right of this parameter is set to Use Attribute).

Blend Attribute

A float attribute between the range 0 to 1 to use as blend value. This attribute must be present on the appropriate elements (as set by Attribute Class). A blend value of 0 means that no adjustment takes place: the incoming attribute value is the output value. Likewise, a value of 1 will output the adjusted value, ignoring the initial value.

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.

Component Scope RGB

Specifies which color components will be changed by this node in RGB space. This filter applies as the last step, when the adjustment value is combined with the incoming attribute.

Component Scope HSV

Specifies which color components will be changed by this node in HSV space. This filter applies as the last step, when the adjustment value is combined with the incoming attribute.

Attribute Class

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

Pre-Process

Enable Pre-Process

Turns on a set of controls to fine tune the incoming attribute value. All pre-process modifications will take place before the adjustment is applied to the attribute. You can also initialize the attribute if it does not exist in the input as part of the pre-process.

Delete All Existing Color Attributes

When this checkbox is turned on, all incoming color attributes will be deleted before pre-processing. Use this to remove any conflicting color attributes.

Note

Point colors override primitive colors. So even if you're using this node to color primitives, if there are point colors already applied, your changes won’t be applied unless you turn on this checkbox.

Overwrite Initial Color

Sets the color for the attribute. Use it to initialize a new attribute or to overwrite any existing attribute value.

Initial Color From

Controls how the initial color will be generated. Constant will be the same for all elements in the geometry, while Color Attribute and Float Attribute will copy the given attribute’s values into the destination attribute.

Constant

Sets the same color for all elements in the geometry.

Color Attribute

The colors of this attribute will be copied into the destination attribute (specified by Attribute Name). Use the RGB Component Scope on the right side of this parameter to filter the copied values.

Float Attribute

The values of this attribute will be copied into the destination attribute (specified by Attribute Name). Use the RGB Component Scope on the right side of this parameter to filter the copied values.

Initial Color

This color will be set for all elements in the geometry, prior to adjustment.

Color Attribute

The values of this attribute will be copied into the destination attribute (specified by Attribute Name), prior to any adjustment.

Component Scope

Specifies which color components will be initialized from the color attribute (specified by Color Attribute) based on RGB color model.

Float Attribute

The values of this attribute will be copied into the destination attribute (specified by Attribute Name).

Component Scope

Specifies which RGB color components will be initialized from the floating point attribute (specified by Float Attribute).

Adjustment Value

Adjust Value

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

Operation

Specifies how to combine the generated adjustment color 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. This is often used in pipelines were the existence of a color attribute is required.

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.

Overlay

The light values of the generate adjustment will be added, while the dark values will be multiplied with the existing attribute value.

Screen

Adds the adjustment value into the existing attribute value as if you were projecting the adjustment value through a light.

Hard Mix

The generated adjustment value will be added to the existing attribute value. If the resulting sum of a component one or greater, it receives the value of 1, otherwise it receives the value of zero.

Difference

The existing attribute value will be subtracted from 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 color attribute to use as the adjustment value for every element. Color Map provides a method to place a texture onto the geometry with existing uv attributes. With Line and Radial you can draw the respective shape in the viewport to vary the color accordingly, while Bounding Box will generate colors based on the relative position of each element inside the geometry’s bounding box.

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 overlay a color onto existing attribute value.

Random

The adjustment values will be sampled fully randomly. Every point will receive a random color value based on the Range Values.

You can also choose to Randomize By a Custom Attribute, which can be useful if you want to do more complicated things like copy shapes to points and give them a random color. For example, if you're creating rocks on a beach and want them all to be slightly varying in color.

Noise

The adjustment values will be sampled based on a coherent noise field using the Attribute Noise SOP. These noise patterns and colors are most commonly controlled using the Color Ramp and Noise Pattern parameters. However, if you change Range Values to Specific Values, you can directly choose the colors to include as well as the amounts of each using the Weight parameters.

Tip

You can use an Attribute Noise SOP if you want to create more complicated noise patterns. The parameters available on this node are a simplified version of what’s available on the full node.

Color Attribute

The value of the attribute specified in Adjustment Attribute will be used as the adjustment value.

Remap Attribute

The adjustment values will be sampled based on the attribute specified by Source Attribute. For example, you could use a Mask Along Geometry SOP to create a mask, and then use this option to apply colors to it.

Color Map

Uses an image from disk to color the points on your geometry. This is different from adding a texture map as a shader, since you will actually sample the color from the image at each point. This can be useful to drive other effects, such as particle simulations, which can pick up the color from the geometry.

To specify alpha for the geometry, use an Attribute Adjust Float SOP with Attribute Name set to Alpha.

Tip

You can insert a Color SOP before this node in the network and set the Operation on Attribute Adjust Color to Multiply. This won’t override the colors, but simply act as a multiplier to affect the overall hue.

Line

Lets you click and drag across your geometry to add a gradient of color along a surface.

Radial

Lets you click and drag across your geometry to add a gradient of color radially based on the drawn circle. You can also do this with Specific Values if you want clearly defined colors with no blending.

Bounding Box

The adjustment values will be based on the relative location of each element within the input’s bounding box. This is useful if you don’t know the size of your geometry, as it places a bounding box around your whole object and applies the color settings within the box. For example, you can create a gradient from the lowest point to the highest point of an irregular shaped object, and even if the object rotates or transforms, it will still keep the same gradient within the bounding box.

Constant Color

Sets a uniform color to the whole piece of geometry.

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 color palettes.

Min/Max

The adjustment value will be between the given minimum and maximum values either in RGB or HSV space.

Color Ramp

The adjustment values will be generated using a ramp parameter look up (specified by Color Ramp).

Specific Colors

The adjustment values will be one of the listed colors. You can select one of the options in the Color Palettes menu to populate the multiparameter with a pre-defined set of colors. This will also avoid the blending of any colors.

Color Space

The color space for specifying the range of adjustment values. You can use RGB to constrain the red, green, blue component values or HSV to restrict the adjustment values to a slice of the hue, saturation, value wheel.

Relative to Color

When this checkbox is turned on, the given color range will be relative to this color. This is useful if you have a specific color in mind and want small deviations from it.

Red Min/Max

The minimum and maximum values of the red component.

Green Min/Max

The minimum and maximum values of the green component.

Blue Min/Max

The minimum and maximum values of the blue component.

Hue Min/Max

The minimum and maximum values of the hue component, which captures the pure color.

Saturation Min/Max

The minimum and maximum values of the saturation component, which captures the vibrancy of the color.

Value Min/Max

The minimum and maximum values of the value component, which captures the brightness.

Color Ramp

The intermediate random value will be fed through this ramp to obtain the adjustment color.

Color Palette

This menu contains a set of pre-defined color palettes. Selecting one of these options will populate the list of specific values with four preset colors.

Number of Colors

Controls the number of sets of possible adjustment values. Each set can be a single color or consist of multiple related colors (when the menu to the right of the parameter is not set to Constant or Complementary).

Color

The base color for this set.

Color Scheme

Controls how the set of colors is derived from the specified base Color.

Constant

This set will only include the base Color.

Complementary

This set will consist of the base Color and its complementary color. Complementary colors are opposite each other on the color wheel.

2 Analogous

This set will consist of 3 colors: the base Color and its two neighbors around the color wheel. Angle controls the distance to the neighbors.

4 Analogous

This set will consist of 5 colors: the base Color and its 4 neighbors around the color wheel. Angle controls the distance to the neighbor.

Triadic

Same as 2 Analogous.

Tetradic

This set will consist of 4 colors that include the base Color and its complement, as well as a neighbor for each. Angle controls the distance to the neighbors.

5 Shades

This set will contain 5 colors with varying levels of brightness. Use the Distance parameter to change their spacing.

5 Tints

This set will contain 5 colors with varying levels of saturation. Use the Distance parameter to change the default spacing.

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.

Adjustment Attribute

Specifies the attribute storing the adjustment value to use.

Gain

This is applied as a scaling factor on top of the Adjustment Attribute value.

Brightness

This value is added to the Adjustment Attribute value (after Gain is applied) to obtain the final adjustment value.

Color Map

Image file used for lookup. The image file can be done either by a single image file (Image Path) or by providing a string attribute storing the image file path for each element.

Component Scope

Specifies which color components will be used from the selected image file.

Path Attribute

A string attribute storing the path to an image file. Each element in the geometry will perform a lookup in its respective image to obtain the adjustment value.

Channel

Specifies the color channel for textures that have multiple color planes (for example, diffuse_indirect or N). For ptex images, this specifies the index of the first channel (for example, 0 or 4).

Border Color

Border color when Decal wrapping is used. This becomes the adjustment value if the image is looked up outside the 0-1 UV range.

Source Color Space

The image’s colorspace.

Wrap

Determines how the image is evaluated when the texture coordinates are outside the range 0 to 1. The options are:

Repeat

(string value repeat). The image map repeats outside the range 0 to 1. Basically, the integer component of the texture coordinate is ignored.

Streak

(string value streak). Texture coordinates are clamped to the 0 to 1 range.

Decal

(string value decal). Coordinates outside the range 0 to 1 will evaluate to the border color rather than an image color.

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.

Bounding Box

Direction

Colors will vary based on the location of each element along this axis within the bounding box.

Compute Range

Click to fill in the Bound Min and Bound Max parameters with the current minimum and maximum size of the incoming geometry.

Bound Min

The minimum value of the bound along the given axis. When this checkbox is turned off, the bounding box minimum of the input is used (along the selected Direction).

Bound Max

The maximum value of the bound along the given axis. When this checkbox is turned off, the bounding box maximum of the input is used (along the selected Direction).

Attribute

Source Attribute

A float or vector attribute to sample.

Source Range

The Source Attribute value is first fitted from this range to the 0-1 interval; the intermediate value is then fed through the Color Ramp to obtain the adjustment value.

Compute Range

Click to fill in the Source Range parameter with the current minimum and maximum values of the attribute.

Map Placement

UV Attribute

The name of the texture coordinate attribute that will be used for lookup in the color map.

Translate

Translation applied to the UV coordinates.

Rotate

Amount to rotate the UV coordinate plane.

Scale

Uniform scaling of the UV coordinates.

Click the button to access per axis control.

Scale

Scale along each UV axis is equal to the product of uniform Scale with the applicable component of this parameter.

Pivot

Local pivot point for transformations.

Color Correction

Enable Color Correction

Turns on a set of controls to further fine tune the output attribute value. All color correction modifications will take place after adjustment is applied to the attribute.

Hue Shift

This value is the angle along the color wheel to shift the input color. To vary the value per element, change the menu on the right side of this parameter from Set Uniform to Use Attribute.

Click the randomization button on the right side of this parameter to randomize the value per incoming element. This will create/select a corresponding attribute adjust node to give you greater control over the parameter’s value.

Hue Attribute

The name of the attribute storing the varying Hue Shift amount (in degrees).

Saturation

This value scales the saturation of each element. Higher saturation gives rise to more vibrant colors. To vary the value per element, change the menu on the right side of this parameter from Set Uniform to Use Attribute.

Click the randomization button on the right side of this parameter to randomize the value per incoming element. This will create/select a corresponding attribute adjust node to give you greater control over the parameter’s value.

Saturation Attribute

The name of the attribute storing the varying Saturation multipliers.

Value

This value scales the value channel (brightness) of each element. To vary the value per element, change the menu on the right side of this parameter from Set Uniform to Use Attribute.

Click the randomization button on the right side of this parameter to randomize the value per incoming element. This will create/select a corresponding attribute adjust node to give you greater control over the parameter’s value.

Value Attribute

The name of the attribute storing the varying Value multipliers.

Brightness

This value is added to the value channel (brightness) of each element. To vary the value per element, change the menu on the right side of this parameter from Set Uniform to Use Attribute.

Click the randomization button on the right side of this parameter to randomize the value per incoming element. This will create/select a corresponding attribute adjust node to give you greater control over the parameter’s value.

Brightness Attribute

Name of the attribute storing the varying Brightness offset values.

Contrast

This value expands or shrinks the overall range of tonal values. Particularly, each color value is pushed towards (if Contrast is less than 1) or away from (if Contrast is greater than 1) medium gray (RGB values at 0.5). To vary the value per element, change the menu on the right side of this parameter from Set Uniform to Use Attribute.

Click the randomization button on the right side of this parameter to randomize the value per incoming element. This will create/select a corresponding attribute adjust node to give you greater control over the parameter’s value.

Contrast Attribute

Name of the attribute storing the varying Contrast values.

Gain

This value is applied as a scale on the RGB values. To vary the value per element, change the menu on the right side of this parameter from Set Uniform to Use Attribute.

Click the randomization button on the right side of this parameter to randomize the value per incoming element. This will create/select a corresponding attribute adjust node to give you greater control over the parameter’s value.

Gain Attribute

Name of the attribute storing the varying Gain multipliers.

Gamma

Controls the overall gamma of the input color. Values less than 1 will darken the colors, increasing the range of values in originally bright areas. Conversely, values greater than 1 will stretch out the range of values for originally dark areas; this will increase the overall brightness of the colors. To vary the value per element, change the menu on the right side of this parameter from Set Uniform to Use Attribute.

Click the randomization button on the right side of this parameter to randomize the value per incoming element. This will create/select a corresponding attribute adjust node to give you greater control over the parameter’s value.

Gamma Attribute

The name of the attribute storing the varying Gamma values.

Delete All Randomization Attribute

Deletes any randomization attribute used for color correction.

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 and color correction are applied.

Minimum

If this checkbox is turned on, output attribute values are clamped against the specified Minimum. The clamping is performed component-wise on the RGB values.

Maximum

If this checkbox is turned on, output attribute values are clamped against the specified Maximum. The clamping is performed component-wise on the RGB values.

Complement Color

Complements or inverts the colors (subtracts each RGB component from 1). Complementary colors are opposite each other on the color wheel.

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.

Note

When the attribute to adjust (specified by Attribute Name) does not exists, the color will default to white, even when Default Value is turned on.

Type Qualifier

If this checkbox is turned on, the qualifier property for the target attribute is set to the selected type. The qualifier controls how the values are modified when its geometry is transformed.

See also

Geometry nodes