TAA Limitations?

UE’s TAA anti-aliasing method is crisp and lovely, but causes weird artifacts with some of my “vfx” meshes when in motion, I assume because they’re quite thin? Here’s an example:
image image

These artifacts aren’t within the bounds of tolerability so I’m (seemingly) forced to use FXAA instead.

My question is, what are the limitations of TAA (is it just “thin” geometry like I suspected?), and is there anything that can be done to improve or overcome them?

1 Like

Hey there @Perfect_Human_Interface! So TAA while being one of the more preferred versions of AA, can have tons of side-effects.

  • One issue you’d already mentioned, is thin objects can be less predictable and more prone to artifacting.

  • Ghosting is somewhat common, while usually barely perceptible in most cases can get out of control with objects moving quickly or erratically.

  • Incompatible with some rendering techniques. One notable example would be that Lumen and TAA don’t always play well together due to the temporal element.

I’m assuming these VFX panels are just thin meshes right?

1 Like

Hi, thanks for the reply and apologies for the delayed response. The pictured elements are indeed meshes, and I have similar issues with other such elements. It’s interesting because I don’t perceive any artifacts at all on the “bulkier” meshes or anything else really, but on these fine, bright elements it’s really noticeable.

I guess that there are no tweakable settings for this or anything, and we just have to live with it the way it is or use a different method?

you sure those are real meshes? like acual hexagon geometry. to me this looks line planes with a masked material. this can cause temporal artefacts.

I have the same question as Glitchered here, is this planar geometry being used as UI? Does this still occur given some thickness?

Yes they are geometry with thickness.

I don’t know why I didn’t realize it before but the issue is that I’m using translucent materials. Opaque materials don’t cause the artifacts.

TAA can present issues with translucent materials, but usually isn’t nearly as bad as what you’re experiencing here. There’s an experimental feature that plays with how translucency depth is handled that sometimes helps with artifacting, but not usually intended for helping temporal artifacts, might be worth a try:

Project Settings → Engine → Rendering → Enable Order Independent Transparency

This can help simplify the rendering of the translucency, but due to the nature of temporal sampling some artifacting is guaranteed for translucent materials and this setting may not mitigate it much if at all.

Another option is increasing TAA samples, which can get incredibly performance intensive. Here’s the command, the default is 8, I’d start at 32 and see if that helps out.
r.TemporalAASamples 32

Translucent materials does not produce motion vectors and thus create artifacts when using taa.

So I have an update. I found some settings in the materials that seem relevant to this.

First there is “Output depth and velocity,” which apparently helps with issues related to transparent materials and motion blur, and I was excited to try with this, but sadly seems to do nothing for this issue with TAA.

Next I found I could set “Translucency Pass” to “After Motion Blur” and, surprisingly, this actually eliminates the issues noted with TAA. But it creates two other noticeable effects: first, the material is rendered without any AA effect, with hard pixel edges; and second, the material is rendered on top of everything, even when it would have otherwise been occluded by objects in front of it.

This is interesting and could be useful for certain HUD style effects, but I think is probably not what I’m looking for with my game.

Output depth and velocity can help some effects, but in your case the lack of motion vectors and simple prediction is compounded by your effects being point blank and changing extremely rapidly. Changing where the translucency pass occurs in execution will just basically remove AA from the object altogether in this case, which isn’t ideal if you need any form of AA. Looking into some options that would mitigate the TAA artifacting but it seems that it will remain limited due to the movement vector issue.

I have some materials that have cleared up when Output Translucent Velocity is ticked in material attributes.

As far as I understand it, this does what it says: allows the translucent material to output velocity, preventing temporal artefacts. It’s often missed as it’s in material settings, not mesh settings.