Displace

Displace geometry or image pixels by a texture or field.

What it does

Displace pushes pixels or geometry using a texture, a field, or a procedural noise. An image input shifts pixels. A shape, distance field or mesh moves anchors or vertices, along a direction, radially from a point, twisted around an axis, or swirled with a divergence-free curl flow. Wire a second input into Displacement to drive the push from another image or field; left unwired, the node's own procedural source drives it.

An image source stays flat by default. Set Output to 3D and it tessellates into a heightfield mesh, with Grid Density setting how fine that mesh is. A shape or geometry source needs no switch: it promotes to 3D as soon as displacement pushes it off the flat plane.

When to use it

ParameterTypeDefaultWhat it does
sourceRaster or Volume or Collection or Frame Sequence or Volume Sequence or Collection Sequence—Source to displace - Images, Shapes, SDF, or a captured sequence (Temporal mode)
displacementColor Field or Field—Displacement map (2D) or scalar field (SDF)
displacement_channelString""For a multi-channel displacement field (a captured record): which named channel to sample.
modeString"Directional"Directional/Radial/Warp/Curl (Curl = divergence-free swirl, area-preserving). 3D adds Normal.
amountNumber10Displacement amount in pixels (negative inverts direction)
output_dimensionString"2D"2D: flat image displacement (raster). 3D: tessellated mesh displaced in space. One of: 2D, 3D.
grid_densityNumber256Heightfield resolution: vertex count along the longer side. Higher = finer mesh.
midpointNumber0.500Displacement map value treated as no displacement (typically 0.5 for centered maps)
wrap_modeString"Clamp"Pixels displaced outside the source: Transparent (alpha 0) or wrap the source to fill the output (Clamp / Repeat / Mirror). One of: Transparent, Clamp, Repeat, Mirror.
channelString"Luminance"Which channel(s) to use for displacement (RG = Red→X, Green→Y). One of: Luminance, Red, Green, Blue, RG.
directionVec3(1, 0, 0)Direction (Directional mode) or center point (Radial/Warp mode)
anchors_per_segmentNumber32Target anchors per Bezier segment. Higher = more displacement detail (e.g. 32 turns a 4-anchor Circle into ~128 anchors).
projectionString"Triplanar"How to project 2D texture onto 3D surface: Triplanar blends all axes, Spherical wraps around, World pins the pattern to the scene via the texture's placement. One of: Planar X, Planar Y, Planar Z, Triplanar, Spherical, Cylindrical, World.
projection_scaleNumber1Scale of texture projection (higher = smaller texture pattern)
instance_attributeString"None"Attribute to read per shape for varying displacement. @u = smooth gradient, @index = stepped.
time_offsetNumber0.500Temporal: base time position in the captured sequence (0.5 = middle)
interpolationString"Linear"Temporal: Nearest snaps to the closest frame, Linear blends between frames. One of: Nearest, Linear.
displacement_attributeString"id"Temporal: attribute driving per-element time offset (e.g. id, pscale, or a custom float)
buffer_sizeNumber64Temporal: live frames kept in the rolling buffer (live raster or collection source)
strengthNumber1Effect strength / wet-dry (0 = no effect, 1 = full). Editable, wirable, keyframable.

Gotchas

Midpoint, Channel and Wrap Mode apply only when a raster image drives the displacement, either because the Displacement input carries an image or because the source is an image and nothing is wired to Displacement. Wire a scalar or vector field into Displacement on a shape source and these controls disappear, because the field is sampled directly rather than read as pixel values.

Output appears only for a raster source. On an image, 2D keeps the result a flat picture even when Direction has a non-zero Z, and that axis is ignored until Output is 3D. A shape or mesh source has no toggle and goes 3D on its own once anchors leave the flat plane.

Curl mode ignores Direction entirely. The whole flow comes from the source, so a centre or direction dialled in for Directional, Radial or Warp mode has no effect once Curl is selected.

When a path translates instead of visibly wobbling, raise Anchors Per Segment. A Circle starts with four anchors, and low anchor counts under-sample the displacement so the whole outline moves as one.

Worked example

  1. Add a Displace node and wire an image into Source.

  2. Add a Noise node, or any field, and wire it into Displacement.

  3. Raise Amount to push pixels further. Try Radial mode and drag the centre in Direction to bulge outward from a point instead of sliding sideways.

  4. Switch Output to 3D to turn the rippled image into a heightfield mesh, and raise Grid Density for a finer surface.

See also

Warp · Lens Distort · Panoramic · Fields