Oink
Nodes

Shuffle

Rearranges channels (Nuke's Shuffle2): drag wires from the input layers (in1 / in2, each read from the B or the A input) to the output layers (out1 / out2).

raw .md

Rearranges channels (Nuke's Shuffle2): drag wires from the input layers (in1 / in2, each read from the B or the A input) to the output layers (out1 / out2). One input channel can feed several outputs; the black / white buttons set an output to 0 / 1; unconnected outputs and every other layer pass through from B. An output layer with no wire yet still exists on the output (listed, black when read). Ctrl+drag, Ctrl+Shift+drag, Alt+drag, double-click and dragging a layer's grip are the Nuke shortcuts. 'new' in a layer menu makes a layer.

NodeShuffle
Type idOC_N_shuffle
MenuChannel › Shuffle
Nuke classShuffle2 (also imports Shuffle, ShuffleCopy)
Codeopencomp_core/nodes/merge/shuffle.py

Shuffle properties

Inputs and outputs

PortNameType
input 0Imageimage
input 1Aimage
output 0Imageimage

Knobs

Panel tab Shuffle, in panel order.

KnobLabelTypeDefaultRange / valuesNuke knobDescription
in_layerin1textrgbaFirst input layer ('none' = unused)
in1_fromfromInput1menuBB, A
in2_layerin2textnoneSecond input layer ('none' = unused)
in2_fromfromInput2menuBB, A
out_layerout1textrgbaFirst output layer ('none' = unused)
out2_layerout2textnoneSecond output layer ('none' = unused)
mappingsmappingstext4 rgba.red 0 0 rgba.red 0 0 rgba.green 0 1 rgba.green 0 1 rgba.blue 0 2 rgba.blue 0 2 rgba.alpha 0 3 rgba.alpha 0 3Nuke Shuffle2 mappings: count, then 'src group index dst group index' per connection ('' = the legacy per-channel knobs)

Other knobs (Python, .nk and the assistant; not on the panel)

KnobLabelTypeDefaultRange / valuesNuke knobDescription
gl_colorViewer Controls Colorfloat ×30, 0, 00 to 1
postage_stamp_frameStatic Frameint1-2147483648 to 2147483647
lifetimeStartLifetime Startint0-2147483648 to 2147483647
lifetimeEndLifetime Endint100-2147483648 to 2147483647
useLifetimeUse Lifetimebooleanfalse
cachedCachedbooleanfalse
bookmarkBookmarkbooleanfalse
dope_sheetDope Sheetbooleanfalse
clone_groupClone Groupstring
link_sourceLink Sourcestring
link_overridesLink Overridesstring
split_viewsSplit Viewsstring
r_sourceRenumRR, G, B, A, ZERO, ONE, R2, G2, B2, A2
g_sourceGenumGR, G, B, A, ZERO, ONE, R2, G2, B2, A2
b_sourceBenumBR, G, B, A, ZERO, ONE, R2, G2, B2, A2
a_sourceAenumAR, G, B, A, ZERO, ONE, R2, G2, B2, A2
r2_sourceout 2 RenumR2R, G, B, A, ZERO, ONE, R2, G2, B2, A2
g2_sourceout 2 GenumG2R, G, B, A, ZERO, ONE, R2, G2, B2, A2
b2_sourceout 2 BenumB2R, G, B, A, ZERO, ONE, R2, G2, B2, A2
a2_sourceout 2 AenumA2R, G, B, A, ZERO, ONE, R2, G2, B2, A2

Nuke equivalent

Imports from and exports to Nuke's Shuffle2 (Shuffle, ShuffleCopy also import to it).

Nuke knobs not in this list import as a knob of the same name, or are kept unchanged for export. See .nk import.

Examples

Open these from Help › Examples…, or from the ? menu in this node's Properties panel.

  • Shuffle a depth layer (examples/channel/shuffle_depth.oink): The Beachball single-part file holds rgba, Z, disparity, motion and masks in one part. The Shuffle puts depth (Z) in rgb and the Grade maps the depth range to something you can see.
  • Cryptomatte layers (examples/cryptomatte/cryptomatte_layers.oink): Psyop's Cryptomatte sample render (BSD-3-Clause): the file carries a preview layer (uCryptoObject, one flat colour per object) and the ID/coverage rank layers uCryptoObject00-02. The Shuffle shows the preview layer; switch its input layer to uCryptoObject00 to see raw IDs (red, blue) and coverage (green, alpha).
  • Multi-part stereo EXR sequence (examples/io/read_multipart_stereo.oink): The Beachball sequence stored as EXR 2.0 multi-part files: one layer per part, left and right views, and a different data window per part. The Shuffle pulls the forward motion vectors into rgb.

On this page