https://github.com/marcinbiegun/isf-touchdesigner
ISF TouchDesigner
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
What is ISF?
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/
How to use it
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.
Compatibility
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
Features
- 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)
What's missing
- More than 2 passes
- Vertex shader (
varying
not implemented)
Changelog
2022.08.07
- 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
2022.06.24
- fix
IMG_THIS_PIXEL
andIMG_THIS_NORM_PIXEL
sampler functions
2022.06.02
- fixed compatibility with TouchDesigner 2022.24200
- added support for TIMEDELTA keyword
2020.05.28
- fixed compatibility with TouchDesigner 2020
- float parameters exposed as relative value in 0.0 to 1.0 range instead of absolute value
2018.06.13
- initial release
Contribuing
Issue reports and pull requests are welcome.
Discussion (0)