Previous topicNext topic

Some fun effects shaders for the GLSLShader module

Tutorials, FAQs, resources, and examples for using Magic.
Post Reply
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Some fun effects shaders for the GLSLShader module

Post by Magic »

EDIT: In Magic 1.6, many of the effects below are now included as standalone modules in the main installation.
---

Here are a few shader effects that work with the GLSLShader module. I created some of them myself, and I edited the others (from http://shadertoy.com and other places).

Make sure you hook up an input to the GLSLShader module to use them.

I'll update this post as I find more good ones. And feel free to add your own!

See post below for ChromaKey instructions.
And there's another (potentially better) ChromaKey later in this topic: http://magicmusicvisuals.com/forums/vie ... rt=10#p805

Also check out my Alpha Mask shader: http://magicmusicvisuals.com/forums/vie ... ?f=3&t=146
And my FadeMix shader: http://magicmusicvisuals.com/forums/vie ... p=711#p711

Sorted newest to oldest:
Attachments
Drawing.txt
(1.73 KiB) Downloaded 5840 times
Glitch.txt
(1.58 KiB) Downloaded 5792 times
ArrayX.txt
(585 Bytes) Downloaded 5743 times
ArrayY.txt
(585 Bytes) Downloaded 5708 times
Opacity.txt
(163 Bytes) Downloaded 5690 times
Pixelate.txt
(353 Bytes) Downloaded 5954 times
Posterize.txt
(339 Bytes) Downloaded 5573 times
VideoHeight.txt
(3.67 KiB) Downloaded 5863 times
NoiseBlur.txt
(294 Bytes) Downloaded 5619 times
Ripple.txt
(440 Bytes) Downloaded 5516 times
ChromaKey.txt
(2.38 KiB) Downloaded 5931 times
SmudgeBlur.txt
(560 Bytes) Downloaded 6075 times
EdgeGlow.txt
(1.16 KiB) Downloaded 5738 times
WhirlyPool.txt
(1.26 KiB) Downloaded 5851 times
Ranya
Posts: 18
Joined: Fri Nov 07, 2014 7:57 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Ranya »

Thanks, keep em coming.
Sadler
Posts: 1137
Joined: Sat Aug 02, 2014 7:10 pm
Location: London, UK

Re: Some fun effects shaders for the GLSLShader module

Post by Sadler »

The SmudgeBlur doesn't seem to work for me.
SmudgeBlur.jpg
SmudgeBlur.jpg (89.56 KiB) Viewed 215011 times
The other two work well though, as do many GLSL shaders I've tried.
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

Hmm, that's weird. What kind of graphics card do you have? Perhaps try updating the driver?
Terry Payman
Posts: 710
Joined: Sun Sep 14, 2014 8:15 am
Location: UK
Contact:

Re: Some fun effects shaders for the GLSLShader module

Post by Terry Payman »

Sadler wrote:The SmudgeBlur doesn't seem to work for me...
Nor me. Tried two Win 7-64 systems.
NVIDIA GTX 580 & GT 610 Cards. Drivers 340.52 originally. Update to latest 344.65 made no difference.
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

Ok, it might be due to a bug in the original code. Strange. Anyway I fixed it and uploaded it again -- try it and let me know.
Terry Payman
Posts: 710
Joined: Sun Sep 14, 2014 8:15 am
Location: UK
Contact:

Re: Some fun effects shaders for the GLSLShader module

Post by Terry Payman »

Eric wrote:...-- try it and let me know.
Fixed!
Nice painterly effect when fed from the default shader. Goldwaves shader shows the effect very clearly. Thanks Eric.
Sadler
Posts: 1137
Joined: Sat Aug 02, 2014 7:10 pm
Location: London, UK

Re: Some fun effects shaders for the GLSLShader module

Post by Sadler »

Yes, fixed for me too - assuming this is the intended effect...
SmudgeBlur2.jpg
SmudgeBlur2.jpg (79.06 KiB) Viewed 215003 times
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

That looks right :). Cool.

Btw, for that shader you can adjust the X Param to change blur amount.
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

I just added a Chroma Key shader (download link in first post). The code is based on Brad Larson's framework:
https://github.com/BradLarson/GPUImage/ ... eyFilter.m

He has a bunch of nice ones so I might add more later.

Because the Chroma Key requires an input color, but the GLSLShader module doesn't support one yet, you have to do something a bit convoluted. The second input has to be a solid color which represents the color to remove, such as a Polygon with a Color module :
ChromaKey.jpg
ChromaKey.jpg (112.57 KiB) Viewed 214994 times
The X Param is "threshold sensitivity" and the Y Param is "smoothing". I recommend you start with values of .2 for each. In the above example you can see that it removes blue from the default shader.
Terry Payman
Posts: 710
Joined: Sun Sep 14, 2014 8:15 am
Location: UK
Contact:

