I’m trying to apply bloom to an HDR rendered scene that has extreme light highlights (intensities over 10 in some cases). This is necessary given the nature of the application.
I’m finding that areas of extreme highlight are blowing out to saturated squares:
Even if I set _BlowoutThresholdMin to some crazy high value like 99999999999999, the fragment output is still white.
If a fragment goes beyond the limits of a half4 (which could be happening in the bloom shader), does it get treated like an infinite value or something?
The material I’m rendering there wasn’t normalizing a normal I interpolated in a shader. This caused the specular to get powered to an insanely high number when added with 10 or more lights, which caused the rendered fragment to be infinitely bright. Since it’s one isolated fragment in most cases, you’d never notice without the bloom issue.
When doing the blur sampling for the bloom, it was multiplying an infinite value by the sample weight, which is infinite. So the blur sample area got rendered out as infinitely bright.
Ensuring that my material shader was correctly normalizing any generated normals fixed it.
This has been happening to me on my 1050 Ti and yet it’s not happening on my intel integrated graphics. Very odd, I’m not exactly sure how to implement the fixes you’ve stated.