2
$\begingroup$

What I have:

  • [A] a sequence of RGB images
  • [B] a sequence of grayscale alpha images (but also in RGB)

What I want:

  • a sequence of RGBA images that have untouched RGB channels from the [A] sequence, and the alpha channel created from the [B] sequence.

Is there a way to do this using Blender's sequence editor?


EDIT: I'm almost there. The trick is to load both sequences as Movie Clips, add these to the compositor using the Movie Clip node, and combine channels.

The remaining problem is the way the alpha is handled - I want straight all the way (so that the RGB channels are not touched), but I can't find any settings for that, and I get a white outline, such as often appears when there is straight/premultiplied alpha mismatch:

https://dl.dropboxusercontent.com/s/jvf9r7fu6j9hrna/shot_170905_203012.png

$\endgroup$
  • 2
    $\begingroup$ You can use SetAlpha node in the compositor to join both sequences, if that's acceptable...? $\endgroup$ – brockmann Sep 5 '17 at 14:40
  • $\begingroup$ @brockmann Almost - see the edited question. $\endgroup$ – PLyczkowski Sep 5 '17 at 18:31
  • $\begingroup$ The method used in that screenshot is wrong. Try with the SetAlpha node instead, as @brockmann suggested. $\endgroup$ – Gez Sep 5 '17 at 18:37
  • $\begingroup$ Where does the source material come from? (I mean, do you know what program was used to produce it?) $\endgroup$ – Gez Sep 5 '17 at 18:38
  • 1
    $\begingroup$ I agree with troy_s regarding associated (premultiplied) alpha is your best bet here. Use the SetAlpha node, then plug an AlphaConvert from straight to premul. That will result in a correct associated image. Blender wil pre-divide it back if you save the output as PNG. $\endgroup$ – Gez Sep 5 '17 at 18:55
4
$\begingroup$

What you try to achieve is extremely simple: Just plug the RGB image to the Composite's node "Image" socket and plug the Alpha image to the alpha channel, and make sure you're saving to an unassociated alpha format, as PNG. The same effect is achieved by just plugging a set alpha node and connect the output (Now RGBA with the new alpha assigned) to the Composite's "Image" socket.

Keep in mind that both methods will produce exactly what you want, but you won't be able to see it in the viewer, as Blender expects an associated buffer to display. The saved PNG will be fine.

That being said, it's important to remember that PNG and unassociated alpha are no the best choice for CG and VFX. Associated alpha allows you to create composites where your transparent pixels can also be luminous, producing lighting effects that are absolutely impossible using unassociated (straight) alpha. Preserving RGB is only useful when you want to do associated alpha compositing. It is completely useless with unassociated as the alpha over operation will make any pixel with alpha=0 disappear.

$\endgroup$
  • $\begingroup$ Adding to that, After Effects can be used for this as well - it can export tga sequences with straight (or premultiplied) alpha. $\endgroup$ – PLyczkowski Sep 5 '17 at 20:00
  • 3
    $\begingroup$ But it's internal pipe is still unassociated, which mangles some associated files with luminscent transparent pixels. In this case it won't make any difference for you, but it's goog to keep that in mind when you're producing the source assets with an associated alpha program. $\endgroup$ – Gez Sep 5 '17 at 20:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.