Flickering emissive glow

Hi,

I have made a material designed for this TRON-like look utilizing the emissive color of the material and it looks fine, however, when I zoom out the glowing edges of meshes start to flicker. Maybe it is because of really high emissive multiplier (120-140), but with a lower value there the material looks dull.
Here is a screenshot of the material used on one of the actors:

On some really distant ones the edges flicker way too much.

Thanks for the answer :slight_smile:
I reduced the multiplier value to 40 and the value of Maximum Brightness in the Auto Exposure tab. Everything gained a great deal of glow and the flickering diminished, but the bad part is that even these materials, which do not have anything into their Emissive plugged in, started to glow. Additionally, specular options of multiple materials would have to be changed as the reflections changed completely.

When it comes to anti-aliasing, there is the TemporalAA method chosen by default. I tried changing it to FXAA and, in fact, the flickering disappeared. Unfortunately, many other artifacts and an unbearable amount of ghosting occured. Maybe I could play some more with the Auto Exposure settings, but they affect the environment so greatly that I am not really sure if this would work.

Hey DarkLiquidus,

I would try reducing the emmissive multiplier a bit to see if this helps. Since emmissive colors act similar to a bloom, you can also try editing your post process volume’s ‘Auto Exposure’ setting. This can greatly effect the brightness of your emmissive colors.

If you are still seeing some flickering around the edges of your objects, try editing your ‘Anti-Aliasing’ method to ‘TemporalAA’. These settings can also be found within your post process volume under the ‘Misc’ section.

Let me know if this helps.

Cheers,

For reflections you typically want to have Temporal AA on because of how this Anti-Aliasing method samples your scene. It provides a cleaner reflection, but at the slight cost to performance.

As for the specularity for some of your materials, the engine default is around 0.6, and setting it to a higher or lower value might yield undesirable results. Generally you want to have your Auto-exposure set up first and build your materials off of that lighting information. This ensures that you do not have large variations in settings like your Emmissive glow.

A couple of things you can try if you feel like the ‘Anti-Aliasing’ settings will be the something you would like to play around with to get your expected result. Try changing the ‘Screen Percentage’ of the Temporal or FXAA method. Anything above ‘100’ will be considered super sampling (slower but higher quality).

If FXAA is not giving you the quality you would like, you can also try adding the ‘DitherTemporalAA’ to the emmissive wireframe material you are having issues with. This node “Stipples/Dithers in screen space and time with Temporal AA for things liked masked translucency or anistropic materials.”

Let me know if you found these suggestions helpful or if you need more assistance.

Cheers,

I have tried a lot of combinations with the Auto Exposure settings and it seems that, for the flickering issue, increasing brightness in Post Processing while decreasing the emissive strength and increasing the emissive strength whilst decreasing brightness are equivalent. In the long run, they yield the same amount of flickering.

I tried the super-sampling (400%) method as well both with Temporal and FXAA, but with TemporalAA the flickering occurs at the same strength as always and the FXAA the result looks simply unpleasant:

As for the DitherTemporalAA node, I have never really been into shaders programming and am not aware of how to use this node.

Hey DarkLiquidus,

The DitherTemporalAA Material Function creates a dot (stipple) pattern that moves over time. When used as a part of an opacity mask on a Masked Material, they can keep the mask from appearing too harsh, allowing for masks that seem much softer.

An example of this Material Function being used can be found in the ‘Stylized Rendering’ project within the ‘Learn’ tab of the launcher. Use the link below to find helpful documentation on this function and how it is used within the material editor.

Stylized Rendering

You might also want to have a look at the ‘Bloom’ settings within your ‘Post Process Volume’ because this could also have a large effect on what you are seeing.

If you have tried these options, but still are experiencing undesired results let me know.

Thanks,

Would you mind showing me how you material is set up?

I understand the use of DitherTemporalAA in a material presented in the Stylized Rendering documentation. But how should I utilize the opacity mask in my material? There is no distinction between opaque and transparent elements in it.

I tried adjusting the bloom setting before and the flickering persists. I think the issue is not connected to the glow strength itself, but to the glow stripe thickness on the edges of the cubes. Increasing the thickness reduces the flickering significantly, but the material becomes then far from what I wanted to achieve…

Thank you for the helpful screenshot. I rebuilt your material within my own test bed and found some key points that could be causing the unwanted visuals you are experiencing.

Firstly, since your material is not completely rough and your boxes are fairly close to one another, you could be getting some extra noise due to the reflections being cast from the surfaces of your cubes.

Also, there are parameters within the material that seem to heavily affect the overall thickness and glow pulse of your material. I suggest finding the correct ‘Auto-Exposure’ settings first then converting this material to an instance. Apply that instance to your cubes and play around with the parameters you created.

The flickering you mentioned is not related to the ‘Amplitude Cramper’ is it? This is the ‘pulse’ time of your glowing outline.

Let me know if you have tried these suggestions and you are still having issues.

Cheers,

I tried altering the roughness value, but it does not affect the flicker amount.

