Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| software:touch_designer [2024/07/16 09:58] – [Rendering] mh | software:touch_designer [2026/05/26 10:10] (current) – [Resources & Onboarding] mh | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== |
| - | * [[https://derivative.ca/|Official Website]] | + | //Personal knowledge base for rapid re‑entry into TouchDesigner after long breaks.// |
| - | * [[https:// | + | ===== Resources & Onboarding ===== |
| - | ===== Knowledge ===== | + | TouchDesigner uses node‑based workflows where data flows through operators (OPs) that cook when needed. |
| - | ==== Mouse movement ==== | + | * **[[https:// |
| - | * '' | + | * **[[https:// |
| - | | + | |
| - | | + | |
| - | ==== Nodes ==== | + | * **[[https:// |
| - | 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**. | + | ===== Interface Essentials ===== |
| - | 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. | + | ==== Global UI ==== |
| - | Double-clicking on a grey operator will open this component and display the nodes that build it up. (e.g. geo1 in default file) | + | * **'' |
| + | * **Perform Mode:** Toggle with **'' | ||
| + | * **Palette: | ||
| + | * **Operator Snippets:** Help → Operator Snippets shows practical examples for most OPs. | ||
| + | * **'' | ||
| - | Even though the operators have 3D Previews, behind the scenes it is just data being visualized differently. | + | ==== Viewer Interaction ==== |
| - | 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 | + | //Buttons in the bottom right of OPs// |
| - | '' | + | * **'' |
| + | * **'' | ||
| - | For each Operator hitting the ''?'' | ||
| - | 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. | + | ==== Panes & Layout ==== |
| - | ---- | + | * Panes can be split using **'' |
| + | * The **'' | ||
| + | * **'' | ||
| - | === Operator Types === | + | ==== Mouse Controls |
| + | * **'' | ||
| + | * **'' | ||
| + | * **'' | ||
| - | * **TOP:** **T**EXTURE **OP**ERATOR - Purple - Works exclusively with 2D rasterized graphics | + | ==== Keyboard Shortcuts ==== |
| - | * **CHOP:** **CH**ANNEL **OP**ERATOR - Green - Signal, communication, | + | |
| - | * **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 | + | // |
| - | ---- | + | * **'' |
| + | * **'' | ||
| + | * **'' | ||
| + | * **'' | ||
| + | * **'' | ||
| - | === Keyboard Shortcuts | + | ===== Operators & Network Logic ===== |
| - | //Keyboard shortcuts only works while the cursor is in the Network Editor// | + | ==== Operator Families ==== |
| - | //Keyboard shortcuts are case sensitive ! Careful with '' | + | * **TOP:** **T**EXTURE **OP**ERATOR - Purple - 2D raster graphics |
| + | * **CHOP:** **CH**ANNEL **OP**ERATOR - Green - channels, numeric/time data, signal, communication, | ||
| + | * **DAT:** **DAT**A OPERATOR - Pink - tables, strings, scripting | ||
| + | * **SOP:** **S**URFACE **OP**ERATOR - Blue - Procedural 3D geometry | ||
| + | * **COMP:** **COMP**ONENT OPERATOR - Grey - components, UI, 3D rendering | ||
| + | * **MAT:** **MAT**ERIAL OPERATOR - Yellow - materials, shaders | ||
| - | * '' | + | Dark-colored OPs are generators. |
| - | * '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | ---- | + | ==== Cooking, Push/Pull Logic, Performance ==== |
| + | * Data flows left → right. | ||
| + | * Cooking occurs when dependent OPs need updated data. | ||
| + | * Animated noodles = cooking | ||
| + | * Static noodles = cached. | ||
| + | * Heavy cooking sources: | ||
| + | * Full-res TOP chains | ||
| + | * CHOPs with large sample counts | ||
| + | * SOP deformers | ||
| - | === Signal Flow === | + | Use nulls, selects, Resolution TOP, and Cache Select to avoid unnecessary cooking. |
| - | Data always flows from left to right. | + | ==== Network Hierarchy & Navigation ==== |
| - | Connections between nodes can be still (no animation) or cooking (animation visible on the noodle). | + | * Networks behave like Unix-style folders. |
| + | * Path bar shows current location. | ||
| + | * Double-click a COMP to see its internal network. | ||
| - | Cooking refers to the operator updating it's input/ | + | ==== Flags, Viewers & Info ==== |
| - | ---- | + | * Display flag = viewer preview. |
| + | * Render flag = included in rendering. | ||
| + | * **'' | ||
| + | * “?” in parameter window → operator wiki page. | ||
| - | === Parameters === | + | ==== Parameters |
| + | * Middle-click/ | ||
| + | * Use on name of parameter to affect all values simultaneously. | ||
| + | * Drag CHOP channels into parameters: | ||
| + | * CHOP references | ||
| + | * Export bindings | ||
| + | * Drag CHOPs onto TOPs to convert. | ||
| - | Every node has parameters that can be manually controlled, tied to UI, scripted, etc. | + | ===== Signal Flow & Data Types ===== |
| - | Right click on a node gives the option to open a floating parameter window. | + | TouchDesigner mixes several structures: |
| + | * TOPs → images (resolution-dependent) | ||
| + | * CHOPs → channels (sample rate–based) | ||
| + | * SOPs → points/ | ||
| + | * DATs → strings/ | ||
| - | When editing a parameter (e.g. speed on a moviefilein) '' | + | Important relationships: |
| + | * Instancing: SOP point count = CHOP sample count. | ||
| + | * CHOPs depend | ||
| - | When a parameter has two values that you would like to increase/ | + | === CHOP Basics === |
| + | {{: | ||
| - | ===== Rendering ===== | + | * Use **select** to extract specific channels |
| + | * Use **math** to change range | ||
| + | * Chops can be **Time Slice** (1 value / frame) or **Range Sets** (multiple values / frame → Graph view) | ||
| + | ===== Rendering | ||
| - | Rendering is done in a **Render** TOP. | + | ==== SOP → COMP → TOP Pipeline ==== |
| - | + | | |
| - | Basic setup involves the 3D COMPS **Cameras, Geometry | + | * Camera |
| + | | ||
| Add **In** SOPS in the **Geometry** op to send a chain of SOPS into it. | Add **In** SOPS in the **Geometry** op to send a chain of SOPS into it. | ||
| + | ==== Render TOP Fundamentals ==== | ||
| + | * Inputs: | ||
| + | * Camera | ||
| + | * Geometry COMPs | ||
| + | * Lights | ||
| + | * End with a null TOP for stability. | ||
| + | |||
| + | ==== Cameras, Lights, Environment ==== | ||
| + | * Keep one object per Geometry COMP when possible. | ||
| + | * Cameras operate like standard 3D transforms. | ||
| + | * Light types: Point, Spot, Directional. | ||
| + | |||
| + | ==== Common Rendering Patterns ==== | ||
| + | * SOP chain → Null SOP → Geometry COMP | ||
| + | * Geometry → Render TOP → Composite/ | ||
| + | * Use Select TOPs to inspect interim results. | ||
| + | |||
| + | |||
| 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. | 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. | ||
| Line 99: | Line 151: | ||
| 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. | 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. | ||
| + | ===== Output Pipeline ===== | ||
| - | ==== Textures | + | ==== Window COMP ==== |
| + | * Main operator for projection/ | ||
| + | * Settings: | ||
| + | * Monitor | ||
| + | * Opening Size | ||
| + | * Borders | ||
| - | Texturing is done with **MAT** operators and by sending things into the Color map property. | + | ==== Perform Mode ==== |
| + | | ||
| + | * Layouts may scale differently; | ||
| - | ===== Useful tips ===== | + | ===== Tips, Tricks & Best Practices |
| - | When creating a network of nodes, add null operators | + | ==== Null Strategy ==== |
| + | * Use nulls at key checkpoints. | ||
| + | * Reference nulls elsewhere | ||
| - | 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. | + | ==== Select Strategy ==== |
| + | * Extract channels with Select CHOPs. | ||
| + | * Organizes complex CHOP data streams. | ||
| - | Use **Select** CHOPs to extract different channels from your other CHOPS to use them in the network. | ||
| - | |||
| - | ---- | ||
| === Referencing a parameter - Dynamic links === | === Referencing a parameter - Dynamic links === | ||
| Line 119: | Line 180: | ||
| * Select the TOP to link to parameter | * Select the TOP to link to parameter | ||
| * Drag & drop from the CHOP into the parameter | * Drag & drop from the CHOP into the parameter | ||
| - | * Select Reference type (Most of the time it's CHOP Reference | + | * 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. | You can also drag an entire CHOP into a CHOP to TOP operator to reference it. | ||
| + | |||
| + | Alternatively, | ||
| ---- | ---- | ||
| + | ==== Resolution TOP ==== | ||
| + | * Drop resolution early to speed up heavy FX. | ||
| + | * Increase resolution at end of chain. | ||
| + | |||
| + | ==== Useful Python Expressions ==== | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | |||
| + | ==== Cache & Cache Select ==== | ||
| + | * Cache TOP stores multiple frames (heavy on VRAM). | ||
| + | * Cache Select references those frames without extra memory. | ||
| + | * Pair Cache + Reorder TOP for temporal RGB shifting. | ||
| + | |||
| + | ==== Instancing Workflow ==== | ||
| + | * Match SOP points to CHOP samples. | ||
| + | * Enable instancing in Geometry COMP → Instance tab. | ||
| + | * Position, scale, rotation via CHOP channels. | ||
| + | |||
| + | ==== Optical Flow ==== | ||
| + | * Outputs motion vectors (R = X velocity, G = Y velocity). | ||
| + | * Useful for simulations, | ||
| + | |||
| + | This converts video streams into usable data for interactivity. | ||
| + | ===== Common Techniques ===== | ||
| + | |||
| + | ==== Animating Noise ==== | ||
| + | * Create a Noise TOP | ||
| + | * Animate transform Z with absTime.seconds*[SPEED] | ||
| + | |||
| + | ==== Feedback Loops ==== | ||
| + | * Feedback TOP + Transform + Composite. | ||
| + | * Use Resolution TOP to prevent GPU overload. | ||
| + | |||
| + | ==== Trails ==== | ||
| + | * CHOP Trail for numeric history. | ||
| + | * TOP composite trails for visual streaks. | ||
| + | |||
| + | ==== Multi-Layer Composite Setups ==== | ||
| + | * Composite TOP blends layers using Over, Add, Screen, etc. | ||
| + | |||
| + | ==== CHOP-Driven Animation ==== | ||
| + | * LFO, Noise, Trigger CHOPs for dynamic control. | ||
| + | * Export or reference in parameters. | ||
| + | |||
| + | ==== TOP FX Chains ==== | ||
| + | * Common structure: | ||
| + | Source → Level → Blur → Edge → Composite → Null | ||
| + | * Keep heavy FX at low resolution. | ||
| + | |||
| + | ==== Resize nodes ==== | ||
| + | |||
| + | When the resolution of a node is changed, clicking the arrow to resize the node will resize it down to the new ratio. | ||
| + | ===== Creative Notes ===== | ||
| + | * Repetition of simple forms builds complex visuals. | ||
| + | * Overlapping translucent layers enrich motion and depth. | ||
| + | * Vary timing, resolution, and color to create dynamic energy. | ||
| + | |||
| + | ===== OLD VERSION ===== | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | This section contains redundant data. Will be cleaned soon. | ||
| + | |||
| + | ===== Useful Tools ===== | ||
| + | |||
| + | |||
| + | ==== Output ==== | ||
| + | |||
| + | Output is done by using the **Window** COMP. | ||
| + | |||
| + | You can open as a separate window or in perform mode. | ||
| + | |||
| + | Tweak the // | ||
| + | |||
| + | ==== Textures ==== | ||
| + | |||
| + | Texturing is done with **MAT** operators and by sending things into the Color map property. | ||
| + | |||
| + | ===== Useful tips ===== | ||
| + | |||
| COMP Buttons and sliders can be connected to Null operators to toggle them into run mode and handily display their output. | 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. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | === 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. | ||
| + | |||
| + | |||