I make a "shockwave" using Halo material. It looks nice only for the black background. If I check "Shading > Alpha > Transparent", render result is breaks down. How to fix it? with background without background


There are a couple of things to consider here:

First, Blender's viewer is currently broken for associated alpha, which is the default format the renderer produces. That means that the viewer won't show the pixels that are both luminous and fully transparent (alpha zero, RGB not zero) from an image with associated alpha.

If you're going to composite that effect using Blender's compositor, just try an alpha over on a colour to judge whether your image transparency is correct instead of relying on the RGBA view of Blender's image viewer.

Also, you have to understand the kind of effect you're tying to achieve: This is a lighting effect that you want to be added to a background.

As easy as it sounds, adding that luminous element can be done via a simple add. You don't even need an alpha channel (because there is no occlussion), you can just add the RGB plate to the background and it look ok.

If you want to produce an RGBA image that can be composited with an alpha over anyway, keep in mind the following:

  • ONLY associated alpha (often called pre multiplied) allows the compositing of pixels that are luminous and transparent, so choose a file format that supports associated alpha (the most common for visual effects is EXR)
  • It's impossible to produce that kind of alpha blending with unassociated alpha, so formats like PNG are completely ruled out.
  • Image editing programs like Photoshop and GIMP work internally with unassociated alpha, so they are not suitable for compositing that kind of effects with alpha blending. You need to cheat and use an RGB only image with an addition instead (those programs are also likely to destroy the RGB information of every pixel with alpha=0, so be careful).
  • $\begingroup$ Thanks for the detailed response! Is there a way to have a result how in my post, using cycles? $\endgroup$
    – Nisu
    Nov 24 '16 at 10:33
  • $\begingroup$ Sure, what do you want to see? Compositing that effect in Blender's compositor? I can make a screenshot of that, but it's as simple as using a mixRGB node set to add to connect foreground and background, no other tricks involved. $\endgroup$
    – Gez
    Nov 24 '16 at 23:15
  • $\begingroup$ I need to make a shockwave animations like in my first post. For this task I used a halo material, but if I can't render this animations with transparent bg in blender internal, I think that I can do this in cycles. But cycles don't have halo material, so, how I can make pseudo-halo effect from my first post in cycles? $\endgroup$
    – Nisu
    Nov 26 '16 at 13:38
  • $\begingroup$ Ah, it's easy: Just make your shader an emission shader. it will light the surroundings of your scene. If you need a clean plate with the effect only and a glow, you can produce the halo with the compositor. Just plug the rendered plate to a gaussian blur node an blur it until you get the desired halo with, and add the result to the original plate using a mixRGB node setting the blend mode to "add" (remember, when you add a luminous effect it is always an addition) $\endgroup$
    – Gez
    Nov 27 '16 at 13:23

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.