How to render glow with transparent checked in film?

I’m trying to render lightsaber blades with a transparent background so I can composite them onto the entire scene and get motion blur on them without having everything else get smeared.

When I click render, the live-render display seems fine, but when I play it back or look at the actual output files there’s no compositing glare. I also tried using eevee’s bloom instead, but that doesn’t work either. Strangely enough, rendering just the image of an individual frame produces a file with the right compositing.

Any way I can get the glare effect in without rendering 1 frame at a time? Thanks!

Viewing image:


Viewing animation:

Bloom is an additive effect (it has no alpha), so people often run into issues trying to save it into formats that don’t support premultiplied alpha, like PNG*. I don’t know what format you’re writing to, but I’d check that first. If you really need the blades to be solid, you can A) write to EXR, which will preserve both the solid alpha and glowy additive information, or B) render to your desired format (PNG, TIF, MOV), one pass with the blades and alpha, and one pass of just glow on black, which you can Add on top in the composite. You might not actually need the blades to be solid, though: if you just render the whole thing on black (no transparency) and Add it all on top of your other layers, the bright white cores will probably still be enough to overpower whatever’s underneath them.

*Even aside from the case of additive pixels (alpha-zero), PNG has trouble in general with things that are both bright and transparent. In order to save the values into the file, it needs to divide the RGB values by the alpha value—let’s say we’re looking at one of those partially transparent motion-blurred edges: say the RGB is [0.6, 0.8, 0.7], and the alpha is 0.4—the resulting values are [1.5, 2.0, 1.75]. PNG can’t store values above 1, so that pixel is saved as [1, 1, 1] with an alpha value of 0.4. Later, during the composite, that PNG is imported. The RGB values get re-associated with the alpha, and are now 0.4 x [1, 1, 1] = [0.4, 0.4, 0.4]. The original values have been totally destroyed by the file saving process itself, and there’s no way to get them back.

1 Like