Ah, sorry, I had missed that you wanted to use fixed function and not require more than one texture. I can tell you that you cannot get all of the arbitrary blend modes using just glBlendFunc and glBlendEquation. GLSL is infinitely more flexible.

I would highly suggest doing a render to texture so you can post process your scene or mix with multi-textures. You can also do fun things like full scene blur, etc. Its how almost all modern games and graphics systems work these days, using render to texture and post processing pipelines and lets you do lots of things 'on top' of your fixed function rendering if you decide you want to add something else to your scene.

As for difference, Im pretty sure you *can* do that blend mode, but I have not done it myself, sorry I cant be more helpful.

On Dec 26, 2009, at 5:18 AM, Matteo Sisti Sette wrote:

vade escribió:
You can do arbitrary blend modes in PD with GLSL as you suspect. take a look at http://001.vade.info/?page_id=20 which has shaders for video mixers (a through a+b to b blending, not just a+b) with most photoshop blend modes.

Hi,

I just had a very quick look, but it seems to me that your mixers use 2 textures, very much like the "multi texture" example I mentioned.

To use them, you need two textures and you obtain the blended picture.

I was looking for a way to replace the blend function, the very same function whose parameters you can modify using glBlendFunc and glBlendEquation.

In order to use a two-texture mixer for my purpose (which is to change how the object blends with the background), I would need to repatch everything so that I snap the scene into a texture before blending. In my case it would be quite a radical repatching.

However, after a little bit of googling, it seems that what I would like to do is simply impossible, isn't it? If I understand correctly, with glsl one can "only" modify the vertex and fragment transformations, while the blending phase cannot be modified. Is it correct?

If so, is there a way I could do "difference" blending, that is the absolute value of the difference between source and destination colors? I have already done additive and multiplicative blending with glBlendFunc alone, and I should be able to do subtractive with glBlendEquation... can anybody suggest a way to get the absolute value?

Thanks
m.

--
Matteo Sisti Sette
[email protected]
http://www.matteosistisette.com


_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management -> 
http://lists.puredata.info/listinfo/pd-list

Reply via email to