Scale/rotation-dependent emissive material flickering / per-frame aliasing

We have a material set up like so, to give the impression of a glowy neon-like tube:

We’re seeing that it tends to flicker quite a bit, depending on the zoom level. You can’t really see it here, since it’s a static screenshot, but at medium zoom levels (the shot in the middle below) we get a remarkable amount of flickering on the emissive effect from this material.

Is there something we should be doing differently with our material setup to avoid this flickering?

(BTW, ignore the fact that the screenshots are red while blue is specified in the material – we’re overriding the material color param at runtime but this is not the cause of the zoom-dependent flicker).

OK, it looks like there is actually a way to repro this in the Unreal “PostProcessing” level inside the ContentExamples project.

It seems like what’s happening is that this glowy effect causes flickering whenever you’re far away enough from something that’s sufficiently glowy.

Go into the PostProcessing level in ContentExamples and go to area 1.4 and grow the “Bloom 3” volume (PostProcessVolume14_Bloom3) and stretch it out to cover the entire level. Then, when you run the game and turn around and start backing away from the door, you’ll see this glowy rim flickering:

Tried it(both by scaling the volume and by deleting the other volumes and setting bloom 3 to unbound) but i’m not seeing any flickering on circular reflections. Only linear glows on the modules and the wall look like having some sort of aliasing but it’s because the bloom amount is too much. Other than that i don’t see any problem with the default bloom value of 1.

Well, yeah. It’s not the circular reflections that are giving us problems; it’s the linear glows.

So, the bottom line is, we want to be able to do this without the flickering.

You say the linear glows are experiencing “some sort of aliasing” – yes, that’s our problem – because the bloom amount is “too much” – but I don’t see where there’s a rational basis for saying that it’s “too much,” or what the specific parameters are for how much bloom to use. Unless the Epic guys tell me otherwise and explain why, I think the amount of bloom should be acceptable. We ought to be able to set it to that amount of glowiness and have it work.

When you stand next to a bloomed-out object in area 1.4 of that test level, there’s already huge amount of glowiness there, too, and it looks fine when you’re standing right in front of it. The question is why the flickering on the bloom becomes an issue when you make the postprocessing volume larger and move farther away.

Hello,

Thank you for your report. I can confirm that I am able to see what you are experiencing in the Content Examples map. I have contacted a developer to better explain why this occurs with our rendering system. Thank you for your patience.

-Alexander

Dear Mothership,

Try adding a normal map, even if it is just the same input that you put into Emissive Color

or try adding an actual normal map, there are several that come with editor you can try, just for testing my normal map theory :slight_smile:

#Really bright

I know you said you are setting at run time, but if your runtime number are anything similar,

0.362 * 150 = 54 something

that is VEEEEEEEERRRRRYYYYYYYYY bright :slight_smile:

Why not just set the base color values to nice whole numbers like 0 1 1 1

or at runtime set it to 1 0 0

and then not multiply by 150 at all?

Let me know if that helps!

Rama

PS: with any sort of lighting levels similar to the starter levels in ue4, a brightness between 0 and 10 is a great range, anything above 10 is going to start doing some unusual things, like triggering eye adaptation constantly / lens flares, etc etc.

PSS: not sure why you are multiplying your color by 1, that doesnt do a whole lot, you can get rid of that node entirely.

Thanks … I tried adding a (1,1,1,1) param as the Normal param of the material, if that’s what you meant. It didn’t fix it.

Also, it looks like setting it to a lower value than 150 doesn’t give us anywhere near the level of emission that we want – we want a nice big glow. Also, these lights are located just below a glassy semi-transparent material, so it has to be bright enough that the glow shows through the glass correctly.

I’ve also noticed that the amount of flicker seems to be view dependent as well; I get more or less flickering at essentially the same zoom level if I rotate the camera.

Is it flickering only when the neon is behind a translucent material? Or does it happen with every emissive material? Normally even 6 or 10 gives a nice glow, but the glow can also depend on the eye adaptation so you may not get what you want when you put that neon under the sun for instance.

No, it happens all the time. In fact, it happens more when it’s NOT behind the semi-translucent material, since it glows more strongly in that case.

We definitely see more of the glow when we turn the directional light in our level down lower. It doesn’t fix the flickering problem, though – it’s clearly doing the glow differently each frame.

What happens if you lower the light below 150, does the flickering stop?

what if you go around 10-20 ?

if that removes flickering

you can put a post process volume in the area to increase bloom to do the glow that way.

mainly I am curious whether the flicker is related to the very high brightness level

The amount of flickering scales smoothly with the amount of emissive.

We tweaked our GlobalPostProcess volume to set the amount of bloom higher or lower, and that also scales the flickering up or down somewhat (more bloom = bigger glowiness = more flickering), but even if we turn off bloom completely it still doesn’t make the flickering go away completely. It’s still always visible from some angles and some zoom levels.