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:
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?
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?
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?
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:
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
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.
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.