Temporal AA is awfull - No good AA function in Unreal

i understand some of its issues but that also depends on the type of style of game you are after, for instance our current project works great on msaa and forward withbgreqt performance but as soon as we tried taa it felt like we had to redo all the textures and shaders and some of the smaller geos all over again to compensate for blur and ghosting. Give ua msaa in deferred since at the moment we have no other choice and let us choose. And fxaa is worst than taa.

Since people clearly can’t be bothered to read…

MSAA isn’t too expensive for VR at least. Switching from deferred with TAA to forward with MSAA in Unreal was a literal eye opener. Like someone had removed a smear of vaseline from the VR headset.

You will be surprised MSAA works just fine for VR with many draw calls, shader FX and VFX on screen, just don’t do any dynamic shadows, be smart the way you fake lights and shaders and you should be fine to start with. Without VR our game runs over 200 FPS with over MSAA 8X on a 1060 and you wouldn’t even guess it wasn’t lit with GI and Dynamic lighting :).

Bottom line is this, suppose no one really understands the underlying structure of how these softwares are built, they will take one look at another engine say Unity and see Deffered + MSAA + Hybrid rendering just fine and then you got Epic and forums releasing papers telling you deffered +MSAA too slow, cant be done, no alternatives at the moment, deal with it. Well that would’ve been fine if there was no one else on the market doing a workaround and finding a way as well as making it work! So it CAN be done only the imitative as well as the priority should be shifted there. Just don’t say its not acceptable to put time into something as important as this.

I for one and for selfish reasons would like Epic to fix Forward rendering first and implement something as basic as decals in there and fix the motion blur issues as well as put Root motion in actor class!

back to rendering when you say “MSAA is slow with deffered” On what basis is it slow? will it be still slow if I have not a single dynamic shadowed light on screen and when I have faked everything from moving lights to baked lights to reflections? Will it still be slow then but at least will give me proper decals and motion blurs?
What if I don’t much care about shaders receiving proper aliasing and only care if the geo edges are sharp and aliased?

A lot of questions not a lot of explanations about pros and cons and whys and the do’s/donts. at the end of the day its not my engine to build I am simply bugged on the approach when I see other engines making a progress in these areas. Unity has the best outdoor vegetation scene demo i have ever scene running realtime on ANY engine, this is without exaggeration it is absolute fact it has the best looking work there. No I don’t want to switch to Unity because I need BP’s so I have to shut up and work in UE4 and rant about it from time to time which is fine but i can see i’m not the only one here.

The clue is in what you said - Forward Renderer. That’s a fundamentally different approach to rendering. MSAA is more expensive for deferred as outlined in the PDF which for some reason people are allergic to reading through.

Please read the PDF, or even just glance at the screenshots I took the time to add. I don’t really know how to make this information more accessible.

I’m no graphics programming expert, I’m just presenting the (dated) information given to us directly from the horses mouth - AKA one of Epic’s senior rendering engineers. That PDF of slides explains in less than a couple of sentences why MSAA is apparently not a valid option for (specifically) UE4’s deferred rendering pipeline.

According to the PDF, MSAA requires shading an individual pixel more than once. You don’t need to be a graphics programmer to connect the dots, and realise how quickly that becomes a problem even with low amounts of MSAA. I’m sure there’s some obscure GDC presentation about some other technique some studio did that fits their specific use case perfectly - but that doesn’t always apply.

What is your target platform? You can improve the image quality considerably by changing the “screen percentage” to 125 and using a sharpening filter to get rid of the “greasy” look you describe.

Take a look at this thread:
https://forums.unrealengine.com/deve…edge-artifacts

Personally I can’t stand the ghosting of TAA! and I’m using FXAA and MSAA for my project (allowing users to choose between the two) along with the sharpening filter I mentioned earlier.

Gbuffer size would reach unholy levels and consequently will munch your bandwidth. Nothing to do with what you do with your scene.
Deferred with MSAA is doable, but barely feasible even for minimal gbuffer.

Yeah, that its called post temporal syndrome. Welcome. People started to forget how a clear picture should look. On the other hand, the amount of junk you can throw at temporal aa and come out with a decent and usable picture is sky high.

No. Not always and not every fragment. Depends on implementation. Whole point of MSAA is to multi sample geometry, but shade at screen res rate, otherwise it would have been a simple super-sampling.

wow, didn’t know this thing had a name :smiley:
but yes there’s the clear advantage that you don’t have to worry about geometry aliasing when authoring art and levels (a big headache when working with artists)

MSAA 8X? How do you do this?? I can only go up to MSAA 4X. I tried 8X but it looks exactly the same as 4X, but with glitches. Maye I’m not doing it properly?
(I tried “r.MSAACount 8”)

I see, that makes more sense. Thanks!

Well i went ahead and switched to forward rendering again as i was getting tired of it. Plus ill probably make most projects vr compatible anyway so i guess it’s a good idea to get used to.

Good news in 4.26. You can use r.TemporalAA.Algorithm 1 and you will instantly see improvement. It is my understanding this is what they are calling the TAA solution for Gen5. Frameweight seems to have little to no effect when this is enabled, but also, does not seem to really need tweaking.

Why did you necro this thread?

Uh… because this thread is about an issue which has been directly addressed by a new feature introduced in 4.26 which has been released just a couple of days ago? it’s much better than starting a new one, since it keeps all the information about TAA woes on one place, and at the same time, people who ever contributed to this thread will see the little green icon next to it notifying them they already been here, so it will be harder for them to miss the news.

I really appreciate that this was bought up. I have been subbed to these taa threads for YEARS (first one was like 2017 i think? lol…), and i probably would of not even noticed this if someone didn’t mention it :slight_smile:
Glad to see the issue getting some love from epic, looking forward to upgrading some projects to 4.26 :slight_smile:

New algorithm seems to be a bit less temporally stable in certain situations. Specifically, the DitherTemporalAA node. Produces less ghosting than the original algorithm but at the cost of significant jitter between frames.

Yes, i did notice several things that need improvement too. From what i have read from Epic, and been told by other community members, it is just an early example and will be improved quite a bit over time.

That is because I have not tested the DitherTemporalAA node with Gen5 TAA yet :o

Yes cost is higher, but you may find more information how you can take full advantage of it’s additional cost with r.TemporalAA.Upsamling=1 and r.ScreenPercentage. More detailed information here

thank you!!!

you added nothing to the conversation