FreeframeGL ShaderLoader

FFGL, OSC, GLSL. If you like abbreviations, this is the forum for you
Post Reply
leadedge
Hasn't felt like this about software in a long time
Posts: 104
Joined: Fri Feb 14, 2014 13:58

FreeframeGL ShaderLoader

Post by leadedge »

Hello to everybody,

I have not contributed to this forum before so I hope it is OK.

As a spin-off from the Spout project, here is a FreeframeGL plugin that will load shader files created from GLSL Sandbox or ShaderToy.

https://github.com/leadedge/ShaderLoader/releases

There are some limitations such as no audio input, only two input textures and not all of the pre-defined uniform variables are supported. But nevertheless many many of the shaders on the websites work straight away. With attention to licensing and credit to the authors, this effectively creates a huge number of instant freeframe plugins.

You can select the shader files with a file selection dialog and edit them. Spout users will need to update “SpoutPanel” with this latest version by copying “SpoutPanel.exe” to the host program folder and replacing the old version.

The plugin has been tested on a limited number of computers, you can give feedback on the Spout forum too.

http://spout.zeal.co/forums/topic/shaderloader/

Cheers to all,

Lynn Jarvis
spout.zeal.co

Amid
Met Resolume in a bar the other day
Posts: 14
Joined: Thu Oct 04, 2012 18:54

Re: FreeframeGL ShaderLoader

Post by Amid »

cool!
works fine! thank you

User avatar
drazkers
Wants to marry Resolume, and Resolume said "yes!"
Posts: 968
Joined: Wed May 18, 2011 10:54
Location: Brady V up in Canada

Re: FreeframeGL ShaderLoader

Post by drazkers »

I've been playing with this and having a great time. Interestingly I've had to scale back alot of files that ran in touchdesigner really nicely and then would get sent over to resolume via spout. The same files normally needed tweaking to bring the performance back in range. But i've actually been looking for this for quite some time, as this is a much nicer workflow for straight show up and rave shows then having to rely on touch designer put an interface ontop of resolume.

leadedge
Hasn't felt like this about software in a long time
Posts: 104
Joined: Fri Feb 14, 2014 13:58

Re: FreeframeGL ShaderLoader

Post by leadedge »

I have noticed that the performance of some shaders is dependent on viewport size. Is this what you are experiencing or is there some other way you are scaling and tweaking? At the moment, if the shader uses a texture, the resolution size is set to that of the texture, otherwise the viewport.

Sadler
Hasn't felt like this about software in a long time
Posts: 240
Joined: Tue Sep 20, 2011 23:55

Re: FreeframeGL ShaderLoader

Post by Sadler »

I've had a quick play. This is something I've also been hoping for since then "some other GL scripting".

Works very well - kudos to Lynn and the spout team.

Notes:
"stardust" shader plays then ends and has to be removed and re-applied to play again.
When the ShaderLoader is reapplied it seems to remember the previous shader.
"clouds" shader reduces FPS to sub 20. (GTX 750)
Some shaders remove/hide/cover the Resolume demo watermark.

leadedge
Hasn't felt like this about software in a long time
Posts: 104
Joined: Fri Feb 14, 2014 13:58

Re: FreeframeGL ShaderLoader

Post by leadedge »

Yes there is a lot potential for this. But don't get too disappointed if many of the ShaderToy shaders don't work. I tried "StartDust" but it did not work for me.

ShaderLoader will save the currently loaded shader file path in the registry and that will be recalled when it starts again. Unless there is a shader name or path entered in the "Shader Name" entry field and then that is recalled instead. This allows you to set up several instances and each will recall the shader file name entered if you switch decks or start again.

The clouds example I selected as an example is impressive, but heavy going. It depends on the viewport size. I get about 23fps at 640x480, but only 3fps at 1920x1080! So keep the viewport size down for this one. There is another clouds shader that does much better.

Really it's ideal if you use the ShaderToy examples as a basis for your own shader, but even so many do work out of the box.

Not sure about the Watermark. There is nothing in there that does this intentionally.

So keep trying it. The main thing is that it does not crash, freeze or otherwise cause grief.

User avatar
drazkers
Wants to marry Resolume, and Resolume said "yes!"
Posts: 968
Joined: Wed May 18, 2011 10:54
Location: Brady V up in Canada

Re: FreeframeGL ShaderLoader

Post by drazkers »

leadedge wrote:I have noticed that the performance of some shaders is dependent on viewport size. Is this what you are experiencing or is there some other way you are scaling and tweaking? At the moment, if the shader uses a texture, the resolution size is set to that of the texture, otherwise the viewport.
Was a 720p vs 720p No idea, to be honest 9 out of ten times I can tweak afew variables that LED walls won't pick up anyways and i'm back into 40FPS range on 720p. I'll pm you any photos i get of anything out on the road.

leadedge
Hasn't felt like this about software in a long time
Posts: 104
Joined: Fri Feb 14, 2014 13:58

Re: FreeframeGL ShaderLoader

Post by leadedge »

Sadler,

I went back to look at "stardust". It wasn't the one I thought it was. It has a time-out after 64 seconds and fades to black and has to be started again. If you want to use this send a pm to me.

User avatar
francoe
Is seriously in love with Resolume. Met the parents and everything
Posts: 378
Joined: Thu Nov 27, 2008 23:30

Re: FreeframeGL ShaderLoader

Post by francoe »

Love it!!

leadedge
Hasn't felt like this about software in a long time
Posts: 104
Joined: Fri Feb 14, 2014 13:58

Re: FreeframeGL ShaderLoader

Post by leadedge »

Update release :

https://github.com/leadedge/ShaderLoade ... /tag/1.0.1

Fixed a problem with the path containing "." characters being truncated. The Resolume paths should work OK now.

Also changed time "start" to when the shader is loaded as noticed in the shader mentioned above which uses absolute timing to time-out.

Post Reply