Also, there are parameters within the material that seem to heavily affect the overall thickness and glow pulse of your material. I suggest finding the correct ‘Auto-Exposure’ settings first then converting this material to an instance. Apply that instance to your cubes and play around with the parameters you created.

This is basically what I have been doing for the last two days, but did not manage to get any promising results.

The Amplitude Cramper is a parameter damping the cosine function amplitude while preserving the maximum value of it. If ‘A’ is the Amplitude Cramper value then the general time function would be: (Cos(time)+A)/(A+1).

I am more and more inclined to think that the reason for the issue is the glow stripe thickness and more precisely: the screen resolution. It would be the a really plausible explanation since the problem occurs when the camera zooms out and, consequently, the number of pixels covering the glow diminishes.
Here is a screenshot comparison.

Low resolution (strong flickering):

29676-screen+shot+02-11-15+at+08.17+pm.png

High resolution (small flickering amount):

If this is strictly the case, then the problem becomes, in fact, worse. Only if a user used 1920x1080 resolution the flicker would be bearable.

With the help of a team-member I found an issue that sounds related and could help improve or fix your issue as well.

Try typing ‘r.Cache.LightingCacheDimension’ to 128. If this does not work, try also going into the dropdown menu within the viewport and uncheck ‘Indirect Lighting Cache’.

Viewport ‘Show’ Menu

Hopefully this resolves your issue, but if you still need assistance let me know.

Cheers,

Indirect Lighting Cache is enabled in my project by default.

If I understood you correctly, I typed “;r.Cache.LightingCacheDimension=128” to the end of ConsoleVariables.ini engine file. I tried to modify it directly from the editor, but I got an error message telling me that this variable is read-only.

However, changing the variable value did not affect anything.

Below is a link to a movie presenting the general problem (just to clarify entirely what happens):
UE 4 Flickering issue YT link

Hey DarkLiquidus,

I believe it is written as follows, “r.Cache.Lighting.CacheDimension 128” within the console command in the editor. To bring up the console command use the (~) and type in the command.

If you are still getting the error, tick the setting off via the ‘Show’ mentioned in my previous post. If neither of these solutions work, you might want to change one if not multiple material parameters at certain distances from the players camera during runtime.

Let me know if you still need further assistance!

Cheers,

I still get the Read-only error for the variable.

What should change in the rendering output when the Indirect Lighting Cache is unchecked? I just cannot notice any difference toggling this option on and off.

Another weird element occured when I opened the project today.
Namely, the glow amounts increased dramatically, but all of the settings in post processing volume (bloom, auto-exposure, anti-aliasing) are set to default. The topmost screen presents a glow strength of 140 and this is what I get now with glow set to 100:

And there was also that ring in the background in the first screenshot. This is how it looks now

29776-screen+shot+02-12-15+at+04.01+pm.png

A yellow glow material with emissive strength of just 12:

29777-screen+shot+02-12-15+at+04.10+pm.png

I have never got such results with defult post processing values.
Could this be that when I tried typing “;r.Cache.LightingCacheDimension=128” to the end of ConsoleVariables.ini engine file and then deleted this line after I got to know that there is potentially a way to set that variable through console in the editor (what did not work as I mentioned earlier), something changed in the engine settings and the glow somehow increased?
I am now only theorizing, because I am lost with what I have now in my project…

If you reset your post process settings to default, then your scene will definitely change. I am assuming by default you mean the settings that are given to you when you drag the ‘Post Process Volume’ into the world for the first time?

You might just need to check the option within the viewport ‘Show’ back on to see a difference.

By default I meant the settings that were chosen for the Post Processing Volume for the Advanced_Lighting level. They are reverted to state in which they were when I posted this thread.

You might just need to check the option within the viewport ‘Show’ back on to see a difference.

You mean the Indirect Lighting Cache option? I have tried toggling it on and off multiple times and cannot spot any difference at all.

If that is the case then you can just leave it checked on since that is the default setting.

The way Temporal AA works essentially is that the scene is sampled then being blanketed with a ‘counter-shake’ like effect to smooth out the edges of your objects. This is probably what you are seeing when you apply the Temporal AA instead of FXAA.

The scene I have set up is using FXAA, and the results are as expected. You are never going to completely eliminate the aliasing on the edge of objects. Like you mentioned you can reduce this visual by increasing the resolution, but this in combination with Temporal AA can become an expensive process if over used. I found that messing with the material instance parameters and the post process settings yielded some pretty clean results.

Glowing Cube Scene

Material Instance Settings

29798-matinstancesetup.png

One suggestion would be to blur the cubes in the distance to hide the aliasing until they come into the players focus. You can do this directly within your Post Process within the ‘Depth of Field’ section.

Try out these suggestions and let me know how it goes.

Cheers,

I am making an RTS game, so blurring out the cubes when the camera zooms out might become frustrating for a player as it affects the view precision. But still the material paramaters you provided are really well-balanced and provide a pleasing outcome. Also I got rid of the weird large amounts of glow by disabling the eye adaptation - setting min and max values in Auto-Exposure to 1 as in your screenshot.
I will play with the parameters a little more and, for now, thank you very much for all your support.

No problem, glad to have been of some assistance!