Very close to per-object motion blur, request a small tweak

More
1 month 2 weeks ago - 1 month 2 weeks ago #1 by sheno1346
BlueSkyDefender's BasicMotionBlur (Pseudo Motion Blur) shader is very close to looking like per-object motion blur thanks to its depth-based velocity detection, and there is one tweak that I think could be made which would make it look almost exactly like it.

The shader comes with a "persistance" option, which displays the previous frame of objects moving on screen. You can adjust this option to make the previous frame more or less visible as can be seen in the following screenshots (more info after the screenshots):

Motion blur on, 0 persistance:


0.5 persistance:


1 persistance:


If you look at the motion blur in a modern title, you can see that, in a similar fashion, it is keeping the previous frame (like how persistance does) and then interpolating steps in between it and the current frame:


So, my request is for the shader to somehow blend between this persistance data of the previous frame to the current frame.
Ideas on how to do this:

1. Interpolate steps (currently not possible as I understand it)

2. Blurring the whole area in between the persistance data and the current frame data its based off.

3. The shader has a debug map output showing the velocity data is collecting, so applying the blur to that debug map area might work too.

4. Doing something like the Trails/FakeMotionBlur shader, but only having it apply in between the persistance data and the current frame its based off of. And then you would just apply a blur pass over it (like gaussian or something). And the persistance image could be customized to display for more or less frames before updating, so you control how long the "motion blur" trail is.

I think this will make it look almost just like per-object motion blur.

Shader download if needed: drive.google.com/file/d/1ucpGO-inXOl7_Cj...QK-/view?usp=sharing

Debug map examples:


Last edit: 1 month 2 weeks ago by sheno1346.

Please Log in or Create an account to join the conversation.

More
1 month 2 weeks ago - 1 month 2 weeks ago #2 by xBonzaii
I'm also very interested in this topic. On my setup, I've configured most of my games to run at 30fps. Thanks to RTSS's frame limiter, the experience is way more consistent and enjoyable compared to gaming on my old PS4.

But until a few weeks ago I've always turned off motion blur because it either blurs too much or the effect is inconsistent from game to game. Without motion blur though, 30fps, even with consistent frame times, can look very 'judder-y' when moving the camera at a certain speed.

Now I've been messing around with a few Reshade shaders for the last couple of days and found some interesting results.

Shaders like FakeMotionBlur.fx, Trails.fx or any type of accumulative motion blur doesn't really work well at low frame rates.
Even when I tried to make the effect very subtle, I could still see visible gaps/ghosting.

I couldn't get eMotionBlur.fx to work, it just didn't seem to be doing anything no matter which settings I changed..

The only shader that does provide a nice subtle motion blur effect without introducing ghosting and coincidentally also reduces the amount of shimmering is Temporal_AA.fx.

Here are my settings..



I really like the effect, it's definitely a significant improvement. But like you said, so far all the shaders mentioned here are tied to the frame rate. It would be awesome if someone could figure out a way to create a sense of motion in between frames..

For anti-aliasing, I use 4k DSR (1080p native), combined with Nvidia CP's FXAA option and Reshade's SMAA & TAA, as you can see above. If anyone has any suggestions on how to improve either my anti-aliasing settings or motion blur, please let me hear it!

By the way, this is my first post on these forums, I also want to thank all of the people who've worked on this program and it's collection of shaders.

Thank you! You guys are the reason why pc gaming is both awesome and superior. ;)
Last edit: 1 month 2 weeks ago by xBonzaii.

Please Log in or Create an account to join the conversation.

More
1 month 1 week ago #3 by PG19
I have a small flickering dot when using Temporal_AA.fx in HZD

To use / have better results for eMotionBlur.fx i think overwatch.fxh by BlueskyKnight (blueskydefender at github i think) is needed. I didn't use it yet

Please Log in or Create an account to join the conversation.

More
3 weeks 4 days ago - 3 weeks 3 days ago #4 by canceralp

xBonzaii wrote: I'm also very interested in this topic. On my setup, I've configured most of my games to run at 30fps. Thanks to RTSS's frame limiter, the experience is way more consistent and enjoyable compared to gaming on my old PS4.

But until a few weeks ago I've always turned off motion blur because it either blurs too much or the effect is inconsistent from game to game. Without motion blur though, 30fps, even with consistent frame times, can look very 'judder-y' when moving the camera at a certain speed.

Now I've been messing around with a few Reshade shaders for the last couple of days and found some interesting results.

Shaders like FakeMotionBlur.fx, Trails.fx or any type of accumulative motion blur doesn't really work well at low frame rates.
Even when I tried to make the effect very subtle, I could still see visible gaps/ghosting.

I couldn't get eMotionBlur.fx to work, it just didn't seem to be doing anything no matter which settings I changed..


0.800 is too high for TAA to make a difference I think. I use it at 0.090 in GTA V and similar TXAA games. It makes a subtle smooth transition between frames.
Last edit: 3 weeks 3 days ago by crosire. Reason: Fix quote

Please Log in or Create an account to join the conversation.