Download

Avoiding TAA artifacts on stop motion animation?

I’m currently trying out UE4 for displaying a looped stop motion animation. It’s basically just a group of somewhat-related-but-distinct static meshes, and I rotate visibility on a timer, so each frame displays for a set amount of time. When the frame changes, TAA blurs a bit and lose its antialiasing on the moving edges. I’m assuming it’s because the engine can’t figure out any motion vectors for the direction of movement (I know TAA is a complex beast). My question is, is there some way to get around this? Maybe some other way to display this kind of thing or give a hint to the engine? I’d rather not turn off TAA, it looks quite nice for my use case when things aren’t moving. Thanks in advance.

I don’t think that there good solution. You just cannot get proper motion vectors when you change mesh that way. With some engine modifications you could render twice when changing stop motion frame but then just skipping the first frame. You could also disabling TAA and replace it with 200% screen resolution + fxaa.

Thanks, I just tried FXAA at 200% resolution and the performance hit was huge (and TAA still does better with edges). With the engine modifications, would it be possible to just double-render the specific model that is animating? Or would the whole frame need to be rendered twice?

It’s basically same as rendering 120fps and just capturing every second frame.

Maybe you just want to reset previous frame transforms on meshes in question so that previous frame transforms are fresh and equal to current frame for each frame ?

I believe, in blueprints detaching/attaching actor/component will achieve this, but I am not sure.