4
\$\begingroup\$

On my Unity project I have a strange behavior for my 3D model which I bought on the Unity asset store.

If I move the player, there appears a wired shine / glow… seems that the character does not move completely, but drags…

Here a screenshot to show you the behavior:

enter image description here

Here is a video where you can see that the animations are not clean: https://youtu.be/3H3r6HcgSaQ

Here you can see the configuration of my camera and PostProcessingVolume:

enter image description here enter image description here enter image description here enter image description here

By the way: I’m using the Built In Rendering Pipeline. This appears not only on this 3d model. I can see this behavior for also other 3d models in my scene.

What could be the issue here? I have no idea…

Thanks in advance for your feedback and assistance!

\$\endgroup\$
9
  • \$\begingroup\$ Can you capture a video or animated gif of the effect in motion? It's hard to know what we're looking at from a still. It would also help if you share the steps needed to create a Minimal Complete Verifiable Example - what would we need to do to make a scene in a new, empty project that exhibits this artifact? Once we can reproduce the problem, we can test potential solutions to be sure they work. \$\endgroup\$ – DMGregory Jun 18 at 20:14
  • \$\begingroup\$ Sure, I will create a small video to share. A reproducible example is difficult because this 3d model is a bought one.. but I think when you see the video you absolutely know what I mean 😊 \$\endgroup\$ – asored Jun 18 at 20:19
  • \$\begingroup\$ "This appears not only on this 3d model. I can see this behavior for also other 3d models in my scene." So the effect occurs on other, non-lion models, but only when this lion is in your scene, and not when the lion is absent? \$\endgroup\$ – DMGregory Jun 18 at 20:21
  • \$\begingroup\$ The effect occurs independently of the lion in other models as well, yes. However, not with all of them. I have edited the post with a video where you can see the effect. Thanks for your effort! \$\endgroup\$ – asored Jun 18 at 20:37
  • 1
    \$\begingroup\$ This looks like you have an after-image or motion blur post effect being applied to your scene. Can you show us the configuration of your camera and any effects on it? \$\endgroup\$ – DMGregory Jun 18 at 20:42
5
+100
\$\begingroup\$

tl;dr: The problem is the combination of Temporal Anti-Aliasing with grass.


As DMGregory mentioned in a comment, these ghosting artifacts are caused by the Temporal Anti-Aliasing post-processing effect.

This effect is supposed to smooth animations by interpolating between the current and the previous frames. Unfortunately there are various corner-cases where this can manifest as this undesirable ghosting effect. According to this Reddit thread, this effect can occur especially when there are objects in the background which use shaders with displacement mapping. The grass from the Unity terrain system, for example. Which you also appear to be using in this scene. The reason is that TAA applies motion vectors to individual texture pixels to track their position changes, and displacement mapping can interfere with this.

And looking at this particular frame of your demo video, the grass indeed seems to be the culprit. Notice how the ghosted image disappears as soon as the grass in the background is replaced by the rock wall:

Ghosting stops at rock wall

Note that Unity is not the only game engine having problems with TAA. A cursory online search finds several people having similar problems in engines like Unreal, Amazon Lumberyard and also some complaints from players playing games based on inhouse engines. There are solutions, but many of them require very convoluted and situation-specific hacks to get around them. And these usually require rather a lot of in-depth knowledge of shader programming. TAA is just a very fiddly and unreliable technology.

So unless you really really want TAA, I would recommend to just use a different anti-aliasing method like SMAA or FXAA. If you insist on TAA, try to disable the grass. If you also insist on having grass in the game (which I would understand in a savanna scenario like this), try to find a grass implementation which does not use displacement mapping in its shader.

\$\endgroup\$
1
  • \$\begingroup\$ Awesome explanation. Now I understand well. Thank you very much, Philipp and @DMGregory :) \$\endgroup\$ – asored Jun 21 at 16:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.