Re: Some fun effects shaders for the GLSLShader module

Post by Terry Payman »

Many thanks for looking at Chroma Key Eric. Very useful!
Eric wrote:..Because the Chroma Key requires an input color... you have to do something a bit convoluted. The second input has to be a solid color which represents the color to remove, such as a Polygon with a Color module ...
For green-screen work I find it's easier to be able to tune the hue of the reference color rather than mix RGB.
I've just discovered your HueSaturation module with Lightness = 1 seems to work very well for this purpose (with no input needed). Previously I have used Resolume Avenue's AVFFGLSolidColor which again offers hue control.

BTW I seem to get slightly better keying using casty's Shadertoy "Vlahos chroma key" https://www.shadertoy.com/view/MsS3DW. This seems to totally eliminate any green fringing without impacting the brightness of the foreground object.

Regretfully I don't understand the code for either approach, but it would be awesome if you could devise a hybrid.
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

it would be awesome if you could devise a hybrid.
I'll try. Doing a quick test, the Shadertoy one seems to work well with the provided video's green color, but when I use a different video or image, and try to match the color, it doesn't work as well. It might be optimized for that particular green.
Terry Payman
Posts: 710
Joined: Sun Sep 14, 2014 8:15 am
Location: UK
Contact:

Re: Some fun effects shaders for the GLSLShader module

Post by Terry Payman »

Eric wrote:.. It might be optimized for that particular green.
Indeed! Hard coded :D as far as I can see, the shader's two inputs being foreground and background images.
It would benefit greatly from the facilities you provided for your Larson-based shader; a reference color input together with two "tuning" parameters.

From experiment, I think perhaps the reference threshold adjustment can be provided by appropriate choice of hue/sat/brightness of the reference input.
If that was the case then the two tuning parameters could perhaps be "sharpness/smoothing" of the transition, and some "erosion" control of the foreground.

If you compiled your own dedicated shader :D there are a few other controls that are commonly provided.
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

What I meant is that if even I change the hard-coded settings to make them configurable with inputs and parameters (as I did with one I originally provided), it doesn't seem to work any better. At least with the reference images I'm testing. Can you share something you're testing with?
Terry Payman
Posts: 710
Joined: Sun Sep 14, 2014 8:15 am
Location: UK
Contact:

Re: Some fun effects shaders for the GLSLShader module

Post by Terry Payman »

Eric wrote:...Can you share something you're testing with?
Sorry Eric. I should have anticipated that you would do a thorough re-casting :) .

I grabbed a frame from some greenscreen footage I shot for a short film:
2v9t7o5.jpg
2v9t7o5.jpg (143.23 KiB) Viewed 213706 times
- compare especially the DJ's hair, bottom centre.

- and here's another I found on the web. Turns out to be a grab from some Shutterstock footage http://stock-clip.com/video/3214525-zebra-chroma-key
5ey5bm.jpg
5ey5bm.jpg (7.33 KiB) Viewed 213706 times
- very clean outline with casty's keyer, even with this very low-res image.

Having done extensive further tests, I confirm my original findings. Even if your version of casty's keyer works only for green, it would be very useful for greenscreen work! I would welcome the opportunity to try it!
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

Ok, thanks Terry. I'll work on this a bit and see what I can come up with.
Terry Payman
Posts: 710
Joined: Sun Sep 14, 2014 8:15 am
Location: UK
Contact:

Re: Some fun effects shaders for the GLSLShader module

Post by Terry Payman »

Eric wrote:I'll work on this a bit and see what I can come up with.
Much appreciated. Many thanks Eric! :D
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

Try this Terry. I was able to get it to look pretty good on both the zebra and the DJ.

X Param is adjustable.
ChromaKey2.txt
(898 Bytes) Downloaded 5701 times
Terry Payman
Posts: 710
Joined: Sun Sep 14, 2014 8:15 am
Location: UK
Contact:

Re: Some fun effects shaders for the GLSLShader module

Post by Terry Payman »

Eric wrote:... I was able to get it to look pretty good on both the zebra and the DJ..
Me too! :D
Excellent control of transition and despill! :D

Works equally well for blue-screen with c.b & c.g interchanged (5 locations total) in the getAlpha & despill subroutines. :D

Hugely helpful! Very many thanks Eric! :D
BaconMKII
Posts: 36
Joined: Mon Jun 02, 2014 8:31 pm

Re: Some fun effects shaders for the GLSLShader module

Post by BaconMKII »

Thanks for these! I had been scratching my head trying to do some kind of chromakey effect with the Resolume plugins without any success.
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

I just added two new shaders to the original post: Ripple and NoiseBlur.

Ripple responds to both X and Y params.

