1
$\begingroup$

I am trying to create a bloom effect around my emission map using the glare node in compositing. The problem is that my emission map isn't bright enough for this to work. I don't want to increase the emission map's strength, because it washes out the detail.

What I've done is to multiply the value of the emission map, run that through the glare node, subtracted the brightened emission map from the result, and max/lightened the result over the result. The problem is that the subtraction isn't perfect, and it results in this black edge:

enter image description here

Is there a better way to go about doing this? I'm hoping for a way that doesn't require separating the emissive part of the mesh as a different object, because often the emissive parts won't be on isolated geometry from the non-emissive parts, if that makes sense.

Here is the blend file:

$\endgroup$
  • 1
    $\begingroup$ If Emmision is not bright enough to be taken into glare node calculation, than adjusting Threshold value should fix that (decrease probably). To the subtraction edge - looks like you use ID pass that is not antialiased on edge , use Cryptomatte instead. Or delit-erode node after ID would work in this case. Simple blend with your comp and Emmision mat would be helpful. $\endgroup$ – vklidu Feb 11 at 22:07
  • $\begingroup$ I'm going to try to play around with your suggestions. Meanwhile I've attached the blend file. I think I correctly packed 1k versions of the textures into it, so hopefully that will work. I replaced the environment texture with a sky map though for size. $\endgroup$ – Rekov Feb 11 at 22:23
  • $\begingroup$ I din't know you use whole object as a one peace with only one material, so there is no way to use Cryptomatte for pass if you want to keep it object, I expect you want to keep also material as one. $\endgroup$ – vklidu Feb 13 at 8:10
2
$\begingroup$

Since you are using over exposed Emit pass as a mask, there is no way to get proper pixel mix with rendered image. Even more because of border's pixels contaminated by background color (on antialiased edge). Also in your answer I can see edge in your render. Probably a bit better because of differences on Multiply values rather than mix type.

What I would try is to add Dilate-Erode node on "mask" to get rid of border pixels. This also brings all edges of mask highlighted because over exposed glare node. To compensate these appeared pixels I tried isolated only "glare" object color (can be done many ways, luminance is not probably the best way) and bring this part a bit darker to original, so pixels can be mixed more smoothly into final.

enter image description here

Note: I disabled Denoise node since produced worse result and was extremely slow. I also add Multiply after Glare, but your "before" is probably better you don't work with such low values, but result should be mostly the same. Environment texture was not attached so I used blender's Environment "studio.exr" texture.

These mixing of border pixels is always very sensitive for input, so its always quite a lot of tweaking. It's not like one group node you can attach anywhere.

|improve this answer|||||
$\endgroup$
  • $\begingroup$ This is helpful. Your version of masking off the emit pass and creating that alpha is especially much better than what I was doing. $\endgroup$ – Rekov Feb 13 at 20:41
0
$\begingroup$

I believe I have found a solution:

enter image description here

Instead of subtracting out the brightened emission map, I maxed it over the image. Then I alphad over the original image map.

|improve this answer|||||
$\endgroup$

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.