SMAA – Subpixel Morphological Antialiasing integration

Sorry, but it’s impossible to turn it into a plugin. As of 4.12, there’s no clean way (i.e. without some dirty memory overwriting kind of hacks) to attach custom nodes to UE4’s compositing graph (i.e. where post-processing goes, including AA) from outside the Renderer module.

I’ve seen that this has been described as a plugin in the stream recently. That is incorrect, this is not a plugin, but a fork of the engine code. I’ll update the first post to reflect that.

Hi ,

I understand, and thanks for taking the time to reply!

Cheers

It seems the Github link is dead. Mind updating it?

Thanks!

The git link is down. Does anybody have a working link?

Thanks in advance.

The link is not dead. You need to be logged into a valid Github account and it needs to be linked to your Epic account. Refer to: Unreal Engine on GitHub - Unreal Engine

There are a coupled of interesting presentations from the Siggraph 2016 advances in realtime rendering course.
http://advances.realtimerendering.com/s2016/

Temporal Antialiasing in Uncharted 4. For example, includes details how of Naught Dog deals with the ghosting problem with a 3rd person character.

Filmic SMAA: Sharp Morphological and Temporal Antialiasing. This is the later development work from the original author of SMAA. Very interesting how some subtle detail changes improved quality and performance.

Shows that there is quite a bit of potential to update either this original SMAA intergration, or Epic’s native TAA or both.

Hi. I’m a bit confused about integrating SMAA.

First I cloned the Engine release branch from git hub. I want to integrate HBAO+ and VXGI too so should I merge those branches (Using git cherry pick) before running setup.bat?

Then to integrate SMAA, I downloaded a 200 MB zip file from here.

But under the usage section, he said “Apply my commits to your own code base”. What does it mean?
How can I apply commits of the files from another zip file that I downloaded?
Please explain me how to do that (may be what kind of git command I should use)

I’m a newbie in interacting with UE Source files and I have no much experience with git before.
So please help me. I don’t want to download those 4GB files again and again if I do something wrong with git.

I posted a threat here but no one answers it. https://forums.unrealengine.com/showthread.php?123241-How-to-integrate-both-VXGI-and-SMAA-into-Unreal-Engine

Hi Thura To,

By that I meant cherry-picking those commits. You can do that by adding my repo as a remote (look up the “git remote add” command) and using the “git cherry-pick” command, or you may generate diff patches manually from GitHub via this method:

And apply them using the patch utility (it’s available in git shell, if your installed the GitHub for Windows client).

In both cases you should go over all commits authored by me, chronologically, starting from the oldest.

You could also try automatic merging, but I’m not sure the result will be useable. :wink:

Apologies for not being more specific, but I’m currently on holiday. Hopefully these are tips to point you in the right direction.

To Godlewski, thank you very much for your reply.

Should I remote add to the source file with git remote add SMAA <url>
Then git fetch SMAA
Then git cherry-pick <latest_commit>

Are these the correct steps to do?

Or if I try the second way, should I download and merge the patch by

curl https://github.com/inequation/UnrealEngine/commit/93578f18624158268588450c8593d1c49116ce9f.patch

Then git am SMAA.patch?

Yes, but as I said — not the latest commit, but all of them. In both cases you should go over all commits authored by me, chronologically, starting from the oldest.

Thanks for your help

Are there any public implementations of filmic smaa yet? I’ve searched for quite a bit and could only find this presentation from months ago, seems like noone is interested in it.

I’ve not seen anything other than the presentation.

-Brian.

4.14 which is currently preview has MSAA support when using the forward renderer. There are tradeoffs - check the 4.14 preview thread for information.

AGAA limits the possible materials as it has to be blend between them - doesn’t support the range of materials UE4 has.

-Brian.

“Filmic” sounds like a yet another fancy name for a rather simple effect. Although the presentation appears to have more in depth information (compared to the previous smaa docs), the end result is just showing some grayish/darkish edge manipulation only which is less than impressive. Actually it looks more blurry and affects the textures as well that’s quite cheap. A well calibred temporal aliasing (which the engine already have implemented rather well) can just give a very similar result.

Has anyone tried SMAA x4 in VR ?

Does it look very close to MSAA x4?

How is performance in deferred with SMAA x4 compare to forward with MSAA x4 ?

No it’s unfortunate, but x4 is not part of this ue4 implementation, although a SMAA x4 should also work with the forward rendering path if i’m not mistaken :slight_smile:
A sample image will predict that you can expect rather similar quality from both methods, but these static demos and synthetic test images can be very deciving, since artifacts usually happen when the camera moves and you can’t really predict issues until you get there in your scene. Good setup for materials and basically for the entire scene can help to avoid some issues, but in fact none of MSAA nor SMAA methods can’t help to avoid problems like specular aliasing where temporal aliasing have the real advantage hence the blended frames. As for this latter i’ve had very visible specular aliasing issues with smaa/smaa t2x all around the demo scenes epic just provided (eg blueprints demo), which was unexpected and simply took my interest away from using smaa for such sceneries. It however looks very nice for natural/outdoor environments by using the implemented SMAA T2X or the extra Temporal FXAA methods, if you can accept a 1 frame long ghosting artifact which is visible on vertex animated objects (eg foilage with wind).
It really worth a try on your part to test the t2x implementation provided here, but x4 is remain missing just yet. Since the fw path have became available in ue4, there might be a slim that this could be possible to fully implement the smaa shader with all its features, tho i remain uncertain that it would really worth the effort to do so. :slight_smile:

Thank you so much for this! You folks from the Ethan Carter team are the best. I’ve really enjoyed all the articles/blog posts about your game and relating to foliage, reflections, and now this contribution. Keep up the good work :slight_smile:

P.S. Epic, would it be terribly difficult to include this in the releases of the engine? I know you guys love Temporal AA, but I’ve really seen a lot of demand on the forums for other methods of AA on the deferred renderer. Just a suggestion.

I have added the 2 new SMAA filters to the engine, compiled it and it worked but i got a bug , the render is shaking, why?

Probably the subpixel jitter isn’t being removed from the projection matrix. What version is this?