thanks for the report. some slight differences are expected because the stride graphics pipeline operates in linear color space. in vvvv beta, we only had gamma space. there is no right or wrong, but in more modern and professional workflows linear color space is the default because it preserves the colors correctly.
gimp, for example, can switch this blending mode per layer, maybe our blend node should have this too…
looks like a bug.
The Add is correct though, but you need to make sure that the input texture is really white. If you use SceneTexture you will have a ToneMapoperator that maps HDR colors to screen colors. You can draw in the AfterScene render stage to skip the PostFX or use a RenderTexture and a QuadRenderer to do low-level rendering of primitives.
This could be defined either way. why do you think that the alpha should not multiply? doesn’t it give more options for the alpha channel of the output? if you set the color to black with Alpha = 1 you would get the output you are looking for.
looks like a bug, too.
The shaders for the blending operations can be found here:
most of them follow this reference:
we didn’t check each one in detail, but if you have any fixes or suggestions, let us know. otherwise, we will fix the erroneous ones in a future release.
The problem is I would say is the behavior I’m looking for and I believe people using graphic tools should be the same as GIMP, Photoshop, Blender etc…
Also when using blend mode like this you need to switch between them quickly. Now if Multiply works with a Black background with Alpha 0 then other like Normal won’t. It is in my opinion better if the alpha works the same for all of them.
If not then, people will be confuse that in VL things works (again) differently from other software. And some blendmode needs to be manage differently.
I found the Alpha compositing formula on StackOverflow and here is what I have done so far : BlendShader.zip (9.9 KB)
For some reason here I don’t understand the Divide blendmode make the background slightly brighter and I had to use Saturate function where vvvv Beta didn’t need it.
Note that the Type is control by a switch case with Integer32 as I haven’t manage to get the enum working yet.