How to use input on "ShaderFX : Float3ToFloat" node


I cant find anywhere how I should connect inputs to Float3ToFloat (or any other similar) ShaderFx node. It works if I use ComputeFloat or Float3ToFloat with hardcoded values:

But it doesn’t if I use Float3ToFloat with ComputeFloat input value:

In old tutorials I saw “Input” and “Invoke” ShaderFX nodes but those seem to be missing from newer gamma versions. So how this is supposed to be done?

I’ve Just tried this and it worked well: (3.0 KB)

Could it be that you have shaders with the same name somewhere in the vvvv.exe scope? Shader names are global, you can’t have two shaders with the same name twice per vvvv instance.

Also if you change shader types, restart vvvv, sometimes older instances might be cached.

Thanks for the reply!

Yes, inputs on the first node (TextureFx) work, but they don’t work on the second node (ShaderFX). (3.1 KB)

You are right, this seems to be a bug. You can get it to work if you add the stage keyword:

stage float4 Color = float4(1, 1, 1, 1);

But then you can only have one per shader graph. So if you use the same ShaderFX node multiple times in the same shader graph, the last node that gets evaluated will set the value for all. So for basic cases, the stage keyword helps, otherwise you have to make a new copy of the shader with another name until it gets fixed.

The issue is tracked here: Uniform pins on ShaderFX nodes don't get updated sometimes · Issue #647 · vvvv/VL.StandardLibs · GitHub

See also: Integer input of ShaderFX does not update

Oh, I see. I hope it gets fixed sometime soon, It kinda cripples this otherwise very powerful system. Thanks for the help!