Download

How to remove white (bloom) sparkles from smooth / not-rough surfaces?

I’m facing a curious issue in my current project.
Everything that doesn’t have a white (rough) roughness texture sparkles!
The effect even appears on materials which have a dark gray roughness texture, though it gets more prominent, the darker the roughness texture is.

Here’s a video of the effect:

This happens in my current project, but not in a previous art test project I created, or in the Medieval Village project from Quixel.

While the sparkling effect is fun in a way, it becomes nauseating for me very quickly while working and for some players I think it would be actively dangerous.

I found a thread with a similar topic, but there the only recommendation was, to reduce the roughness and / or the specularity of the material.
This is not what I want to do, I want the material to be shiny. (It’ll be a wet beach area.) Just not sparkly.

I just discovered that the sparkles are caused by bloom. Setting bloom intensity to 0 removes them.
However, being restricted to having bloom at 0 also doesn’t seem like the best solution.
So how do I get my scene setup in order, so that it doesn’t produce bloom sparkles on everything with a roughness higher than 0?

My directional light intensity is at 2 lux, if that helps. At 10 lux default, everything becomes pure white, for some reason.

Turn on temporal antialiasing

Usually this is because you set a fixed exposure and then didn’t adjust it after changing your lighting intensity.

Edit: If you don’t want to turn TAA on then another option you could try is to use a normal to roughness composite texture. This is often a good idea, even if you are using TAA.

.19 had something similar with the bonus effect of flashing red and blue once in a while. In the end it was a missing reflection capture. Or too many in the same area.

Is that seriously an antialiasing driven artifact?
Since when does increasing bloom cause the light source to move in order to generate a sparkle?
Unreal madness.

I think it’s just a kind of specular aliasing. It happens when you have a lot of very high frequency normal detail, sometimes a single pixel can catch a specular reflection from a really strong lightsource like the sun and blow out the intensity in that spot, causing a strong bloom effect.

Why it dances around the screen though I have no idea, my guess is that Unreal is always doing some temporal jitter even when TAA is disabled.

Only thing I know for sure is that Temporal AA solves it in most cases. I suspect MSAA might work too, but I haven’t tested it. If neither TAA or MSAA are an option, the normal to roughness composite definitely works too.

The solution is to fix the material so that you don’t have perfectly sharp specular reflections.

Temporal AA just masks the issue because it blends multiple frames together, it’s not actually fixing anything - just hiding it.

Thanks for the help guys!
I‘m glad to hear I‘m not going crazy and am not the only one seeing sparkles.

So is using: Composite Texture | Unreal Engine Documentation Composite Roughness textures the recommended way of handling roughness in UE4?
That would be pretty amazing, since you only have to provide it a base value and it calculates the rest from the normal map.
Though then you can put no extra details into the roughness map…

So what‘s the alternative way of avoiding perfectly sharp specular reflections that get blown out?
Blur the roughness texture?
Like I mentioned even slightly rough textures had this issue for me.

I‘ll also try adjusting my exposure post process settings to something standardized for UE4.
Maybe things get to blown out white less quickly then.

You would still need to make your roughness map like you normally would, this creates a composite map containing the roughness texture you made with the normal information encoded into it. Essentially it’s just adding another step, it doesn’t (or at least it isn’t intended to) save you any work.