TouchDesigner learning

From Antoine Vienne | Wiki
Revision as of 00:50, 30 January 2021 by Walter (talk | contribs)
Jump to navigation Jump to search

Time

Absolute seconds

absTime.seconds

Absolute frames

absTime.frame

Cycle/loop of frames from timeline

me.time.frame

Making custom interface

Making buttons

// Name of the parent node

parent().name

Rendering

Get resolution from another node

// Get width and height from render1 node

op('render1').width

op('render1').height


GLSL

Get Shadertoy shaders working

More informations: https://nvoid.gitbooks.io/introduction-to-touchdesigner/content/GLSL/12-6-Importing-Shadertoy.html

// Replace in code "void mainImage( bla bla )" by "void main()"

// Replace in code "fragCoord" by "gl_FragCoord"
// Carefully add ".xy" when missing ".x" or ".y" after "gl_FragCoord" in "void main()" part

// Then add at top of code:

layout(location = 0) out vec4 fragColor;

uniform vec3 iResolution;
uniform float iTime;
uniform float iFrame;
uniform vec4 iMouse;

// In glsl node:
// Declare iResolution, iFrame and iTime
// For iTime:
absTime.seconds
// For iFrame:
absTime.frame

// In glsl code, declare iChannels (iChannel0, iChannel1...)
// For most of the cases, iChannel0 calls a texture, so:
// Replace iChannel0 by sTD2DInputs[0]
// If iChannel0 calls a cubemap:
// Replace iChannel0 by sTDCubeInputs[0]
// If iChannel0 calls a sound, convert sound to CHOP by a null, then:
// Replace iChannel0 by sTD2DInputs[1]