Enhanced Subpixel Morphological Anti-Aliasing (SMAA) for UE5

Hi all,

Based on the prior thread SMAA – Subpixel Morphological Antialiasing integration from 2016, I took a stab at getting SMAA integrated into the current version of the engine. Thank you, Leszek Godlewski, for a reference point to work from.

I’d tried turning it into a plugin, but the subpixel jitter for temporal AA’s doesn’t play nice with SMAA, so that effort became this Pull Request for ue5-main. Alternatively if you want to play with it now, my branch on GitHub should be accessible, but may not build.

I’ve probably broken the reference implementation a little as I found that the gbuffer world normal gives better edge masks than luminance or scene colour, so that’s the default for this implementation.

Hey, there! Did you go further with this? The github link is dead :smiling_face_with_tear:

1 Like

Updated to UE5.4 -UE5.5 here: https://github.com/EpicGames/UnrealEngine/pull/11840

There were multiple bugs fixed and I added the AreaTex and SearchTex textures.

2 Likes

That’s awesome! I’m not an advanced engine/graphics programmer so I spent weeks trying to figure out how to get it in unreal.

I and others sensitive to temporal blur desperately need other options in Unreal and FXAA is burriest non-temporal AA.

EDIT: I compile from source, I had to replace the AreaTex and SearchTex and also found no way to take off the temporal frame blending from the commit.

1 Like

Hi there, how would I be able to clone this?
I can’t seem to find the correct button on Github for it.

1 Like

It’s not too hard coping the changes into the current source code.

That’s what I did, but be aware it’s still temporal and the temporal reprojection gets severely corrupted overtime.

I personally had to make edits that prevented it from only running if temporal jitter was enabled.

Did you find a way to remove temporal frame blending ?

No, not yet.

It’s also really dependent on exposure and brightness which is far from how it’s supposed to work. It’s been useful for some side by side comparisons but can’t be used for non-controllable project.