glsl-view
a minimal GLSL shader host with an OSC interface for setting uniforms in realtime.
OSC interface
GLSL uniforms are accessible as /$UNIFORM_NAME. The OSC type must match the GLSL type:
uniform float time = 0;
uniform dvec3 color;
----
/time f 123.56
/color ddd 0.5 0.1 0.1
Vectors and matrices can be indexed using integers or the GLSL swizzling keys (x/y/z/w, r/g/b/a, s/t/p/q):
uniform vec3 color;
uniform mat3 mat;
----
/color/r f 0.5
/mat/0/y f 123
samplers
When built with ffmpeg, images and videos can be loaded as 2D or 3D textures:
uniform sampler2D image;
uniform sampler3D videoA;
uniform sampler2DArray videoB;
----
/image s "image.jpg"
/videoA s "subdir/video_a.mp4"
/videoB s "subdir/video_b.mov"
The filepaths are interpreted relative to the config file.
commands
A message to /-/reload forces a reload of the shader source code.
configuration
Configuration is read from config.yaml or the only command line argument.
fragment(str): path to GLSL fragment shader.width(int): horizontal rendering resolution. defaults to1920.height(int): vertical rendering resolution. defaults to1080.outputs: list of outputs. defaults to one 800x600 window. each output is a dictionary with the following keys:type(str): currently alwayswindow.width(int): window width. defaults to800.height(int): window height. defaults to600.filter(str): one ofnearestorlinear.osc: either a 'liblo URL' or dictionary with the following keys:protocol(str):udp,tcporunix. defaults toudp.port(int): port to bind to. defaults to9000.
liblo URLs
Unfortunately undocumented by libio. The following formats are valid:
osc.udp://localhost:1234osc.udp://224.0.1.9:1234(multicast IP)osc.tcp://:1234osc.unix://localhost/tmp/mysocket
Commit History
@hap
git clone https://git.s-ol.nu/glsl-view.git
- wip HAP codec s-ol 8 months ago
- update for Zig 0.14.0 s-ol 8 months ago
- Update README.md s-ol 8 months ago
- allow disabling texture/ffmpeg support at build time s-ol 8 months ago
- fix shader reloading wrt Textures s-ol 8 months ago
- load videoes/textures relative to project_root s-ol 8 months ago
- automatically add GLSL 3.30 header s-ol 8 months ago
- configurable filter for output scaling s-ol 8 months ago
- load videos and textures using libav s-ol 8 months ago
- update for zig 0.13.0 s-ol 1 year, 7 days ago