I’ve encountered an issue in UE 5.0 where Temporal Super Resolution (TSR) and Temporal Anti-Aliasing (TAA) cause significant emissive ghosting with rapidly moving instanced meshes.
I’ve come across suggestions to fix this by changing the velocity pass to write after or during the base pass, but it hasn’t worked for me. I believe this solution is more applicable to movement methods based on vertex deformation or world position offset/displacement. (This is one of the methods that I tried and it did not work for me)
I’ve tried disabling TSR and testing with FXAA, which removed the ghosting issue, but I highly prefer the visual quality of TSR and TAA over FXAA. Adjusting console variables for TSR and/or TAA didn’t yield noticeable improvements, except for increasing the current frame weight when using TAA, which made everything appear more jagged, similar to FXAA.
Does anyone have any ideas or suggestions on how to address the ghosting issue caused by TSR and TAA affecting instanced meshes without sacrificing visual quality? Thank you for the help!
I’d also like to add that the issue is not directly tied to the speed of movement, since I matched the speed of both methods (instanced/non-instanced) and non-instanced did not have the issue. It is also not a frame rate issue, I capped my framerate to different ranges and the issue still persisted.
Good to know, thanks! For me it ended up being an issue with how I was updating the Instance Transforms, they weren’t being updated in the velocity buffer as a result
Sure! @rosenand, originally I was moving the instances individually using Update Instance Transform, but I suspected it was causing issues with how the velocity buffer was calculated for the instances, and was causing the ghosting (I very well could be wrong about this, there is very little information for this issue). So to remedy this, I spawned a scene component to act as the “mover” for the instances and attached the ISM components to it. This allows you to move the scene component (I used add local offset) instead of the instances directly, which will correctly calculate the velocity buffers for the instances themselves.
Honestly if you ask me, I think it’s kind of dumb that this work around is necessary for faster moving emissives, and I hope a fix will come eventually.
Oh. Thank you very much. In my case I’m moving them along a spline though, so I guess I’ll just need to switch to spawning regular Static Mesh Components instead (hoping UE will still batch them to a single draw call), or even separate Actors, if it turns out Components are still ghosting. Thanks anyway
Fair enough! Although I suppose you could still attach the instanced mesh components to scene components, then move the scene components along the spline. But whatevs, good luck with your solution!