Video OpenGL Shader

OpenGL shader player,compatible with single pass interactive shader format, shadertoy, glsl sandbox shaders with generally few adaptations.

shader example

In Usine, the openGL shader is made of a vertex, a fragment containing eventually interactive shader format definitions, and a header containing various definitions and compatibility settings.

shader editor

It's outside the purpose of the manual to teach you how to create a shader but you can start with examples of the library. There are 3 kind of examples:

  • draw: simples shaders which are drawing images with optional mouse interaction.

  • isf: Interactive Shader Format shaders with extra inputs on the modules according to the ISF definitions. isf-example

  • fx: shaders which are transforming an input image and contain a video input inlet. fx-example

The header contains the following compatibility definitions. It can be changed by editing the file /Resources/Templates/Shaders inside the application folder.

/////////////////////////////////////////////////////////////////////////////////
// compatibility with Sandbox
uniform float     time;                 // shader playback time (in seconds)
uniform vec4      date;                 // current date vec4(Y,M,D,S)
uniform vec2      resolution;           // viewport resolution (in pixels)
uniform vec2      mouse;                // mouse pixel coords. xy: current 
uniform float     mousedown;            // is 1.0 if mouse is down 0.0 otherwize
uniform int       frame;                // shader playback frame
uniform float     timedelta;            // render time (in seconds) 

//////////////////////////////////////////////////////////////////////////////////
// compatibility with shadertoy 
#define iMouse vec4(mouse.x*resolution.x,mouse.y*resolution.y,mousedown,mousedown) 
#define iTime time 
#define iTimeDelta timedelta
#define iResolution vec3(resolution.x,resolution.y,0.0) 
#define iChannel0 backbuffer
#define iFrame frame
#define iDate date

//////////////////////////////////////////////////////////////////////////////////
// compatibility with ISF 
#define RENDERSIZE resolution  
#define FRAMEINDEX frame
#define TIME       time 
#define TIMEDELTA  timedelta             
#define isf_FragNormCoord (gl_FragCoord.xy/resolution.xy) 

//////////////////////////////////////////////////////////////////////////////////
// Usine inputs
uniform sampler2D backbuffer;           // background texture
uniform vec2      surfaceSize;          // surface resolution (in pixels) = resolution

Settings

on

Activates or deactivates the module.

process time

Total time used for the calculation of the module.

video out

Video output flow(s).

speed

Overall speed of the shader.

  • 1 = normal speed
  • 0.5 = half speed
  • 0 = stopped
  • 10 = 10 times faster

restart

Restarts the shader (sets the time uniform to 0).

render width

Width in pixels of the shader video output.

render height

Height in pixels of the shader video output.

open shader editor

Opens the shader editor window.

file name

File name of the shader fragment to open.

Common Settings

info

show manual

Button. Opens the manual page of the selected object (or of its parent module for a control) in the web browser. If no page exists for this object, an error is traced in the trace panel.

For more details about information/help creation, see create-help-file.

description

Free multi-line text attached to the module, saved with the patch. It is only meant as an internal note for the patch designer: it is not displayed in the interface.

ID's

visible only in god mode, see setup-panel-tab-expert.

unique ID

Read-only, not saved. Current private numeric ID of the object, used internally to identify it (for example as the target of a bind ID).

preset ID

Read-only, not saved. Private ID used to store and recall the values of this control in presets.

recreate ID

Button. Generates a new unique ID, original ID and preset ID for the object. Use it if you experience difficulties in Polyphonic mode or if two objects share the same ID. Preset values and binds referring to the old IDs are lost.

Object Remote Address

absolute

Read-only, not saved. Absolute address of the object in the Usine objects tree, built from the workspace root. This is the address to use to reach the object from scripts, the objects panel or remote messages. Only shown for objects that are registered in the objects list. See objects-address.

local

Read-only, not saved. Address of the object relative to the current patch, valid inside that patch only. See objects-address.

user addr

Free user-defined address for the object (empty by default). When set, the object is also registered in the objects tree under this name, so it can be reached independently of its position in the workspace (the value is also reported in the mouse-over and mouse-down chunks). Changing it rebuilds the objects list. Only available on objects that support a user address. See objects-address.

See also

version 7.0.250121

Edit All Pages