This component integrates ISF shaders into TouchDesigner.
Discussion thread: https://forum.derivative.ca/t/isf-parser/10588
Donations are welcome: https://ko-fi.com/martinrocker3d
ISF (Interactive Sahder Format) is wrapper around GLSL pixel shaders. It standarizes way to create live video effects that can be then used in and controlled by VJ Software.
Learn more about ISF here: https://isf.video/
The workflow is very simple:
- Create a Text DAT node, paste some ISF code there and connect it to isfParser component.
- Connect your video input to the component.
- Click "Reload" and it's done! You will receive the video output and you can play with the ISF parameters that will be now visible on the component.
Supported variables:
PASSINDEX
RENDERSIZE
isf_FragNormCoord
TIME
TIMEDELTA
DATE
FRAMEINDEX
Supported functions:
IMG_PIXEL()
IMG_THIS_PIXEL()
IMG_NORM_PIXEL()
IMG_THIS_NORM_PIXEL()
IMG_SIZE()
Supported input types:
float
color
long
bool
event
shape
- ISF controls are exposed as custom parameters on Base OP
- Image / video input
- Custom resolution
- GLSL code translation is done by a single Python script, it's rather easy to follow
- Works with latest TouchDesigner
- Multiple passes (1 and 2)
- More than 2 passes
- Vertex shader (
varying
not implemented)
- make
IMG_THIS_PIXEL
work exactly likeIMG_THIS_NORM_PIXEL
- don't crash on invalid INPUTS and PASSES
- fix ISF shaders using
fragColor
variable, usage is reserved for TD
- fix
IMG_THIS_PIXEL
andIMG_THIS_NORM_PIXEL
sampler functions
- fixed compatibility with TouchDesigner 2022.24200
- added support for TIMEDELTA keyword
- fixed compatibility with TouchDesigner 2020
- float parameters exposed as relative value in 0.0 to 1.0 range instead of absolute value
- initial release
Issue reports and pull requests are welcome.