I am trying to improve my bloom system. So far I have bloom that looks like this:
What I need is to enlarge the low-bloom areas to make it look like this:
Simply increasing the bloom multiplier results in a linear brightness shift and the lantern's top gets completely lost in a bright epicenter. What I need is a non-linear system that alows to only enlarge bloom on the edges. I tried different approaches and was able to come up with the following formula:
float luma = min(dot(AccumulatedBloom.rgb, LUM_CONVERT), 1);
float bloomMultiplier = lerp(1, bloomAuraMult, pow(1 - luma, bloomAuraPower));
But this formula has a disadvantage, it makes the bloom look like this:
Could anyone help me find the right formula?