How I Solved Real Time Motion Blur

Sdílet
Vložit
  • čas přidán 6. 07. 2024
  • Demo:
    github.com/sphynx-owner/JFA_d...
    Addon:
    github.com/sphynx-owner/JFA_d...
    Paper I wrote on the matter:
    drive.google.com/uc?export=do...
    Sources used in this video:
    docs.unity3d.com/2017.4/Docum...
    john-chapman-graphics.blogspo...
    casual-effects.com/research/M...
    docs.unrealengine.com/4.27/en...
    www.comp.nus.edu.sg/~tants/jf...
    • The Jump Flood Algorit...
    • The Jump Flood Algorit...
    www.comp.nus.edu.sg/~tants/jf...
    github.com/cecarlsen/SDFTextu...
    • Jump Flooding Algorith...
    www.comp.nus.edu.sg/~tants/so...
    docs.unrealengine.com/4.27/en...
    Hope you guys found this interesting, and hope you find the demo and effect in general as cool as I have. Would love to hear some feedback regarding the video, paper, and effect itself.
  • Zábava

Komentáře • 337

  • @SirRanjid
    @SirRanjid Před 17 dny +288

    4:40 : I hate motion blur because:
    1) I play fast paced games where it's crucial to know the exact silhouette.
    2) Looking around ingime is more like turning your entire head than head + eyes. You cant account for my eye wandering around and tracking things not just in front of me. Similarly why depth of field is annoying because you cant know what at any given moment im focusing on rather than just assuming that the stuff straight ahead is what im looking at.
    3) I get more than enough blur from my monitor when looking around ingame.
    4) Given the annoyances above it's not worth spending more GPU resources for me. It would have to give me FPS in order fo me to be worth it.
    EDIT: For racing games its crucial tho. And for that it seems like a very good one.

    • @sphynx_owner8224
      @sphynx_owner8224  Před 17 dny +107

      This is a very insightful laydown of issues, here's my answer to each one (take it with handfuls of salt):
      1. you are right, turn it off at that point.
      2. for that I plan to implement motion separation for camera movement and objects, and it should help with that, so only object's movement would get blurry, but not camera movement.
      3. that is true, but at lower refresh rates, even at 60 hz, it really elevates the smoothness. If you have 144 hz screens, it can still help somewhat with smoothing very rapid movement, but if you care for performance, the change would be negligible.
      4. yep, do your own considering and see what you prefer. I just aim to produce a better effect by default so you are not "forced" to turn it off hopefully.
      racing games and games that want to appear more cinematic. I think that at subtle levels it can also be in high fidelity shooter games like battlefield and COD. Up to developers at this point. Its really all about immersion an personal preferences.

    • @runforitman
      @runforitman Před 17 dny +28

      Yeah
      I was playing rust, before disabling it, trying to jump to see over a fence
      I didn't enjoy my vision being covered in Vaseline when I'd have been able to see fine, jumping irl

    • @stickguy9109
      @stickguy9109 Před 17 dny +20

      ​@@runforitman You wouldn't see motion blur irl because our eyes do not have motion blur when moving. It only happens when objects move fast not the eyes. It is a thing that happens with *cameras* not eyes and the author did mention that. Google saccadic masking if you want this is how our brain cancels out motion blur.

    • @hornyclown
      @hornyclown Před 17 dny +1

      i love motion blur because it's fun

    • @miserablepile
      @miserablepile Před 17 dny +26

      I feel that _camera_ motion blur in first person games detracts from the experience, yes. However, I do enjoy _per-object_ motion blur in first person games.
      When a minigun is spinning in a characters hands, it's more visually appealing to have the barrels spin with some blur, and (especially when spinning up and not yet firing) a spinning minigun barrel is more obviously in motion with a bit of blur (granted, usually the character's stance&silhouette changes to indicate they are primed to fire, which is more visually obvious).
      Maybe the approach in the video could somehow use a velocity buffer that is not influenced by camera motion, or applies an inverse of the camera motion to eliminate its effect. After that, (if necessary) maybe a shader using this technique could only apply to objects with a "motion blurrable" tag enabled, as applied where deemed necessary between tech art and art teams. That said, I'm beyond my technical depth here, I might be missing a lot.

  • @Patso04
    @Patso04 Před 17 dny +245

    I think it’s even more impressive that you managed to do this on your own, many people who are in school don’t want to go anywhere this kind of work

  • @ar_xiv
    @ar_xiv Před 17 dny +175

    The issue with all artificial motion blur is that you can follow a fast moving object in real life with your eyes and then what is blurred in your field of vision inverts. Like if you’re looking at a car, the background should be blurred, but if you look at the background, the car should then blur. So artificial motion blur has to assume what you are in fact trying to focus on. I think this is what would contribute to motion sickness more than anything

    • @sphynx_owner8224
      @sphynx_owner8224  Před 17 dny +73

      That is a very good point and I think it is more significant to the problem than my argument about centered blur. Thank you for pointing it out!

    • @ar_xiv
      @ar_xiv Před 17 dny +9

      @@sphynx_owner8224 thanks for the reply! I’m sure VR people have headaches about this when you start thinking about eye tracking vs head tracking (you can follow an object without moving your head), the fovea, etc etc…

    • @jonahhekmatyar
      @jonahhekmatyar Před 17 dny +12

      This is why I always disable motion blur and depth of field in video games. I don't get motion sickness but nothing is worse than having stuff I'm trying to look at become a blurry mess.

    • @TheDoomerBlox
      @TheDoomerBlox Před 17 dny +2

      @@sphynx_owner8224 It's a tricky problem to amplify motion without actually washing out the high frequency details that define an object in focus, quickly.
      As that is what's actually important to achieve with motion blur - bringing out the direction of an object through time, because you're stuck looking at a 2D projection of 3D space.

    • @freescape08
      @freescape08 Před 17 dny +4

      I expect it's more than a couple years away at the consumer level, but it would be really cool to see eye tracking used to shift the focus of motion blur.
      Perhaps the best motion blur algorithms will be the ones that are useful now, but also prepared to utilize such technology when it becomes available.

  • @NICK....
    @NICK.... Před 17 dny +121

    1. interesting topic
    2. presented clearly
    3. straight to the point
    yea this is a sub for me. good work!

  • @WrathOfTheHydra
    @WrathOfTheHydra Před 17 dny +89

    The actual tech on display here is impressive, but your demonstration of it is even more remarkable. Well done!

  • @zwolfelfen
    @zwolfelfen Před 16 dny +68

    bro dropped out of high school and still wrote a better paper than me or any of my peers. damn.

    • @Swenglish
      @Swenglish Před 13 dny +6

      Goes to show that formal education needs an update. It needs to be more about promoting the joy of learning and teaching methods for sorting through information, and less about feeding kids data and testing how well they've memorized it. One teacher is all it takes to completely kill someone's potential interest in a given subject, and that's what school does a lot of the time by turning learning into a chore.

  • @kurtisknodel
    @kurtisknodel Před 17 dny +79

    Really nice work, this looks great. You know motion blur is good when the final image doesn't look like it's "motion blurred" (in the traditional video game sense), and it just looks a bit closer to photorealism

    • @sphynx_owner8224
      @sphynx_owner8224  Před 17 dny +10

      Thank you! this is awesome to hear. You should try the demo and see it in full resolution if you haven't already.

  • @BoarsInRome
    @BoarsInRome Před 15 dny +5

    Very impressive. It doesn't matter that you don't have an academic background, you clearly have a natural talent for tech art. Talent like yours is scouted for all the time... In fact if I ever need a shader god one day, I'll know who to hire. Great job

  • @ThyReaper
    @ThyReaper Před 17 dny +21

    This looks really fantastic, great work! I wonder if you'd be interested in giving a talk about this at GDC next March - talk submissions are opening shortly, and I think it'd be a great fit!

    • @sphynx_owner8224
      @sphynx_owner8224  Před 17 dny +8

      I would be honored, and the possibility sounds amazing! I would look into it at some point and see if its even possible, thank you for suggesting it.

  • @shoq9711
    @shoq9711 Před 17 dny +6

    awesome work, I always wondered why game motion blur looked so different from cameras and raytraced 3D renders, its cool to see it visualized here. nice job on the paper and thanks for publishing it on github.

  • @protodot2051
    @protodot2051 Před 17 dny +10

    I played around with your demo (in godot 4.3, should've specified that. effect breaks in current release 4.2.2) and it looks really good. The centering did always bother me, so seeing someone create a version of the effect without that without compromising on performance is really nice. Good stuff.

  • @Floatharr
    @Floatharr Před 17 dny +13

    Best motion blur I've seen in a game was Quake 2 remaster. I don't know exactly what they did but it seemed like the blur amount was tied to an exposure duration of 1/350s instead of the framerate, so as the framerate fluctuates, the amount of blur stays constant. I have a suspicion that the reason why motion blur looks so wrong in a lot of games is because frame duration is not a constant in games which makes the length of the blur fluctuate from one frame to the next, in addition to being far too long. Interesting video!

    • @sphynx_owner8224
      @sphynx_owner8224  Před 17 dny +6

      frame independent blur is a feature that I have added recently, it may require a bit more attention though, and in my opinion goes against the whole "intuitiveness" thing. What I do agree is not letting the blur get smeared below a certain framerate, as to not be jarring.

    • @silentdebugger
      @silentdebugger Před 10 dny +1

      I may be mistaken but I believe for Quake's case, because the basic game rendering is so cheap on modern hardware, they tell the engine to render at like 500fps internally and then composite all of those frames into a color accumulation buffer which gets presented at 60fps, which is the brute-force method of simulating how light from moving objects would actually collect on a camera or our retinas.

  • @RobinDuckett
    @RobinDuckett Před 17 dny +8

    Super impressive man, and it’s comforting to know you don’t have an academic background, I don’t have one myself but have been a programmer for 16 years. I have a number of projects that I have started upon, and then realised the amount of work rivals any degree course. Sometimes my projects lead me into areas I struggle to comprehend. I have also attempted to make motion blurring systems for Godot but could never quite produce something as realistic as this. Bravo!

    • @sphynx_owner8224
      @sphynx_owner8224  Před 17 dny

      This would not have been possible without the new compositor effect feature that was added to the beta, which exposes the render thread for you in engine and gives you access to velocity textures.

  • @Jetiix
    @Jetiix Před 17 dny +22

    Amazing work, especially for a sphynx cat. Bravo

  • @f4rious
    @f4rious Před 17 dny +10

    Just want to congratulate on your effort regardless if its a new approach or not, it looks great! feels and plays great as well! The video is excellently executed as well. Congrats!

  • @RadleyBO0
    @RadleyBO0 Před 16 dny +5

    I'll never forget seeing the game Lost Planet, which was the first game I really remember noticing the motion blur in. I thought it looked so cinematic when the main character ran around. In my mind, it was the future of graphics right there. For the record, I'm sure it wasn't the first game to have it, but it was the first time I really noticed it.
    This video brings back some of that old excitement I had seeing motion blurring in a game. This is fantastic work, and I really appreciate that you shared so much information on how you came up with the solution. Super cool! Instant sub.

  • @nonarKitten
    @nonarKitten Před 14 dny +4

    That's impressive. Motion blur done right shouldn't be obvious at all until it's paused and that's exactly what I experienced. When I first saw the final output my brain was like "what motion blur"? Well done, that looks perfect.

  • @acf2802
    @acf2802 Před 17 dny +41

    One of the problems with motion blur is that in real life if you track an object with your eyes, there is no motion blur, but a game assumes your eyes are locked at the center of your monitor and are never tracking objects.

    • @paranormalgamesstudios
      @paranormalgamesstudios Před 16 dny +1

      True but camera based motion blur; which is how we capture the world, does look straight ahead. Therefore this method is the best you can hope for. Until all devices for gaming have eye tracking embedded in them and software authored to use it, this is gonna be as good as it gets.

    • @paranormalgamesstudios
      @paranormalgamesstudios Před 16 dny

      Or instead of one camera we have two cameras one for each eyeball for stereoscopic vision, and write optional software for eye tracking hardware, when enabled you can independently track objects in the world with your eyes. DOF also needs this.

  • @theftking
    @theftking Před 16 dny +16

    The big problem I see in game motion blur are the lack of arcs. Most of the time it looks like vector blur where stuff just blurs linearly, but when you're swinging a mouse around, the motion blur on a bright light or something should be curved like it would be in real life/a path traced engine like Cycles.

  • @Meikulish
    @Meikulish Před 10 dny +1

    This is a very cool break down! Each of the freeze frames in your demo look really great. It could be a cool experiment to make it respond to an area of focus (like gaze, but there probably isn't fast enough gaze tracking yet). Maybe if gaze tracking ever gets to that point in VR or something, the motion blur skeptics will be willing to keep it on.

  • @sphynx_owner8224
    @sphynx_owner8224  Před 17 dny +2

    If you guys want to help with playtesting and giving feedback, feel free do go to the Godot Effects and Shaders discord at: discord.gg/MhfCkhV42T

  • @iau
    @iau Před 14 dny +2

    I, for one, love motion blur. I feel it makes the games I play look much more smooth and realistic. But I accept I'm not in the majority here.
    Even though I know almost nothing of computer rendering, I really liked your clear, concise and easy to grasp presentation here!

  • @smokedmeats5506
    @smokedmeats5506 Před 17 dny +4

    This so so fascinating and well made, i started working on godot at the end of last year, but you are running laps around my head with the technical terms, great stuff, subbed maybe you will share more stuff to learn

  • @JDsenrandir
    @JDsenrandir Před 16 dny +2

    This is so cool. Especially that you documented your work in a paper. Thank you very much!

  • @debooger
    @debooger Před 16 dny +2

    youre showing it in such a fun way! and youre a sphynx cat so extra points for that

  • @Kian00
    @Kian00 Před 12 dny +1

    I could totally see this effect when combined with other camera artifacts like lenses distortion, grain, and light bokeh could lead to a very believable in-universe camera.

  • @CameronOwen101
    @CameronOwen101 Před 14 dny +1

    Nice work mate, don't know how this ended up in my feed but I'm glad it did. Subbed for more.

  • @RayznGames
    @RayznGames Před 16 dny +2

    That was absolutely smooth mate! Great video!

  • @JackTheFoxOtter
    @JackTheFoxOtter Před 17 dny +2

    This is a really interesting approach with a pretty exceptionally looking result. Awesome work!

  • @sentinelav
    @sentinelav Před 17 dny +4

    Looks incredible mate! Love that this was a self-driven pursuit.

    • @sphynx_owner8224
      @sphynx_owner8224  Před 17 dny +2

      Would not have done it if it wasn't interesting at least. Thank you!

    • @sentinelav
      @sentinelav Před 17 dny +1

      ​@@sphynx_owner8224 I've been into 3D, VFX and games forever, and I've never come across such a strong solution. Spent plenty of time thinking about it too! Short only of managing to include curve information for rendering wheels and such, this is the best realtime solution I've ever seen.
      I'll be dropping a personal invention in a similar spirit fairly soon, though it relates to colour, not motion blur. Keep showing them what's possible without a bloated budget!

    • @sphynx_owner8224
      @sphynx_owner8224  Před 17 dny +1

      @@sentinelav Its awesome to hear you have your own invention you can share with the world as well. As for the wheels, its an inherit limitation of having an instantaneous linear velocity buffer and not being able to sample it in infinitely small intervals, thus it is handled separately in any industry standard implementation. I am working on that as well with the focus of just getting it working well.

    • @sentinelav
      @sentinelav Před 17 dny +2

      ​@@sphynx_owner8224 Yes, the instantaneous velocity aspect is definitely at the core of the problem.
      My thinking was that if you sample the current velocity and that of the previous frame, you could determine a curve to average across, instead of a linear path.
      The idea would be to project the vectors from the current frame to points on the previous frame. From these points, the *change in vector direction* would be determined. You'd be leveraging the fact that with two vectors, you'd essentially have enough information to draw a bezier curve.
      This is the concept, but in practice, I have no idea how to go about the implementation as I'm not *really* a shader programmer. I'd love to know your thoughts on the practicality of something like this!

    • @sphynx_owner8224
      @sphynx_owner8224  Před 16 dny +1

      I have given thought into that, and was able to extract things like curl coefficients into a texture, the problem is that my experience is rather limited with this, and it seems unrealistic to pursue currently. It WOULD be cool if I was able to take care of curves and wheels in the same blur, but it seems like radial blur for wheels is a safer approach.

  • @DoctorMelon
    @DoctorMelon Před 17 dny +2

    Really great video - and a really great and performant motion blur technique!

  • @SongeLeReveur
    @SongeLeReveur Před 16 dny +2

    Saw the screen at 6:02 and immediately thought "Yeah, you're going the JFA way!". Awesome work!

  • @PesceA
    @PesceA Před 17 dny +15

    Nice. I'm not aware either of using JFA for motion blur, but it's been a while since I've looked. Jimenez motion blur for Call of Duty should still be among the state of the art. I'm not persuaded about the idea of "non-centered" motionblur and its effects on sickness, fwiw we've found that a good way to control motion sickness is to allow separate controls for camera motion blur versus object motion blur. Motionblur if you think about it physically, you should generate all intermediate images from the beginning to the end of the frame shutter time, and average them (in fact you can do exactly that, with brute-force sampling, to get a ground truth image easily) and so if an object is moving at a constant velocity during the exposure time, it will have a motion blur streak that starts from its position at the beginning and extends to its position at the end. The object appears "centered" in the image because at the center you have the most overlaps, while at the begin/end you didn't capture the object before that and after that, so there is no "trail" there. This is true only when you are simulating something that exposes into frames, e.g. film and so on, you can reason that eyes probably don't have a global shutter and so they work differently - maybe there is something there, perceptually might be better to motion blur in different ways, not sure. Lastly. I've skimmed your paper and watched the video, it's hard to tell whether or not this method ends up having more or less artefacts than the current state of the art - because in the end we always rely on heuristics of one kind or another, and the "devil" is exactly in these. You have to guess what direction is important, as most MB methods store only one (and there is room there for improvement!), and you have to hallucinate what is behind a moving object (disocclusions), as you have only one color buffer, and it's not easy to tell how your technique fares with these inherent problems of using one velocity and one color. The paper could use a few passes to make it more clear and readable in general, but if (IF!) you want to improve it, I'd suggest to focus a bit more on the heuristics. Good job!

    • @sphynx_owner8224
      @sphynx_owner8224  Před 17 dny +6

      There's a distinction that needs to be made between a symmetrical motion blur and Centered motion blur. A good motion blur would appear symmetrical around the core of a blurred object, but that center of the blurred object would be between where it is in the current frame and the past one. Centered motion blur does not average values in the past of an image, to heuristically get close to the average of all intermediate stages between the current frame and the last, but it does it half in the past, and half in the future, sort of extrapolating it beyond any potential path it may take. I think I do a pretty good job of laying it down in the video, but the final point is that it's center is around the object position in the current frame, where in reality it would be between the position in the current and the last frame, thus to my knowledge less accurate, and why I said what I said about it. I also laid out the reasons to have it from a technical motivation standpoint, which is not negligible.
      I hope to get close to any state of the art when it comes to robustness of the technique and quality of the final result, and while I'm presenting it here, I am still going to work on it a lot more as its very new still. The reason I even released all that I did about it is because I have to if I want it play-tested and eventually added to Godot, meaning it has to be public and under MIT. And since the video uploaded I have added to it quite a bit with the help of testers in the community.
      I appreciate the feedback regarding the video and paper. I at least suggest you watch the video in its fullest to get my point about centered blur, but I understand the lack of clarity, as I did not expect this to be on the same level as a proper academic video, and just do the job of communicating my very new discovery.
      You are correct to say that my motion blur is far from a perfect simulation of a real one, but compared to the state of the art, I believe I have found something special, which is why I even went to this length presenting it to the world. You are correct to assume that there are artifacts, but the fact of the matter is that for the artifacts you need to handle and tune out (and fix), you get an effect with an unmatched fidelity and resolution compared to the previous techniques that I have showcased, and with a complexity curve that is unheard of with those techniques either.
      As for the paper, I know its not perfect, but I'm also unsure where to improve it and solidify it, so I would accept any criticism/corrections and would change it accordingly. Especially since I come up with improvements to the technique very often.

    • @PesceA
      @PesceA Před 16 dny +1

      ​@@sphynx_owner8224 So I agree that in practice MB does this slightly wrong thing of using a motion vector that is from this to last frame (backwards finite difference), and then interpreting that velocity as "half in the past half in the future". And that for the pragmatic reason that you know the motion blur should be "symmetrical" as you say, so it makes sense to "expand" the object color half/half, whilst it's impractical to determine the direction of that expansion using velocity that matching - half in the past, half in the future, as you'd need to compute and store an extra set of transforms (two to compute the velocity half/half and one to compute and render the "center" object position).
      Thinking of it - one could actually compute only two transforms - this frame and previous - and then render object color by averaging them, thus creating a color image that is "correctly" in-between. This would actually be very easy to do, conceptually, but a bit of a pain to patch everywhere transforms are passed in an engine I suspect, and most importantly, I doubt this is an important source of error. I might be wrong though! Might be fun to experiment, maybe making a quick prototype.
      I did watch the video, and I think I get (hopefully) the centered argument, it is very interesting indeed for a lot of other reasons too.
      Re: the paper - there are improvements that can be made simply to its wording used (eg I don't know what a "sharp" input buffer is - full resolution maybe?) and style (the code for example is quite ugly in its formatting and also relatively not optimal both in terms of performance and in terms of style), but these matter less... The thing that would imho matter the most is to explain clearly all the heuristics used with the motion vector JFA logic. E.g. "I use complex sets of conditiions that take depth and velocity directionality into account, some are non-continuous" - these would be nice to know more about (e.g. sample_fitness...).
      You talk of things like "perpendicular offset" and "parallel threshold" and then "perpendicular threshold" - none of these things are clear to me. Perhaps they would if I spent more time with the code - but those kinds of things are where I'd spend more time, maybe some illustrations etc.
      Good luck!

  • @wo262
    @wo262 Před 16 dny +1

    Aw man, you actually gave me hope that you solved the general case for curved motion blur. In all seriousness, great job!

  • @stephenbaldwin7165
    @stephenbaldwin7165 Před 16 dny +1

    Great work! Looking forwards to seeing it in games real soon!

  • @kebrus
    @kebrus Před 16 dny +1

    Easily subbed. Very concise. Keep up the good work, you are going places if you want to.

  • @ICloud1vfx
    @ICloud1vfx Před 17 dny +9

    you would be a great teacher.

  • @RaigyoEcU
    @RaigyoEcU Před 16 dny +1

    I love it, that end result it's just amazing

  • @kiwi3085
    @kiwi3085 Před 18 dny +4

    Hey, thanks for this! I haven't seen any games approach motion blur like you have, and to be frank I think you have the nicest looking motion blur to date. It manages to communicate fast motion without obscuring the image like most current motion blur does. I could definitely see myself using this in games if the option was available!

  • @MustafaBerkeGureltol
    @MustafaBerkeGureltol Před 16 dny +1

    Great video with great attention to detail. Well done.

  • @felixgeen6543
    @felixgeen6543 Před 17 dny +3

    Great job! I was really impressed by your tenacity with this project and to bring it to completion must feel great. I’d love to talk to you about a project idea I’ve been thinking about for some time, but unable to find someone with the programming skills and interest to help me realise it.

    • @sphynx_owner8224
      @sphynx_owner8224  Před 17 dny +1

      Its not completed but getting it to a presentable state and showing it to the world had me shaking and crying in excitement. I would love to hear about that project idea of yours, but I cannot guarantee anything regarding being capable enough to pursue.

  • @MommysGoodPuppy
    @MommysGoodPuppy Před 14 dny +1

    beautiful work, hope this will be adopted in the industry

  • @Pockeywn
    @Pockeywn Před 17 dny +2

    amazing work. great video. this channel will take off i can feel it

    • @sphynx_owner8224
      @sphynx_owner8224  Před 17 dny +1

      I'm just happy people enjoy this video, it means a lot to me.

  • @hamishpain8641
    @hamishpain8641 Před 16 dny +1

    Hah this is a great solve for realtime motion blur! Back at uni I did my final year thesis on general motion blur (both in generating it algorithmically and performing velocity estimation from observed motion blur), and I would have been stoked if I'd come up with+refined anything as clever as this. Congrats

  • @sanketsbrush8790
    @sanketsbrush8790 Před 16 dny +1

    This video will help a lot of game developers out there , from solo indie beginners to big commercials 👍

  • @arthurbergamaschi
    @arthurbergamaschi Před 16 dny +1

    honestly, this is impressive, great job!!

  • @PancakesTheDragoncat
    @PancakesTheDragoncat Před 16 dny +1

    This is some really impressive work!

  • @alesjelovcan6810
    @alesjelovcan6810 Před 17 dny +2

    awesome presentation and visuals!

  • @bunnybreaker
    @bunnybreaker Před 17 dny +3

    I was coincidentally reading the thread yesterday. Slick stuff indeed 👍🏽

    • @sphynx_owner8224
      @sphynx_owner8224  Před 17 dny +1

      Thank you! Care to elaborate which thread you saw this on?

    • @bunnybreaker
      @bunnybreaker Před 17 dny +1

      @@sphynx_owner8224 It could have been reddit and/or github. Not sure, but I definitely saw some of your other videos and posts there.
      Got yourself a sub 👍🏽

  • @fnytnqsladcgqlefzcqxlzlcgj9220

    Keep going, love your stuff!

  • @pulmonary_yoghurt
    @pulmonary_yoghurt Před 17 dny +2

    Good work! Thank you for sharing this.

  • @paranormalgamesstudios
    @paranormalgamesstudios Před 16 dny +1

    looks awesome and natural.

  • @Splarkszter
    @Splarkszter Před 16 dny +1

    Thank you for this! Really awesome!

  • @SLPCaires
    @SLPCaires Před 16 dny +1

    Great work! 💪

  • @tunmixx
    @tunmixx Před 17 dny +1

    Amazing! Thanks keep on good work

  • @Gasimo
    @Gasimo Před 17 dny +1

    Nice approach!

  • @iestynne
    @iestynne Před 15 dny +1

    Excellent video!
    Also really glad to see the JFA algorithm getting some more love.

    • @sphynx_owner8224
      @sphynx_owner8224  Před 15 dny

      underutilized I say

    • @iestynne
      @iestynne Před 15 dny +1

      Definitely. Probably because it's so counter intuitive. But that's what makes it a great insight.
      The recent Radiance Cascades idea has a similar feel to me.

  • @suricrasia
    @suricrasia Před 15 dny +1

    excellent work!

  • @Thomas_Lo
    @Thomas_Lo Před 17 dny +1

    very interesting, very compelling, instant sub

  • @iodinex64
    @iodinex64 Před 19 dny +10

    Fascinating stuff, excellent work!

  • @wasteurtime5677
    @wasteurtime5677 Před 11 dny +1

    I don't give a shit if you dropped out elementary school. DUDE YOU ARE TALENTED !!

  • @gaia35
    @gaia35 Před 17 dny +1

    it's good that you took your time to do proper research.

  • @woodyfentress
    @woodyfentress Před 16 dny +1

    Nice work congrats

  • @bs_blackscout
    @bs_blackscout Před 15 dny +1

    You dropped out of HS and wrote a paper? Damn that's really surprising and impressive!
    Despite being about to finish college I cant stand academia and writing paper and research. It's boring, I'm too hands on, too practical and impatient. Kudos!

  • @Jayensee
    @Jayensee Před 16 dny +1

    Great video!

  • @KillahMate
    @KillahMate Před 14 dny +1

    Plenty of comments here make it clear to me that what people hate is camera motion blur, but they don't necessarily know what that it is or how it differs from object motion blur.

  • @messiah4776
    @messiah4776 Před 16 dny +1

    looks awesome, most high school graduates couldn't put this shit together, well done friend

  • @nebuchadnezzar916
    @nebuchadnezzar916 Před 16 dny +1

    Beautiful presentation. I hope you do make it to GDC and do a talk!

  • @Chubercik
    @Chubercik Před 17 dny +1

    This is crazy good 🔥

  • @kerrvfx
    @kerrvfx Před 5 dny +1

    lovely stuff

  • @Super.Whimsy
    @Super.Whimsy Před 17 dny +1

    Beautiful! 🎉

  • @chaquator
    @chaquator Před 17 dny +1

    great work

  • @UncoveredTruths
    @UncoveredTruths Před 17 dny +3

    looks good, research in this direction is a good idea as most sota approaches are still very unappealing

    • @sphynx_owner8224
      @sphynx_owner8224  Před 17 dny +2

      I understand the distain that people have from motion blur effects, and its why I took such a stand on common practices in state of the art motion blur effects and avoided them such as centered blur. I hope and aim for my method and final product to stand out in its tolerability.

  • @Shack263
    @Shack263 Před 17 dny +4

    Thanks for sharing your work! It's very inspiring. I wonder if this technique could be extended for radial motion blur. That's probably much more complicated. For racing games, linear motion blur makes wheels look very strange, and I think it's important to make it look good for that genre.

    • @sphynx_owner8224
      @sphynx_owner8224  Před 17 dny +4

      Radial motion blur needs separate treatment all around (no pun intended), but I do have it on my sights regardless because its has to be added to the implementation that makes it to Godot. its is a rather confined effect that has a very specific use case, so ill just aim to getting it working well.

    • @Shack263
      @Shack263 Před 17 dny +1

      @@sphynx_owner8224 I look forward to seeing what you develop!

  • @Jyve
    @Jyve Před 17 dny +1

    This is so incredible. /applaud.

  • @--waffle-
    @--waffle- Před 15 dny +1

    excellent video

  • @plyczkowski
    @plyczkowski Před 17 dny +4

    Great work! People only notice motion blur when it's crappy and deduce 'all motion blur bad'. When it's good the they just deduce that the game looks good

  • @m.sierra5258
    @m.sierra5258 Před 12 dny +1

    What nobody talks about is that motion blur in games negatively interferes with the fact that monitors don't strobe, but instead display the image for a certain period of time, further creating a blur on objects that move across the screen. That's the reason I disable motion blur, because both of those effects together are just simply to much for me.
    On the other hand, if your screen would be strobing, it would be possible to follow a moving object with perfect clarity with your eyes. There's is no reason to reduce clarity with an artificial motion blur. Reality does not have motion blur. If you follow a moving object with your eyes, it appears completely clear.

  • @capitaoglobin
    @capitaoglobin Před 16 dny +1

    Nice video! I really wish it showed the performance impact compared to other motion blur techniques.

  • @harelshakedgolan4726
    @harelshakedgolan4726 Před 19 dny +2

    great explanation, amazing work!!!
    keep it up

  • @asparagii2953
    @asparagii2953 Před 17 dny +2

    This is really nice! You should clean the paper up a bit and put it on the arxiv! The approach is very interesting, you might get some traction there :)

    • @sphynx_owner8224
      @sphynx_owner8224  Před 17 dny +1

      Thank you! I wish I knew how 😅

    • @asparagii2953
      @asparagii2953 Před 17 dny +1

      @@sphynx_owner8224 The first part is to register! Sadly, you might need endorsement if you don't have an institutional affiliation (just write "independent researcher"), but it's worth trying :)

  • @Vaasref
    @Vaasref Před 6 dny +1

    A zoomed in slow motion side by side with like 30, 60, 90 and 120fps would be great to judge of the quality of the effect with the same settings as well as the optimized number of passes for each.
    An other thing to look at is how it handles inconsistent framerate and frametime spikes, does it feel jarring then ?
    Does it play well with animation that are at a much lower frequency as the framerate, maybe the added smoothness of the frames with movement makes the frame in between.
    How does it handle jittery objects (like Bethesda physics) ?
    Having some control over the strength and distribution blur could be very interesting. Instead of only being a blur it could be used to create more of a smear effect, dilating the object more than distributing its light.
    If it looks good it could add a lot of artistic potential to Godot games that can't compete in the photorealism with other game engines.

  • @RandomProduct
    @RandomProduct Před 16 dny +1

    Great video! Really impressive stuff, even more so considering your background (or lack thereof?)
    Also, call me old, but I always turn motion blur off, because video games just look sharper and nicer without it, like they used to lmao

  • @CPSPD
    @CPSPD Před 16 dny +1

    OMFG you explained what I’ve always wanted to know: why does unreal engine 4’s (especially) motion blur look so stupid by default. Extending the silhouette past the object’s position is like 90% of its weirdness to me.

  • @BenedictLazaro-p2m
    @BenedictLazaro-p2m Před 5 dny +2

    Didn't watch the full video but Impressive

  • @drelurean-kg9ej
    @drelurean-kg9ej Před 12 dny +1

    Amazing!!!

  • @iFukuyama
    @iFukuyama Před 17 dny +1

    Looks really nice, but I wish you had spent a bit of time comparing it to fast existing techniques in terms of performance. At least in the paper version. Brilliant work never the less, and thank you for releasing it under such a permissive license.

  • @jesstech
    @jesstech Před 14 dny +2

    I think it's important to make a distinction between "camera motion blur" which applies to the velocity vectors of the environment when the camera is turned, versus "per-object motion blur" which applies instead to an object's animation. As others have pointed out, it's the disconnect between the parts of the environment that the player's eyes are tracking and the motion blur applied to those elements that causes this kind of motion sickness. The solution to this is to disable motion blur applied to the environment by changes to the camera or the velocity of the player character. But per-object motion blur applied to animations is hugely important for selling a naturalistic look and keeps things from looking like a hyperreal arcade game. Most games sadly offer only a single toggle to disable motion blur altogether for both the camera and object animations. I wish more developers understood this critical difference.

    • @sphynx_owner8224
      @sphynx_owner8224  Před 13 dny +1

      It is understood in this case, and in the future if i follow through, you would be able to select coefficients for each component of a velocity separately, that is the camera part of the velocity for the object and the object's world velocity. If that does not work worst case you would be able to turn them on and off separately.

  • @NoSoyMako
    @NoSoyMako Před 16 dny +1

    GODOT IS GETTING MOTION BLUR BEFORE GTA 6

  • @toxiccan175
    @toxiccan175 Před 14 dny +1

    It would be awesome if this was polished and optimized, then integrated into mainline. Very cool!

    • @sphynx_owner8224
      @sphynx_owner8224  Před 13 dny

      Agreed. I've been working hard on making this a reality and I hope it would be.

  • @ariorick
    @ariorick Před 14 dny +1

    Nice!

  • @ginqus
    @ginqus Před 16 dny +1

    FREE GODOT ADDON LETS GOOOOOOOOOOOOO THANK YOU

  • @Bendoescamera
    @Bendoescamera Před 12 dny +1

    This would be amazing to implement in Blender

  • @garlic-os
    @garlic-os Před 17 dny +1

    Hallellujah! Motion blur that doesn't look ugly! You've done it!

  • @pottuvoi2
    @pottuvoi2 Před 17 dny +1

    Lovely work.
    If there is need for ground truth implementation for comparisons, I would suggest old good accumulation buffer.
    Render n images during the time shutter is open and average result.
    Can be used for AA and DoF as well. (As seen in Gran Turismo camera mode.)

  • @addmix
    @addmix Před 4 dny +1

    Seeing the greattl things you have achieved has renewed my inspiration. I too was a hughschool dropout, now trying my hardest to use godot ro the best of my abilities.

    • @sphynx_owner8224
      @sphynx_owner8224  Před 4 dny

      I have visited your channel now, and I'm very impressed, subscribed!

  • @aweidenhammer
    @aweidenhammer Před 17 dny +2

    Nicely done. I would ask for a full screen result video clip though. It’s a bit hard to tell if there are artifacts on the 1/4 screen.

    • @sphynx_owner8224
      @sphynx_owner8224  Před 17 dny +1

      thank you. There is a full screen demo video I uploaded on my channel just before this one, but if you want you can do one better and try out the demo I have linked for yourself!

  • @normaalewoon6740
    @normaalewoon6740 Před 15 dny +1

    In unreal engine, it's obvious that thin foreground objects are not blurred outside their boundaries during camera rotation. This new method sounds promising.
    I'm not a fan of 'filmic' motion blur, but I like to use motion blur during fast camera rotation and disabling it with slower or no rotation, based on a curve. It's easy to implement and it could bridge polarized opinions. It's close to eye movement compensated motion blur, which is the perfect implementation because it blurs things that move in your eyes, rather than on screen only.
    I use backlight strobing with a high vertical total as well, together with perfect frame synchronization (v-sync & fps=hz=fps limit), so it looks even more like 1000 hz. I hope there will be sample and hold correction based on eye movement in the future. It uses an eye tracking device to update the position of each frame on screen as fast as the monitor is capable of. This minimizes sample and hold blur, more specifically the shifting of lower fps frames in your eyes when looking at moving objects (because your eyes don't stop moving 100 times per second to capture each frame sharply).
    If all of this sounds complicated and confusing, it is. Motion clarity is not simple to achieve, but it pays off in the end. The blurbusters website and the r/motionclarity subreddit are great recources on the topic.

    • @sphynx_owner8224
      @sphynx_owner8224  Před 15 dny

      This is also an idea i had. And one that is unintentionally present in my implementation, as the larger step size multiplier dictates the size of velocity in pixels that is required to be picked up by the dilation. I need to fix that, but i would still implement it as its own feature. A screen enthusiast like what i assume you are would probably not need this in all fairness, as 1000 hz is basically real life 🤣. Other techniques that were suggested and are on the agenda are center fade of the blur, to keep the center of the screen generally sharp, and all these solutions can coexist.

    • @normaalewoon6740
      @normaalewoon6740 Před 14 dny

      @@sphynx_owner8224 I just use a blueprint to calculate the camera rotation speed, make a threshold curve out of it and set the motion blur intensity with that. Another solution could be to do this per pixel on the GPU, to better discriminate still pixels from moving ones.
      Also, I do need the best motion blur that is available. I'm not rendering 1000 fps, just 100. Motion blur is one of the things that make it look like 1000 fps, but glitches are well visible at 100 fps and break the illusion.

  • @KarolOfGutovo
    @KarolOfGutovo Před 10 dny +1

    This while probably annoying in normal gameplay for reasons SirRanjid outlined, would work awesomely with photo-mode.

  • @aperturescience7297
    @aperturescience7297 Před 17 dny +2

    here before viral
    ps: You should be proud of yourself, outstanding video, I understood most of it and im kinda slow 💀 so big ups to you and your channel 😁