====== Touch Designer ====== * [[https://derivative.ca/|Official Website]] * [[https://www.youtube.com/playlist?list=PLSqkC3f_BStyl5j6NqYwLOErW0ych_4k1|Interactive and Immersive HQ Tutorial channel]] ===== Knowledge ===== ==== Mouse movement ==== * ''Left Click'' + ''drag'': Move an operator. If done on empty space: pan view * ''Mouse Wheel'': zoom in/out * ''Right Click'' + ''drag'': Selection box ==== Nodes ==== The Graph Editor portion of Touch Designer is called the **Network Editor**, and a bunch of interconnected operators doing some kind of function is called a network. The nodes are called **Operators**. The Network Editor has a path bar at the top of the interface and projects in Touch Designer are similar to a Unix file hierarchy. Double-clicking on a grey operator will open this component and display the nodes that build it up. (e.g. geo1 in default file) Even though the operators have 3D Previews, behind the scenes it is just data being visualized differently. Viewers can be toggled **Active** with the button on the bottom right. This locks their position and enables to move the content around in the preview panel to highlight details of its processing. This does not affect its output. ''MIDDLE CLICK'' on an operator opens the info dialog for that operator. For each Operator hitting the ''?'' button in the parameter window will open up the wiki page for that operator. From the top menu Help > Operator Snippets opens up a floating window with many examples and notes on each operator and how to use them. ---- === Operator Types === * **TOP:** **T**EXTURE **OP**ERATOR - Purple - Works exclusively with 2D rasterized graphics * **CHOP:** **CH**ANNEL **OP**ERATOR - Green - Signal, communication, numeric & control data * **DAT:** **DAT**A OPERATOR - Pink - String level of data, web, tables, etc. More complex data than numeric * **SOP:** **S**URFACE **OP**ERATOR - Blue - Procedural 3D Geometry * **COMP:** **COMP**ONENT OPERATOR - Grey - Multi function components (3D rendering - Panels - etc.) * **MAT:** **MAT**ERIAL OPERATOR - Yellow - The darker colors in all families are generators. ---- === Keyboard Shortcuts === //Keyboard shortcuts only works while the cursor is in the Network Editor// //Keyboard shortcuts are case sensitive ! Careful with ''CAPS LOCK''.// * ''TAB'': Open Operator Create Menu (type in name to highlight) * ''I'': Move into a network (also mouse wheel on it but clunky) * ''U'': Move out of a network (up one level) * ''H'': Home network on screen * ''P'': Open/Close **Parameters** window * ''ALT'' + ''Z'' : Close the panel under the mouse hover (Network Editor) * ''ALT'' + ''['' : Split vertically (Network Editor) * ''ALT'' + '']'' : Split horizontally (Network Editor) ---- === Signal Flow === Data always flows from left to right. Connections between nodes can be still (no animation) or cooking (animation visible on the noodle). Cooking refers to the operator updating it's input/outputs because the data flow is variable. ---- === Parameters === Every node has parameters that can be manually controlled, tied to UI, scripted, etc. Right click on a node gives the option to open a floating parameter window. When editing a parameter (e.g. speed on a moviefilein) ''MIDDLE MOUSE'' click and hold on the **value** will open a hover menu where the increment can be changed. While holding, when selecting an increment, sliding left and right will decrement/increment the value by the given increment. (Also works with a ''LEFT CLICK'' and hold but the hold is a little longer). When a parameter has two values that you would like to increase/decrease equally this technique can be applied on the name of the parameter. ===== Rendering ===== Rendering is done in a **Render** TOP. Basic setup involves the 3D COMPS **Cameras, Geometry and Light** to bring the SOP chain operating on the CPU to the Rendering pipeline operating on the GPU and rasterize the content. Add **In** SOPS in the **Geometry** op to send a chain of SOPS into it. The display and render flags tell the rest of the network whether the node should be used in the rendering process and displayed in the viewer. You can also take the output of your last (preferably **null**) operator in the SOP chain and right click > COMP > Geometry to automate a lot of the process. You can put multiple things in a geometry comp with the display flag ON but it's best practice to keep just one item per geometry to have a cleaner network. ===== Useful Tools ===== ==== Optical Flow ==== This operator calculates the motion vectors inside a video stream and codes it to the Red and Green channels. This converts video streams into usable data for interactivity. The data can be plugged into particle systems, fluid systems or any other creative content that accept data as input to react upon. ==== Output ==== Output is done by using the **Window** COMP. You can open as a separate window or in perform mode. Tweak the //Monitor//, //Opening Size// and Toggle the //Borders// parameters. ==== Textures ==== Texturing is done with **MAT** operators and by sending things into the Color map property. ===== Useful tips ===== === Using null === When creating a network of nodes, add null operators at strategic checkpoints. This way you can reference these null "checkpoints" everywhere else in your project and if anything has to change prior to the checkpoint the reference is still valid. TOPs have a display flag at the bottom right which can be turned on to toggle a preview in the background of the network editor. Use **Select** CHOPs to extract different channels from your other CHOPS to use them in the network. ---- === Referencing a parameter - Dynamic links === * Select the CHOP and toggle the display with the **+** in the bottom right * Select the TOP to link to parameter * Drag & drop from the CHOP into the parameter * Select Reference type (Most of the time it's CHOP Reference You can also drag an entire CHOP into a CHOP to TOP operator to reference it. ---- COMP Buttons and sliders can be connected to Null operators to toggle them into run mode and handily display their output. ---- === Using Resolution TOP === It's good practice to work in lower resolutions until you need to up the resolution with a **Resolution** TOP. When using source loops into TOP Fx chains it's handy to pass them through a Resolution TOP and lower them down to half res to improve performance. ---- === Useful python expressions === * ''absTime.frame'' will use the frame count to increment the parameter this expression is used on. Use math expression behind such as ''* 0.5'' to slow down (or speed up) * ''absTime.seconds'' like the above but slower * ''me.digits'' will return the digit (auto incremented) in the operator name. You can associate it with a math expression such as ''* -5'' to automatically increment or decrement a parameter as you copy/paste (useful for **Cache Select** building a trail effect for example). ---- === Using the Cache TOP === Be wary of the frame count when using the **Cache** TOP as it is essentially what uses the most GPU memory. It's best to use a **Cache Select** TOP rather than using the Output Index of the **Cache** TOP. They will have very small cook times and be totally free in terms of GPU memory as they will reference the images that are already in memory through the **Cache** TOP. Use the **Reorder** top in conjunction with **Cache** and **Cache select** to create some nice RGB trailing effects ---- === Working with instancing === When working with instancing take care that the length match. For example if your SOP null has 40 points, then the CHOP you use on it should have 40 samples. Instancing is done in the **Geometry** Comp under the tab of the same name. Reference another SOP in there and play around with the points. ===== Creative Tips ===== Repetition of small processes (as basic as drawing a circle at every point of a circle) can make some very rich designs. Overlapping content also enriches designs.