NoiseBlur (didn't know what else to call it) responds to X.

Here's a video I made with both effects. Watch in fullscreen mode at 720p to see the NoiseBlur details especially. Of course, in Magic it looks much better! Damn YouTube! :)
EDIT: I just realized the NoiseBlur shader didn't work properly on some Macs. I think I fixed it.
damstraversaz
Posts: 176
Joined: Tue Aug 26, 2014 11:22 am

Re: Some fun effects shaders for the GLSLShader module

Post by damstraversaz »

Oh, that's reallt great ! thanks a lot.
Could you share the project of the video ? it could be interesting
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

Sure, here you go.

Make sure to put the NoiseBlur.txt and Ripple.txt files in the same folder as the project.

Also, the project requires version 1.53, which is not released yet :), but the Beta will work.
Attachments
NoiseRipple.magic
(1.71 KiB) Downloaded 5422 times
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

Ok, I'm having fun with shaders at the moment, so I just added yet another new one to the original post: VideoHeight.txt.

It creates a 3D height map based on the input brightness. X and Y params control the rotation; set them both to .5 to make the image face the camera. Pretty cool!
damstraversaz
Posts: 176
Joined: Tue Aug 26, 2014 11:22 am

Re: Some fun effects shaders for the GLSLShader module

Post by damstraversaz »

great ! thanks a lot
Sadler
Posts: 1137
Joined: Sat Aug 02, 2014 7:10 pm
Location: London, UK

Re: Some fun effects shaders for the GLSLShader module

Post by Sadler »

The video height shader is great when it is mixed with its source. I've tried it with two different sources which gives a mysteriously unsettling effect which can be subtle or blatant. The ripple is also great when its mixed back in with its source.
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

I've added a quick new shader to the original post: Posterize.

The X Param controls the posterization amount.
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

...and here's another one: Pixelate.

X Param controls the pixelation amount.
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

And here's yet another very simple one: Opacity.

X param controls the opacity level.

I should say that it's MUCH more computationally efficient to manage opacity with the Alpha parameters in the ColorRGB/ColorHSB modules, but it's a little more complicated since you have to do a bit of math. See this tutorial for details: http://magicmusicvisuals.com/forums/vie ... p?f=3&t=28
blackdot
Posts: 528
Joined: Sun Jul 06, 2014 10:18 pm

Re: Some fun effects shaders for the GLSLShader module

Post by blackdot »

hey thanks a lot eric. opacity is really useful. theyre all quite useful actually. no idea if this is way too much to ask or really simple (or you if you even do take requests ^^), but can you do bloom? :) (as in this: https://udn.epicgames.com/Three/Bloom.html ). x could influence the intensity, and y the distance.
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

I'll see what I can do :).

I'm also planning on improving and extending shader support for Magic 1.6, which will enable even more third-party effects to be used.
hazardman
Posts: 74
Joined: Sat Nov 08, 2014 1:33 am

Re: Some fun effects shaders for the GLSLShader module

Post by hazardman »

Eric wrote: I'm also planning on improving and extending shader support for Magic 1.6, which will enable even more third-party effects to be used.
you're such a tease!.. :lol:
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

Two more shaders added: ArrayX and ArrayY.

These create copies of the image along the X and Y axes, respectively. I separated them because it's more computationally efficient.

X Param controls the number of copies. Beware that values closer to 1 can make your frame rate drop significantly!
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

I just added a neat little shader called Glitch.txt which glitches the video using audio input. It also has a nice CRT TV effect.

For the glitching, make sure you enable the "Audio->iCh." parameter, and set the "iCh. Index" parameter to 1.
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

Another one just added: a nice effect called Drawing.txt which simulates the look of pencil on paper. Cool when used with videos or live cameras.
spacedoctor
Posts: 31
Joined: Sat Sep 06, 2014 9:44 pm

Re: Some fun effects shaders for the GLSLShader module

Post by spacedoctor »

That drawing shader is great. And VideoHeight too - have a bunch of grey height maps from terrain models of Australia and New Zealand that will get some use now! Should be able to get the height synced to the beat; cool.
Can't work out how to get the Array X and Y working though - any suggestions? Have tried with .png, should it just be a shape/colour with mask?
Magic
Site Admin
Posts: 3440
Joined: Wed Apr 09, 2014 9:28 pm

Re: Some fun effects shaders for the GLSLShader module

Post by Magic »

Can't work out how to get the Array X and Y working though - any suggestions? Have tried with .png, should it just be a shape/colour with mask?
Oops, sorry about that. You're a Mac user right? It looks like there was a tiny little bug that prevented those from working on certain Macs. Can you try them again?

Note: if you happen to be using Chrome, try Safari temporarily instead... Chrome doesn't seem to let me download the new versions.
spacedoctor
Posts: 31
Joined: Sat Sep 06, 2014 9:44 pm

Re: Some fun effects shaders for the GLSLShader module

Post by spacedoctor »

Thanks Eric, works a treat -bug fixed!
Post Reply