Page MenuHome

Creation of an RGBA buffer from an RGB color and an alpha channel not possible.
Closed, ResolvedPublic

Description

Debian GNU/Linux 64 bit (Testing)
nVIdia GeForce 9600GT

Blender 2.66 Trunk - Worked fine in 2.65 and earlier versions

I use a simple method for creating shadows and glows behind renderlayers
It used to work but it doesn't in 2.66 trunk (r54330). The attached file shows the behavior (it work if opened in 2.65 or earlier, it doesn't work when opened in trunk)

Steps to reproduce:
- assign the rendered alpha to an RGB color
- convert alpha to premul
- blur the output
- combine the blurred shape with the original renderlayer with an alpha over node.

It stopped working and the alpha assigned to the RGB color returns nothing.
This is probably caused by the fact that the RGB input doesn't have any dimensions, but that doesn't prevent a mix node to work the same way and the size of the other operator is considered.
This used to work like this. It's fixable but it requires to add several extra nodes to do it, so it's not a desirable situation.

Event Timeline

gez edited a custom field.Feb 6 2013, 4:54 PM
gez attached 1 file(s): F22346: outer-glow.blend.

Confirmed, it seems it goes wrong in the Set Alpha node, the output of that is a single color even if there is an image plugged into the alpha socket.

It fails when no image is connected to the set alpha node. Will make additional check. Seems to be the same behaviour from 2.64 though.

Fixed in revision 54370.

Thanks for reporting!

Jeroen Bakker (jbakker) changed the task status from Unknown Status to Resolved.Feb 7 2013, 8:24 AM
gez added a comment.Aug 26 2013, 5:46 PM

I noticed in 2.68 that the set alpha node also fails when the input comes from an RGB set in a group socket.
I tried both by using an explicit RGB input node and by setting the RGB value in the empty group socket and it fails in both situations. I'm commenting here because it does exactly the same it did before the fix, son I'm guessing it's related and it only does the check when no input is connected.