Fix core features breaking when SMAA is selected

Unreal Engine 5.7 recently introduced SMAA as an anti-aliasing option, which is a welcome addition for developers looking to serve a diverse set of user preferences for their game, or for projects/genres where motion-smear & ghosting free methods are more preferable candidates.

However many core rendering features in UE5 are tied to temporal based anti-aliasing techniques and break down visually when a non temporal method is chosen. Issues include dithered reflections, noisy shadows, unstable volumetric clouds, dithered hair, shimmery foliage due to binary alpha masks, etc. The artifacts appear because these effects rely on history samples to stabilize their output. Even Epic’s own titles (Fortnite) demonstrate these problems when SMAA, FXAA, or no AA is selected.

If Epic intends for SMAA to be a serious or viable option, there needs to be a pathway for these effects to remain stable when non-temporal AA’s are selected. One solution is to implement independent temporal denoisers for features such as reflections, shadows, volumetrics, etc, instead of forcing the denoising to only be done by the anti-aliasing process itself.

Another option is to replace certain systems with non-temporal techniques that achieve stability without relying on history data, such as a different (non-dithered) hair shader that does not require temporal accumulation for smoothing (both solutions should be utilized and decided on a case by case basis depending on which path most viable).

Certain effects in Unreal like Lumen GI already have independent denoisers enabled by default, while others need to be manually toggled on, and some lack independent denoisers entirely. Adding additional options and implementing per-effect scalability groups that automatically select the appropriate denoiser, mask, shader, or technique based on the active anti-aliasing type would significantly improve workflow and visual cohesion.

Implementing these adjustments would make spatial methods like the newly added SMAA a viable option, giving developers more flexibility by allowing them to retain core effects without compromise, and providing users who are sensitive to motion sickness a better experience without forcing them to trade comfort for distracting visual artifacts.

Temporal-based AA methods provide cheap effective anti-aliasing and workflow convenience, but they are inherently anti-accessible to a sizable portion of players (mostly motion sick related, sometimes peoples eyes feel out of focus) and it is also not ideal for every genre of game either. Therefore ensuring that alternative methods work well in-engine should be a higher priority than it currently seems to be, as it’s not a trivial issue, and one of Unreal’s goals is to be an Engine than can serve as many gamers & project types as possible. SMAA was the first step in the right direction, but it feels incomplete or almost redundant in some ways due to the current issues mentioned in this post.

These changes could make UE5 more accessible and versatile for developers and players alike, thank you for considering these improvements for the engine. I hope to see features like these come to later Unreal versions, best regards!

8 Likes

Hi, i’m sorry but i don’t reproduce anything you said.

Some shadows have some squares or lines paterns but are completly visualy stables between frames, TSR or no-AA doesn’t change anything.

1 Like

Activate Lumen & Virtual Shadow Maps - with VSMs, shadow edges are noisy

It doesn’t have anything to do with temporal AA or no-AA then.

Lumen REQUIRES temporal accumulation to work…that’s litteraly how it works no change to the engine can change it.

But you may be interested in how Robocop : Rogue City implemented lumen because it has very very low noise. There is an interesting video.

Direct comparison no-AA :

TSR Epic Native :

Shadows looks exactly the same.

To conclude it is your lack of knowledge of how Lumen and VSM works that is the issue.

No-AA and SMAA works perfectly fine.

Lumen and VSM needs temporal accumulation and works better with temporal based AA, this is not an issue this is normal and can’t be “fixed” that’s just how it works.

Edit : unfortunatly my 4K PNG screenshots are converted to low quality JPEGs so we can’t see much here.

Edit 2 : To be honest i have discovered than shadows from a certain distance are switching to lower quality and seems to be rendering at a lower rate and appears a lot smoother with TSR but that means it’s only rendering distances settings.

1 Like

If you’re going to try to roast me with passive aggresion, a) don’t because theirs no reason to be a jerk to people, and b) make sure you’re actually correct and don’t put words in my mouth.

I never said Lumen GI had an issue with TAA disabled. and I’m fully aware it has to do with anti-aliasing not temporal accumulation.

However some effects (not Lumen GI) tie their denoising algorithm to the anti-aliasing process itself, which means when something like SMAA is used the visuals break.

Here’s 3 examples of it happening in game

Flickering Shadows, Noisy VSMs, Dithered Reflections, Dithered Smoke. All present with SMAA, goes away or significantly reduces with TSR enabled because the denoising algorithm is applied by the anti-aliasing method itself instead of being independent.

1 Like