Understanding Concatenation and Filtering

In Nuke, and some other packages, concatenation relates into how images are transformed. Specifically how multiple transformations take place within a script. This also affects the Nuke filters the image, which takes place whenever pixels are moved, i.e. Transform, Rotation, Scale, Warp, etc. At it root the work ‘concatenation’ means to run together. So the word ‘snow’ and ‘ball’ when concatenated makes ‘snowball’.

By default when some transform nodes are placed end to end in Nuke they automatically concatenate, this means that Nuke looks at the sum of the whole and then works out the changes.

For example if we consider rotating an image +45˚ then -˚20 then +30˚, Nuke examines the whole sum 45-20+30 and works out the answer is 55. Only then does it rotate the image 55˚. This seams logical, but some programs do not work this way, and even Nuke’s concatenation methods can be broken if your not careful.

Consider not rotation as above but scale. For this example we will scale an image down by 10% then scale it back up by 1,000%, this of course returns the image to it’s original size. When concatenation is working correctly Nuke considers the sum as a whole and works out the image doesn’t need to change, there for nothing is done.


However if concatenation is broken the image is scaled down by 10%, then Nuke scales that image back up by 1000%. The result is completely different.


The obvious next question is “how do you break concatenation within Nuke, so I don’t do it by mistake?”

The answer is to place nodes that concatenate together and not break the throughput with a none concatenating node. For example Transform -> Reformat -> Cornerpin will concatenate together. However Transform -> Roto -> Reformat will not. This is because only Transform nodes concatenate, other nodes such as Roto, Grade, Shuffle, Blur, Merge, PostageStamp do not. There are a few exception but on the whole is this the case. The problem is that not all Transform nodes concatenate. Below is a full list based on Nuke 8.

Transform Nodes that DO concatenate:

  • Card3D
  • CornerPin
  • Reconcile3D
  • Reformat
  • Reformat
  • Stabilize
  • Tracker
  • Transform
  • Transform Nodes that DO NOT concatenate:

  • AdjustBbox
  • BlackOutside
  • Crop
  • Mirror
  • PlanarTracker
  • PointsTo3D
  • Position
  • TVIScale
  • Nodes that only Concatenate UPSTREAM

  • BasicMaterial
  • Diffuse
  • DisplaceGeo
  • Displacement
  • Emission
  • Environment
  • Flare
  • GridWarp
  • IDistort
  • LensDistortion
  • MotionBlur2D
  • Phong
  • Sparks
  • Specular
  • SphericalTransform
  • SplineWarp
  • STMap
  • Tile
  • TransformMasked
  • Other nodes that DO concatenation:

  • Disabled nodes
  • Framehold
  • Retime
  • NoTimeBlur
  • TimeWarp
  • Switch
  • ViewMetaData
  • Dot
  • NoOp
  • Relating into the subject of concatenation is ‘filtering’ which controls how Nuke smooths or sharpens pixels when an image is adjusted. When you use Transform nodes that concatenation Nuke only filters the image once, based on the last Transform node. However if the concatenation is broken then each Transform node filters the image causing softening.

    Consider Rotating the image +1˚, breaking the concatenation then rotating it back -1˚. The image is not noticeably softer.


    However do this a number of time through the composite and the image can be significantly degraded. This example has been Rotated back and forth by 1˚ five times, each time breaking the concatenation.