All materials that use WPO for animation have this issue. For example, this is the Megascans trees, the ‘BlackAlder_Asset_Zoo’ map:
(It might not be fully visible on the compressed video, if so, please try downloading the mp4 file)
Is it a known issue? It’s quite hard to miss.
Update: Some materials seem to be ok, for example, my grass material in Dynamic Grass System. But my tree materials (and other Marketplace trees that I have) all have this smearing.dithering issue. I’m investigating it.
Update 2: Now my grass material also started behaving this way, no idea why. It was fine, but probably after the editor restart it started this smear/dither behavior.
Update 3: On some of the actors it is fine. For example, on a procedural tree from my Interactive Tree Creator, everything looks fine. But on the same tree (after it’s converted into a regular static mesh), the smearing/dither is there. On the left, a procedural tree, on the right, after it’s converted to a static mesh:
Update 4: Inside the mesh preview window meshes look fine, but when placed in any scene (even a completely empty level), the artifacts are there.
Indeed, looks like it’s the new TSR AA solution causing this…? I wonder if this is a limitation of this AA method. But it would be weird if from now all the WPO animated effects would be this dithered/smearing. It basically destroys all the foliage and other WPO moving objects.
I’ve tried different screen percentages, but without effect.
IMPORTANT UPDATE: On some of the actors it looks fine! Please see the Update 3 on the first post.
Sorry for a new post, but it’s an important update: Meshes look fine in the mesh preview window, but bad when placed in any scene (even a completely empty level)! No idea why.
It’s almost certainly from bad motion vector data, but I have no idea what the actual cause or fix is. Even the tree in the example content maps has really bad artifacting.
With 100 Screen Percentage it’s still the same. Moreover, the issue doesn’t exist inside the static mesh preview window (the one that appears when you click twice on a static mesh asset). So that may be a clue here.
Where what I’m seeing is that WPO introduces what appears to be some sort of position “uncertainty” as perhaps an optimization strategy? In the sense that plugging in a constant 0 to WPO (which disables it) produces different results than plugging in a series of shader instructions multiplied x0 (which should, theoretically, also entirely disable it, but produces different results).
My use case involves unlit materials, the old TAA algorithm, the forward rendering path, skeletal meshes rather than static/foliage… basically nothing is the same as in your example except in both cases there seems to be some frame-to-frame imprecision in the exact value of WPO-modified vertex coordinates.
As a test for your issue, I would say go into the master material for your foliage and try multiplying the final pin that feeds the WPO value by 0. This SHOULD disable WPO… but I suspect what you’ll see will be that the trees don’t move, but they remain fuzzy. And if you instead just plug a constant 0 into the WPO value rather than multiplying the vertex math by it, you’ll see the trees become sharp again.
This issue is caused by Temporal Super Resolution and was present for example on alder trees even in Preview 2. This TSR issue is not present in EA and several pre-preview 2 custom UE5.1 git builds. The lower the base resolution and higher TSR AA quality, the worse is the ghosting. I kinda hoped that it will get resolved for major release.
Yep, having that too. Setting the AA method to something other than TSR like FXAA fixes it, and increasing the screen resolution with TSR makes it better. So yeah I agree it’s probably caused by the temporal nature of TSR. Really hope it will get fixed as well, all UE5 top features seem to have major issues with foliage.
The issue with it is that taa try to mix two frames that are different 'cuz of vectors movement and the effect is that weird ghosting. To fix it just try to mess around with velocity pass in Engine-Rendering Optimizations section of your project settings.
Changing all affected actors to movable instead of static/stationary fixed it for me. Apparently it’s an engine bug that came with the new “velocity pass during depth” option that is enabled by default.
Welp, if you’re using wpo then you probably don’t want static lighting so setting it to movable kinda makes sense, it might be an optimization thing as well.
Though for sure there should be a warning to let the user know or the engine should handle this more gracefully or automatically (perhaps it’s not automatic for perf. reasons?).
Switching my foliage to movable did solve this issue, but the effect can still be seen on the shadows of my moving skeletal meshes (characters) and my Niagara systems.
As far as I know It’s an engine bug that should be fixed going forward, setting meshes to movable is just a quick fix but it doesn’t solve the issue globally of course
Hi all, I can report that this issue is being tracked internally at Epic. As has already been mentioned, the workarounds are to either set the geometry to non-static, or set “Velocity Pass” to “Write during base pass”. “Write during depth pass”, the default in UE5, is believed to be more efficient for most scenes, but the “base pass” setting should be fine to use as well. Probably worth doing a performance comparison if you switch.
In the future there will be some scenarios that require the “depth pass” setting.
Also worth mentioning that TSR’s use of motion vector data is one reason why it is so much better at preventing ghosting compared to TAA. It can end up with artifacts like this when the vectors are bad or missing, but hopefully most or all such cases will be snuffed out before long.