Motion blur produces artifacts in first person

Hello! :slight_smile:

I’m currently trying to solve the issue that, when you hold an item in first person view, motion blur will cause the edges around the item to produce artifacts.

I’ve seen many people with the same issue, but there was never really anyone that came up with a fix.
Most threads remained unanswered.

Some infos:

  • My first person arms are attached directly to the camera and the item is attached to the hand socket. (This seems to not matter at all as the artifacts are there even if i just a attach a cube to the capsule) - Motion blur is definitely the cause for this, as turning it off removes the artifacts, but thats not really an option.
  • Changing antialiasing methods did NOT change anything, even when turning it off.
  • Turning off lumen did NOT change anything either.
  • I have post process filters/effects in place, but disabling the post process volume did NOT fix it.
  • It seems that playing an animation for the hands makes the artifacts bigger. If i just use a static pose it’s almost gone (but still there)

Does anyone have any idea how to fix this issue without having to disable motion blur?

Here is a video in comparison with motion blur on/off:

nobody? :frowning:

Maybe a disocclusion artifact. I don’t think there is a way to prevent this short of writing your own motion blur shader. Motion vectors aren’t perfect, and angular motion in particular is a challenge for them.

Edit: On second though, there is one option. Set the object to translucent, and then you can set it to render after motion blur. This will completely prevent any motion blur artifacts. The object wont have any blur either, but because it is staying still relative to the camera this is a non-issue.
This will also prevent the emissive material from generating light in lumen, but considering how splotchy that would look its probably for the best. Then you can simply put in a real light for much better results.

1 Like

That actually works. But setting my items to translucent opens up other issues, like textures being visible inside/on opposite side of the items.

Also no shadow casting (which is not a big issue since i dont cast shadows for the first person version of the item anyway)

Here is what i mean:

I would probably only do this with objects of high visual contrast, like the glow stick. Translucent objects have numerous issues and limitations. For most objects, these artifacts should barely be visible.

However the shadows are easily solved by enabling “cast shadow as masked”.

The triangle sorting issue can be solved by enabling order independent transparency in project settings for a small performance cost.

1 Like

Unfortunately the artifacts are visible even for objects that have nothing emissive going on as long as they have a bright color.

But thank you for the suggestions so far, i will see how far i can get with translucency and if it’s worth the performance cost. :slight_smile:

This video explains some of the problems with motion blur and the guy builds his own (for godot), so if you do want to explore that path this could be a starting point to learn how.

You’ll want to use 2 separate materials on assets with translucent materials, separate out just the translucent parts into their own material. Yes, it is one more draw call, but it’s worth it for less screen space being treated as translucent. Also don’t need to worry about sorting or shadows as much.

Definitely, only set things to translucent that absolutely must be.