Who said ReShade can't do quality motion blur?
- luluco250
- Topic Author
Really alpha stage but I wanted some feedback.
The main technical issue, which can only be *so much* solved is that low framerates will yield a ghosting effect, but if you can get more than 60 (specially around the 100's) it looks fantastic.
Here's a test version you can get for 3.0: my.mixtape.moe/kacblt.fx
I'd recommend an intensity setting of 0.8.
On the technical part, it's just collecting the framebuffer 4 times on 4 techniques and then blending them in a 5th technique with the framebuffer.
I'm being careful not to introduce input lag as well.
Obviously this isn't exactly the prettiest implementation, but the quality seems to be a bit better than just lerping through the last frames like
lerp(lastFrame, currentFrame, shutterSpeed)
I'm considering implementing some sort of "framerate threshold", similar to what I did on another temporal motion blur shader I have here.
The great thing about this implementation is that it gives you high quality full scene motion blur, as long as you have enough FPS for it.
Here's a gif [HD] :
Please Log in or Create an account to join the conversation.
- andrew
I tested the shader, but did'nt understand, how it works, the image was frozen (ghosting), a bit dark. I have tested on reshade 3.0.7b.
Please Log in or Create an account to join the conversation.
- luluco250
- Topic Author
andrew wrote: Good work ! I was waiting for months, looking for a good motion blur in reshade.
I tested the shader, but did'nt understand, how it works, the image was frozen (ghosting), a bit dark. I have tested on reshade 3.0.7b.
There are 5 techniques to be enabled, you'll get artifacts otherwise.
The actual blending occurs in FrameBlender_Blend, the others are just saving the image at different times.
Please Log in or Create an account to join the conversation.
- Aksine12
Please Log in or Create an account to join the conversation.
- Aksine12
Please Log in or Create an account to join the conversation.
- PureEvilWindom
Please Log in or Create an account to join the conversation.
- unic0rn
not sure if burnout paradise didn't use something like that, to a degree at least. its motion blur implementation was pretty nice.
Please Log in or Create an account to join the conversation.
- OtisInf
Looking at the gif in the startpost I get the feeling this is just a ghosting result which looks a bit like motion blur. Full screen 'everything moves at the same pace' motion blur is abit like ghosting using a temporal additive blend, which is easy to do (3 lines of code) but real motion blur is different: objects move at different speeds and therefore you need a different approach, one where you need velocities of the various areas that move. This paper is a great start: www.iryoku.com/next-generation-post-proc...uty-advanced-warfare by Jimenez, which builds on the work of McGuire e.a. ( casual-effects.com/research/McGuire2012Blur/McGuire12Blur.pdf )unic0rn wrote: i've got a feeling the best method for motion blur may be in some form of depth-based masking. you can blur the surfaces in motion then, without introducing ghosting on the edges.
not sure if burnout paradise didn't use something like that, to a degree at least. its motion blur implementation was pretty nice.
Having the screen blur a bit when the camera moves is IMHO just ghosting and doable with a temporal blend (as a key ingredient is missing: there's no velocity buffer/data, there's just a frame and a depth buffer, 2 of the 3 components)
Please Log in or Create an account to join the conversation.
- e371
Please Log in or Create an account to join the conversation.
- BlueSkyKnight
Still WIP
Please Log in or Create an account to join the conversation.
- BlueSkyKnight
I guess it can be done kind of...... If you people like it. I can fix it up a bit and submit it to the main repository.
press 0 and look at the leaf. It not very many samples. But, it looks almost like Per-object motion blur.
It's kind of hard when working with one past frame like this.
Here is the shader to test.
github.com/BlueSkyDefender/Depth3D/blob/...perimental/Trails.fx
Please Log in or Create an account to join the conversation.
- jas01
I'm interested in this shader for sure. I think you did a very good work here. I think that with your motion detection algorithm done we could finally get a decent motion blur for ReShade.
Please Log in or Create an account to join the conversation.
- canceralp
This can even be a used as a base for temporal anti aliasing applications.BlueSkyKnight wrote: I have been working on motion detection for other reasons. But, you think this motion blur paired up this Motion Detection shader would help?
Still WIP
Compare current and previous frames and blend accordingly.
Please Log in or Create an account to join the conversation.
- MichaelZFreeman
Please Log in or Create an account to join the conversation.
- luluco250
- Topic Author
MichaelZFreeman wrote: I'm interested as well. I'm having to run Assassins Creed Origins limited to 30 FPS (MSI Afterburner) and have been setting it up to basically run as it does on the consoles. Motion Blur and AA. Fake Motion Blur helps but it would be something better would be good. Motion Blur is essential at 30 FPS ... "Even 25 or 30FPS can be totally sufficient in slow or medium-paced games - particularly if the game has motion blur, softer edges, and does not display significant variability or stuttering" - www.tweakguides.com/Graphics_5.html
To me it's quite the opposite, I find motion blur obnoxious at lower framerates. It's supposed to simulate movement too fast for your eyes to catch, but instead it just looks like a sluggish blurry mess. It also pains me that developers still don't do clamping correctly and we get "squared" motion blur like in Stalker SoC and Deus Ex MD, fixing that with something like Unity's ClampMagnitude() was fun and worked really well.
Please Log in or Create an account to join the conversation.
- Sami 1999
unic0rn wrote: i've got a feeling the best method for motion blur may be in some form of depth-based masking. you can blur the surfaces in motion then, without introducing ghosting on the edges.
not sure if burnout paradise didn't use something like that, to a degree at least. its motion blur implementation was pretty nice.
Reshade's "AdvanceMotionBlur" which is now removed had depth based motion blur. It also didn't blur the whole screen like fake motion blur does.
Please Log in or Create an account to join the conversation.
- MichaelZFreeman
luluco250 wrote:
MichaelZFreeman wrote: I'm interested as well. I'm having to run Assassins Creed Origins limited to 30 FPS (MSI Afterburner) and have been setting it up to basically run as it does on the consoles. Motion Blur and AA. Fake Motion Blur helps but it would be something better would be good. Motion Blur is essential at 30 FPS ... "Even 25 or 30FPS can be totally sufficient in slow or medium-paced games - particularly if the game has motion blur, softer edges, and does not display significant variability or stuttering" - www.tweakguides.com/Graphics_5.html
To me it's quite the opposite, I find motion blur obnoxious at lower framerates. It's supposed to simulate movement too fast for your eyes to catch, but instead it just looks like a sluggish blurry mess. It also pains me that developers still don't do clamping correctly and we get "squared" motion blur like in Stalker SoC and Deus Ex MD, fixing that with something like Unity's ClampMagnitude() was fun and worked really well.
It's all psychology dependent and based on personal taste. But that article allowed me to grasp the importance of MB for me as I'm not used to 30 FPS (the only reason I use it here is to stabilise AC:O) because I had failed to appreciate why it's use in films and TV makes that media's comparable FPS seem smooth. I think I thought MB was a video game "gimmick" meant to make objects seems to move fast when in fact it has an entire history that goes back to more traditional media like film and TV.
Sami 1999 wrote:
unic0rn wrote: i've got a feeling the best method for motion blur may be in some form of depth-based masking. you can blur the surfaces in motion then, without introducing ghosting on the edges.
not sure if burnout paradise didn't use something like that, to a degree at least. its motion blur implementation was pretty nice.
Reshade's "AdvanceMotionBlur" which is now removed had depth based motion blur. It also didn't blur the whole screen like fake motion blur does.
Why was this version of MB removed ? Is there somewhere I can still get this ?
Please Log in or Create an account to join the conversation.
- Sami 1999
MichaelZFreeman wrote:
luluco250 wrote: Why was this version of MB removed ? Is there somewhere I can still get this ?
The owner never ported it for latest versions I guess. But one user did made it working on latest version of reshade.
Here's the post where you will find the link: reshade.me/forum/shader-suggestions/4302...-for-reshade-3#28022
I think it should be included on Reshade by default.
Please Log in or Create an account to join the conversation.
- MichaelZFreeman
EDIT: OK, I got it working. For some reason the default settings are turned right down or the effect is so subtle at default setting that a screen shot does not capture it when turning around very fast. Turned things up a bit and now its visible but way too strong. Still tuning.
Actually I got thinking about the title of this thread. The issue of MB with ReShade seems to suggest that MB in games is doing some mysterious thing that ReShade cannot duplicate. As far as I can tell MB is just a shader like any other shader that slightly blurs everything in the entire frame when there is a very fast movement. The effect seems especially accurate, compared to cinematic MB, in FC3 (at least to my eye's).
Has anyone looked at the background of what MB actually *is* ?
"So, essentially, you could make the argument that this is the entire reason why motion blur exists. We’re used to seeing motion blur on moving pictures and images. It gives everything a more natural look because we’ve become accustomed to seeing motion this way as a result of the various shutter speeds of film and video". - www.rocketstock.com/blog/when-to-use-motion-blur/
Of course in a game the "shutter speed" is the time each frame is on the screen so a "quality" ReShade motion blur should probably take account of FPS and frame time and alter the MB accordingly. There's even research such as this ... research.bournemouth.ac.uk/impact/improv...and-special-effects/ - www.tandfonline.com/doi/abs/10.1080/2151237X.2007.10129235
So I don't know why the depth buffer even has to be involved. Just as in traditional photography and film the blur is created by the shutter time, in this case the time a single frame stays on the screen such as 33.3 ms. With emulsion film and photography the entire scene is blurred equally ? So I suppose the effect depends on the "shutter speed" (frame time) as well as how quickly the in game "camera" is moving and/or objects relative to it. This seems closer to what MB actually is although I'm still thinking about this.
Please Log in or Create an account to join the conversation.
- BlueSkyKnight
With that out of the way. I still made the shader even with this fault for testing.
So let's talk about the Mask. Used in this image.
The Image above highlights what gets blurred and what not getting blurred. I took it when Swinging my weapon in Game. This is particularly hard to capture because it had to be in motion. It's Kind of fast. Reaching the limits of what the mask can well mask properly. But in this case, it gives a good result. Even the Drone in the background is getting the blur applied. Also the tree with the moving leaves.
Anyways keep expectations low and try this out. Keep in mind Depth Buffer access is necessary.
github.com/BlueSkyDefender/Depth3D/commi...8a4fd8e6841698534408
Pseudo Velocity Buffer was a side effect when working on a TAA shader.
Please Log in or Create an account to join the conversation.