I appended an example file in which the background of the plane should show the green diffuse-color of the material. But it gets multiplied with black where the image is transparent. The alpha works in many other blend modes as a factor multiplied with the influence factor in the texture settings, except for multiply, screen and some others. In this modes it is treated as black where it is transparent and fully opaque. The modes mix, add, subtract use the alpha as just an influence factor, others don't.
Is there any reason why it is that way? I can't imagine a good reason.
Description
Event Timeline
Man, that's crap!
I traced this blend mode code back to 2004, and it has a typo for Multiply, Screen and Overlay modes...
Fixing that makes it work as you would expect, but it will change past renders in ways... at least for alpha images. However, it will show correct results!
I'll fix this in svn, and keep an eye open at the consequences for other renders. If you can check that is welcome too. Thanks!
Thank you for the fix. But "Darken" and "Lighten" only work while rendering. Inside the 3D view the alpha is still ignored.
"Divide" gives also different results. But i guess it is a question of definition what it should do in some cases (division by zero).
Darken was wrong (fixed), Lighten was OK in your file (and the code same too)...
Divide glsl shader is exactly same as the render module - that this fails for (near) black I cannot fix... all new code for me :)
Will ask brecht about it.
Thanks!