Halation is not bloom
These get collapsed into one effect constantly, usually as "bloom with a warm tint". They are different physical events with different shapes, and the reason halation reads as film while a tinted bloom reads as a filter is that the differences are structural rather than chromatic.
Two different accidents
Bloom happens in the lens and the eye: light scattering off imperfections on its way to the sensor. It is roughly neutral in color, roughly symmetric, and it scales smoothly with brightness. Every bright thing blooms a little.
Halation happens in film stock. Light passes all the way through the emulsion, reflects off the base behind it, and comes back up to expose the emulsion a second time from underneath. Three things follow from that, and all three are visible:
- It is red. Longer wavelengths penetrate the emulsion layers deepest, so the returning light is heavily weighted to red. This is not a tint choice, it is which light survived the round trip.
- It is much wider than bloom. The light traveled down through the stock, sideways, and back. That is a far longer path than lens scatter, so the spread radius is bigger by a large factor rather than a small one.
- It is gated. Only light bright enough to punch through the emulsion and back produces it at all. Dim highlights bloom and do not halate, which is why a threshold is correct here and wrong for bloom.
The gradient, not the tint
The mistake that makes halation look fake is applying one warm color to a blurred copy. Real halation has a radius gradient across the channels: red spreads widest, green less, blue least. So the near field is warm-white and the far field is pure red, continuously.
vec3 spread = vec3(
glowExp(d, r * 14.0), // red penetrates deepest, spreads furthest
glowExp(d, r * 8.5),
glowExp(d, r * 5.5) // blue barely makes the round trip
);
hdr += tint * spread * gate;
Three different radii, not one radius with a tint. That single change is most of the difference between "this looks like film" and "this looks like an orange blur".
When not to use it
Halation is a property of film stock. On a scene meant to read as digital, or as something other than a camera, it is a costume rather than an effect, and it fights with a clean neon look rather than supporting it. Bloom belongs in almost every frame; halation belongs in frames that are pretending to be photochemical.
Rules of thumb
- Per-channel radii, widest on red. A single radius with a tint is the giveaway.
- Gate it. Only genuinely bright sources halate, unlike bloom.
- Make it much wider than your bloom, not slightly wider.
- Keep them as separate effects with separate controls. They are not two settings of one thing.
- It is a film artifact. If nothing in the frame is claiming to be film, leave it out.
One email when something new goes up. No newsletter, no schedule, nothing else.
Double opt-in, so watch for a confirmation email. Unsubscribe any time.