From Derivative
Jump to navigation Jump to search


blendModes is a 2-stream video blender for exploring and using the 45+ blend modes of the Composite TOP. Connect 2 video inputs, select a Mixing Mode and use the 2-way or 4-way crossfader at the top. On the top right is the blended output of the component.

The thumbnails of the blend modes are divided into two halves since some blend modes depend on the order: "A Multiply B" is the same as "B Multiply A", but "A Over B" is not the same as "B Over A". So the left half is the choice "A blendmode B" and the right side is "B blendmode A". So in these cases clicking on the right side gives a different result than the left.

Three Mixing Modes


It simply switches to a new blend mode when you click on the blend mode icon. Rollover lets you preview the blend at the top left before you commit by clicking it.


On the conventional left-to-right crossfade gadget in the middle, setting the slider to the left outputs input 1, right outputs input 2, and the middle outputs the blend mode that is currently selected. You see the current blend mode icon and name in the slot below the crossfader.


VJ Mode is a 2-way crossfade where you can also mix between a pair of blend modes. As with Crossfade, setting the crossfade to the left side outputs input 1, right outputs input 2. But the vertical position of the crossfade gives you a mix of two blend modes. Drag between the top-middle of the gadget and the bottom-middle. You will see a blend of two recent blend modes that you have selected. You can see your two blend modes as icons in the slots above and below the crossfader.

This is designed so you can smoothly crossfade back and forth between two blend modes. If your crossfade slider is at the top middle, you see only the top slot's blend mode. Then if you click on another blend mode below, it will put the new blend mode at the bottom, you will not see a change to your output, and you can then smoothly crossfade to that. With crossfade at the bottom, the next blend mode you click will be placed in the top slot.

The end result with the XY slider is that you can crossfade between two inputs and two blend modes, and if operated correctly, will not have an abrupt visual change.


The UI is large but it lets you see and preview all 60+ blending choices. As will all blend modes, how interesting and useful one is depends on the images feeding it. Some blend modes look like crap or are ineffective until you feed it the right kinds of input images, which vary in terms of contrast, color saturation, luminance and whether the source has alpha (Over, Inside, Outside, Under are useless unless an input has some alpha=0 in it.)

PythonIcon.pngPalette:blendModes Ext

Parameters - Control Page

Help Help - Opens this page.

Version Version - The current version of this component.

Resolution Resolution - - The output resolution of this component.

  • Resolution Resolutionw -
  • Resolution Resolutionh -

Operator Inputs

  • Input 0 - The first layer to be composited.
  • Input 1 - The second layer to be composited.

Operator Outputs

  • Output 0 - The final output.
  • Output 1 - The preview of the output when rolling over a composite selection in the ui.
  • Output 2 - A CHOP containing information on what blend has been selected and if the input order to the composite operation has been swapped.

TouchDesigner Build:

Palette • Palette:arcBallCamera • Experimental:Palette:arcBallCamera • Palette:arcBallGeometry • Palette:audioAnalysis • Experimental:Palette:audioAnalysis • Palette:audioSet • Palette:battery • Palette:blendModes • Experimental:Palette:blendModes • Palette:bloom • Palette:camera • Palette:cameraBrowser • Palette:cameraViewport • Palette:camSchnappr • Palette:changeColor • Palette:changeToColor • Palette:checker • Palette:chromaKey • Palette:colorThreshold • Palette:compareComp • Palette:convolve • Palette:cornerPinSOP • Palette:cppParsTemplateGen • Palette:customAttributes • Palette:debugControl • Palette:dent • Palette:depthExtract • Palette:dilate • Palette:equalizer • Palette:feedback • Palette:feedbackEdge • Experimental:Palette:feedbackEdge • Palette:firmata • Experimental:Palette:firmata • Palette:gal • Palette:geoPanel • Palette:gestureCapture • Experimental:Palette:gestureCapture • Palette:graphPlot • Palette:histogram • Palette:hsvBlur • Palette:imageSearch • Palette:julia • Palette:kantanMapper • Palette:kinectCalibration • Palette:kinectPointcloud • Palette:leapPaint • Palette:lightTunnel • Palette:mandelbrot • Experimental:Palette:materialDesignIcons • Palette:mesh • Palette:monochrome • Palette:motionSense • Palette:moviePlayer • Palette:moviePlaylist • Palette:multiLevel • Palette:multiMix • Palette:noise • Palette:onScreenKeyboard • Experimental:Palette:operatorPath • Palette:opticalFlow • Palette:particlesGpu • Palette:pixelate • Palette:pixelRelocator • Palette:pointGenerator • Palette:pointillize • Palette:pointMerge • Palette:pointRender • Palette:pointRepack • Palette:pointTransform • Palette:pointWeight • Palette:popDialog • Palette:probe • Palette:projectorBlend • Palette:pushPins • Palette:puzzle • Palette:quadReproject • Palette:radialBlur • Palette:remotePanel • Palette:rgbaBlur • Palette:rgbaDelay • Palette:rgbContrast • Palette:sceneChanger • Palette:search • Palette:searchReplace • Experimental:Palette:searchReplace • Palette:sharpen • Experimental:Palette:signalingClient • Experimental:Palette:signalingServer • Palette:softenAlpha • Palette:solarize • Palette:sopRender • Palette:splitter • Palette:stitcher • Palette:stoner • Palette:superFormula • Palette:SVG • Palette:sweetSpot • Palette:sweetSpotPreviz • Experimental:Palette:synchroCache • Experimental:Palette:synchroClient • Experimental:Palette:synchroFrameIn • Experimental:Palette:synchroFrameOut • Experimental:Palette:synchroNDIIn • Experimental:Palette:synchroSDIIn • Experimental:Palette:synchroVideoOut • Palette:TDVR • Palette:transitMap • Palette:twirl • Palette:vectorScope • Palette:virtualFile • Palette:waveformMonitor • Palette:webBrowser • Experimental:Palette:webRTC • Palette:xyScope