As ShaderToy does not accept custom datatypes, I am unable to easily send it the Color value of a selected point, (I added a red dot to get the custom color value of green screen). So simply find the correct color - and copy it into the shader (where it lists the BG color values).

Quite an impressive key!!! However many green screen effects pull more than one key- and also there is always an amount of spill, (as in the eyes), which needs to be fixed.

alexmitchellmus: As ShaderToy does not accept custom datatypes, I am unable to easily send it the Color value of a selected point

Using Append Texts to break apart the fragment shader opens this door. I used your first example and inserted a way to sample the background. Works great! Render the comp then use Cmd-click to sample. Changing sample size is useful, too.

Added a couple nodes to clean up the mask a bit, which suggests there are more things possible using built-in nodes for clever spill suppression, cleaning up edges, etc. With Append Texts, probably could pile more features into one shader with real time adjustments.

I'd love to see a shadertoy demo in Vuo doing something like this. GLSL is slow going for me. Like, how would someone get this chroma key shader up and running? https://www.shadertoy.com/view/4dX3WN

Btw, IIUC, using Mask Image with Brightness would essentially be a luma key. (Edit: I see your example, Jaymie -- using the green channel on 'Mask Image by Brightness' is not a luma key. Works pretty well as is. Vuo should probably have a built-in Mask Image by Color, too.)

Thanks jersmi for thinking of a way to make it easy! (I was only thinking about getting data values into a custom shader node- so I didn't think of cutting up the actual shader program itself! VERY COOL). Talk about collaborative coding! :-) There are also other color values as well for fine tuning the key, you may want to have a look at them to with the same trick!

jersmi, have you tried following alexmitchellmus's steps above for "translating a ShaderToy shader to Vuo" (actually it's translating the new ShaderToy syntax back to the older syntax that Vuo currently expects), then pasting the code into the Fragment Shader input of Make Image with Shadertoy? Check Console for error messages.

The original shader had an effect on the BackGround (BG)- but I took it off to give you more freedom to play. This REALLY is a simple shader, and a better shader could provide VERY good results. Unless I am mistaken, GLSL should easily be able to pull a cinema quality green screen (given the right programming).

Linked to a random GreenScreen cat, whoever knew!

Translating a ShaderToy shader to Vuo can be easy or hard depending on the shader. If its a simple shader, (and simple doesn't mean small either), then you can make it work by doing 3 steps:

Change the void mainImage( out vec4 fragColor, in vec2 fragCoord ) function to void main() (no text in function brackets) some people do: void main(void) but it works in Vuo without.

Change FragColor (or) fragColor to gl_FragColor

Change FragCoord (or) fragCoord to gl_FragCoord

Those are the things I change right away. Also remember- don't get worried when you see: fragCoord.xy, that simply means the XY component of fragCoord, which is simply the current pixel coordinate. Think of it like an old TV scanning, each line at a time across the X and down each line on the Y. You don't need to use XY at the end of fragCoord all the time, but sometimes you do, it depends on what you are doing.

Other than that, as ShaderToy is GLSL ES, and I believe Vuo is FULL GLSL, then there will always be small issues- or differences. But most of the time a bit of a play gets it working lovely!