![Sphynx_Owner](/img/default-banner.jpg)
- 180
- 104 348
Sphynx_Owner
Registrace 30. 04. 2012
Godot Seamless Portals Remaster (Recursion, Mesh Splitting)
Someone asked me how I made the one from an older video, and I thought it would be a fun challenge to do a remaster.
get as addon here (demo included): github.com/sphynx-owner/portals-plugin
There are a few ideas in my mind for where to improve upon this. It's still limited due to lack of custom clip plane, among other things.
get as addon here (demo included): github.com/sphynx-owner/portals-plugin
There are a few ideas in my mind for where to improve upon this. It's still limited due to lack of custom clip plane, among other things.
zhlédnutí: 147
Video
Drift Hover Motion Blur
zhlédnutí 658Před měsícem
This turned out way more addictive than I expected. Just a little game to showcase the blur at its finest download and play: drive.google.com/uc?export=download&id=1grbjLxJNqcXRDy4FETm8jvPNk90GNcw6 version with edge artifacts fixed: drive.google.com/uc?export=download&id=1a1TVX1u1B1NOYSm685osuEebVke6SF_l Controls: wasd-move t - toggle blur z - toggle debug view x - freeze frame c - scroll debug...
To Blur Spinning Things
zhlédnutí 4,9KPřed měsícem
Hope you guys enjoyed this one! Demo repository: github.com/sphynx-owner/JFA_driven_motion_blur_demo?tab=readme-ov-file Addon repository: github.com/sphynx-owner/JFA_driven_motion_blur_addon Godot 4.2 addon: github.com/sphynx-owner/Sphynx-radial-motion_blur-toolkit-for-Godot-4.2/tree/master Previous video: czcams.com/video/m_KvYlYF3sA/video.html Sources: czcams.com/video/vh8XUyrojFM/video.html ...
How I Solved Real Time Motion Blur
zhlédnutí 47KPřed 2 měsíci
Demo: github.com/sphynx-owner/JFA_driven_motion_blur_demo/tree/master Addon: github.com/sphynx-owner/JFA_driven_motion_blur_addon Paper I wrote on the matter: drive.google.com/uc?export=download&id=1AIhUjVaJCwRsbfv1POLk-7qbw-p10-_N Sources used in this video: docs.unity3d.com/2017.4/Documentation/Manual/PostProcessing-MotionBlur.html john-chapman-graphics.blogspot.com/2013/01/per-object-motion-...
Godot Motion Blur (New Environment, Great Progress)
zhlédnutí 1,6KPřed 2 měsíci
The low framerate is because of the high detail environment, I get it even by default, and if anything its a great stress test for this motion blur effect. The large pauses are me taking interesting snapshots on purpose. As you can see, I have created a high detail, high fidelity, high quality, robust, and believable motion blur effect that works under various stress tests. Important to note th...
Godot Motion Blur Daily Progress (And A LOT of it!!)
zhlédnutí 250Před 2 měsíci
Everything is really taking shape! I cleaned thing sup, mitigated ghosting substantially, and introduced noise to the blurring for professional looking transitions. I am really happy with how it looks. You may say it looks ugly at low framerate, but that's correct. The idea is that I get is as best as I can at those framerates, and then when you play at normal ones the experience would be perfe...
Godot Motion Blur Demo Great Progress!
zhlédnutí 166Před 2 měsíci
There's still quite a bit of ghosting, and I will work on that next. Most of the work was to get to this point where objects blend onto the background acceptably. The effect is 90% there, with the last 10% being the hardest, of course.
Motion Blur In Godot (Huge Progress!)
zhlédnutí 242Před 2 měsíci
A substantial jump in quality since last video. I am really happy with it so far as I finally found a method I can stick to.
Godot Experimental Motion Blur
zhlédnutí 131Před 2 měsíci
The base version came with the request to improve on it. My version aims to improve upon it. In this first iteration, my focus was to improve the objects blending onto the background. At sensible speeds this effect is achieved quite well, but the limitations are plentiful.
UI Dissolve/Burn Effect (GODOT 4 Tutorial)
zhlédnutí 170Před 2 měsíci
example project: drive.google.com/uc?export=download&id=1B_p8FkHLORX5hY6drhj8Lp-DoFtE7D24 thank you for watching
Huge Update! (Custom Cursor, Clean UI, New Game Mode, and more...)
zhlédnutí 186Před 3 měsíci
link to game: shpynx.itch.io/the-rhythm-challenge Discord: discord.gg/WKtZRMNmA4
Big Update on The Rhythm Trainer (custom song folder, song creation...)
zhlédnutí 154Před 4 měsíci
link to game: shpynx.itch.io/the-rhythm-challenge Discord: discord.gg/WKtZRMNmA4
YOU CAN NOW MAKE YOUR OWN CHARTS
zhlédnutí 146Před 4 měsíci
link to game: shpynx.itch.io/the-rhythm-challenge Discord: discord.gg/WKtZRMNmA4
2 NEW Modes in my Rhythm Trainer
zhlédnutí 149Před 4 měsíci
link to game: shpynx.itch.io/the-rhythm-challenge Discord: discord.gg/WKtZRMNmA4
I Added OSU! to the Rhythm Trainer
zhlédnutí 9KPřed 4 měsíci
well, an OSU! proxy to be more accurate. join the discord for updates and suggestions link to game: shpynx.itch.io/the-rhythm-challenge Discord: discord.gg/WKtZRMNmA4
Playing a Rhythm Benchmark until I get to 100 (Link below)
zhlédnutí 424Před 4 měsíci
Playing a Rhythm Benchmark until I get to 100 (Link below)
Mobile-app style Puzzle game prototype
zhlédnutí 49Před 4 měsíci
Mobile-app style Puzzle game prototype
Dungeon Layout Generator (Square and Hexagonal tiles)
zhlédnutí 86Před 5 měsíci
Dungeon Layout Generator (Square and Hexagonal tiles)
Simple, Concise and Versatile STATE MACHINE in Godot 4 (Tutorial)
zhlédnutí 84Před 5 měsíci
Simple, Concise and Versatile STATE MACHINE in Godot 4 (Tutorial)
Godot Realistic Airplane Physics progress
zhlédnutí 325Před 7 měsíci
Godot Realistic Airplane Physics progress
DIY Path Finding with real enemies first test
zhlédnutí 77Před 7 měsíci
DIY Path Finding with real enemies first test
Shockwave shader and Pathfinding algorithm
zhlédnutí 81Před 7 měsíci
Shockwave shader and Pathfinding algorithm
That is insanely smooth, wow. Would love to hear a technical explanation on how this works
Appreciate it. I think Sebastian Lague did a pretty good job already covering portals in his video. This implementation uses the same principles but with a few hacks in place to conform to Godot's limitations. As for the third person support, feel free to have a look at the source code that I linked its very specific to Godot and that demo and is not worth a video.
Hey sphynx just want to say how much your motion blur is carrying my game Do wonder though, I keep getting errors and it breaks whenever I try to change scenes is that normal?
I am glad it suits your game. I saw your message in the work group so will help you there.
this is incredible you are so talented
Where can I get this environment?
github.com/sphynx-owner/JFA_driven_motion_blur_demo
@@sphynx_owner8224 thank you so much
I had to come here again because I thought of something that might fix general rotational blur. My original thought was: "What if we knew the rotation axis of any object, then we could correctly sample in a circle without the sampling deviation", which I realize you already covered in this video. I did extend this thought though to how this could be pulled off for any general frame. My general idea would be to have a second full frame buffer similar to a normal buffer, but with every pixels r, g and b value indicating the worldspace rotation axis of rotation. Though thinking about that, that would require two buffers, one for the rotation vector and one with a vector pointing towards the rotation axis. Maybe it could be compressed into one rbga buffer by using a quaternion, though I am not familiar enough with them to decide if this was possible. So this approach may need two extra buffers. Of course the second issue is how to find the rotation axis to populate the buffer with. My first thought was using the position of our point on the last frame and this frame to compute the rotation axis, but that would be a screenspace rotation axis, so kinda useless. However, the CPU doesn't send mesh data to the gpu again every frame for an object that rotated. instead it sends a quaternion to encode the rotation and the vertex shader does the actual rotating. So if we write a custom vertex shader that captures this information, possibly also this information for the previous frame, and put it into a struct that we pass on to the fragment shader, we could create the rotation axis and rotation axis offset buffers by doing a bit of extra computation. This for sure is the most expensive option out of all methods provided, but it would have the benefit of being generally applicable without artist-authored blur meshes. What do you think of this? might this work?
you would still need geometry to be rasterized around the space the mesh sweeps through, which would still require some encapsulating mesh. Also i have no access to the vertex shader and any additional buffers from GDShader, so i cannot write to custom buffers from surface materials.
I love your passion however, this is a very impressive suggestion.
@@sphynx_owner8224 yeah. The motion blur would be a post processing effect sampling the final image according to the information in the rotation buffers. Finding enough space for two extra buffers and fitting a custom vertex shader onto every single object in the scene could be rather difficult, likely the simplest way to accomplish it would be to make the camera render two more unlit passes which render the needed information to the two buffers. That part of it would be possible in unity I believe. Passing extra information from the vertex shader may get a bit annoying as one might run out of keywords. Maybe a global buffer would work, this would likely be very engine dependent and complex. But I think it has potential.
@@sphynx_owner8224 I thought about it a bit more. If it is possible to define custom buffers, one could get away without any textures. One would use one of the few free spaces in the v2f struct, maybe TEXCOORD2 (varyings in godot I think). which contains an index representing the currently drawn model. This index in the custom buffer would correspond to the float4x4 rotation/position etc matrix of the model to be accessed in the blur shader. If processing of the matrix for faster per pixel execution is needed, this could also be done in the vertex shader before committing the transformation matrix to the buffer. This way the matrix is only stored once per object, not once per pixel, which makes a whole lot more sense memory wise. Injecting the custom shader may be possible by using Camera.RenderWithShader() in Unity, not entirely sure if that can include vertex shaders, but it does look like it. I'm currently stuck deep in other projects, but maybe this approach could be something you can implement? Otherwise I'll probably look at this idea again eventually:tm:
very good!
Now that Compositor effects are a thing in 4.3, how is this going to affect how you will make your motion blur?
this motion blur is only possible in 4.3. The videos you see of it are from the beta version.
@@sphynx_owner8224 ohhhhh, fair enough! Still super cool nevertheless
Moral to the story: drop out of school, kids!
Ive tried the plugin with terrain3d and it causing some flickering in and out - wondering if its just me, but has anyone tried the plugin in terrain3d?
is your project double precision build?
@@sphynx_owner8224 No haven't messed with that.
@@sphynx_owner8224 No it's not.
Looks yucky as always
Motion Blur will always suck because artifically re-creating an eye-based issue while the eye is not having issues at all is always distracting. You can't fix that.
cool. so do you think this could be usable in 2D games, too? and if so, would you recommend it?
Cool, But could you upload a link to the uncompressed video footage, because The resolution is so low and the low bit-rate rushed the image.
you can try the demo (improved and updated since) for yourself! or test the addon on any existing project you have, which would be much better i think.
The best implementation of motion blur in games is to never use it at all except in cutscenes. Monitors have enough motion blur by themselves. Maybe you like the effect, but here's the thing, nobody wants blur in counterstrike that hides the opponent. Nobody who buys a 4090 wants some developer to SMEAR VASELINE all over the screen so they can't see the details of raytracing. We're NOT watching a movie, we're playing games.
I deeply appreciate your work. Motion blur that matches real life is my dream. BECAUSE, to me any frame rate above 30fps looks fake. There is a reason why 24fps is used for movies and that is because when they shifted to 60fps for TV, everyone thought it looked fake. Why? Motion blur. 24fps films are the most natural looking motion blurs and for this reason, we desperately need to emulate the motion blur that occurs in 24fps film. The end goal is reality and the pathway there is realistic motion blur.
There's no such thing as the perfect frame rate The same way there's no such thing as the perfect resolution Frame rate is just temporal resolution In general, the higher the better
The only reason why 24 FPS is the standard Is because back in the day of film we needed a way to record as much temporal resolution while still using the least amount of film per second 24 was just the sweet spot of extracting as many minutes out of a roll of film while still having relatively smooth motion
nice work
nice work
when will it release
its already out github.com/sphynx-owner/JFA_driven_motion_blur_addon
Do you reckon it's possible to use it to make your own pre-rendered animated sprites from that? so you get the best of both worlds, where it uses that in an empty world/green screen, and creates the animated sprite from it in real time then what you see is the pre-rendered sprite animation, which won't have the deformation the shader has when rendered over things.
I don't know. You would definitely lose a lot of the information cause its no longer in 3D
@@sphynx_owner8224 i mean you can always have 4 variations at 22.5° steps from front to sides, and have the result be a mix of the two nearest with some paralax stuff
I dont know why, but i feel like Crysis 1 (the original PC version) had one of the best implementation of motion blur czcams.com/video/KVmc2P2PPRw/video.html It's suddle, the silhouette is almonst unnoticable. I really loved t..later, industry started to implement some cheaper version of it.
And then after 9000 developer-hours invested 99% of gamers turn it off.
Amazing video, glad it appears on my feeds ! But now I want to test it on my end and see what's going on. I've seen the demo is under CC4 but I've also seen it was for proprietary use for Godot Engine in the paper. So I'm a bit confused about what I should do if I want to implement it in a personal project of mine (let's say a Game Engine for example) Aside from this, again, incredible work and research. Really mind opening
I misused the word proprietary. its under MIT license
@@sphynx_owner8224 Very good to know, thanks a lot !
I do suggest that you wait a bit I'll be releasing a much better version very soon which would include a more robust and performant set of implementations for you to choose from
do i understand correctly? blur is not perceivable by human eyes by default, it's only a bug in our hardware (cameras), and we for some reason want to port it also to games?
@sphynx_owner can you elaborate? It was an actuall question ; p
...no. Motion blur is an inherent property of any photographic device, including your own eyes. Unless you manage to build a camera that captures a single photon for each pixel, but good luck with that. Virtually every movie in existence has motion blur in it, including animated ones. So yes, there's a reason why we simulate it. Unless you're playing competitive shooters, it looks objectively more appealing and natural.
Nerd
If its possible it would be nice if motion blur can be detached from the scene. As in, motion blur applies to everything except: enemies if there are enemies, anything beyond ~5 or 10 meters away from the camera, see through patterns/transparent materials like dirty windows and chain fences and camera movement that isn't forward (whip pans don't have motion blur but moving forward does) Project CARS 3 applies motion blur to everything close to the camera except the car body. Interestingly enough, doing a whip pan in third person and going into photo mode mid pan lets you explore the world with motion blur which is really cool and you can adjust the "shutter speed" motion blur amount while viewing the 3D motion blur.
Congrats!
Yay! Good real-time motion blur to go with! I personally don't understand people who turn off MB always. in all games. I can only relate if the implementation is awful. UE's implementation of MB is also somewhat interesting point of discussion, because i think in the majority of projects that utilise it, it instantly gives itself away that it's UE game with it's "UE look". It is somehow flawed i guess. Because if it would've been done right it wouldn't be obvious immediately and always. Thanks for sharing the method that you've researched and developed! I personally have been "researching"(impostor syndrome isn't taking it easy on me lol) emulation of halation effect that is present on photographic film, when a bright area is contrasted against a dark area, there's some subtle reddish-orange light that is spilling over to dark area from bright spot(it's very different to bloom). Imo it's quite PBR, it takes in Linear Rec709 framebuffer, so it has a realistic representation of what's bright and what's not. There's basically no info on how to emulate it, aside from tutorials for davinci-premiere-photoshop which are 1.for 8bit sRGB videos or images 2.completely non energy conserved 3.Most of them are just thriving for the "similar look" with no physical ground beneath it. Or there's also some proprietary solutions like davinci built-in halation, or dehancer plugin, they still work afaik only with sRGB. And also paid. Grasping inspiration from movies and images shot on film took this project far. I was really hooked when you mentioned about center or end motion blur, because 2 years ago i was playing around with blender cycles motion blur and was wondering, what would be the most accurate in respect to real cameras motion blur. I felt like default "center on frame" option might be not it, and default shutter curve might also be a bit inaccurate to what's happening in real camera. I stayed at default center on frame option(which after watching that vid seems to be incorrect), with shutter curve changed to triangle, with no actual testing being done, just "what felt right". What are your opinion on what would be the right settings? Thanks!
That comment almost became a standalone book lol
That's awesome to see you have your own research you engage in. I have not worked in blender and video editing softwares enough to tell you.
this is so cool
Cool stuff. Please Create paid asset for Unity asset store and URP :) I will buy it :)
Looks fun.
try it! theres a download in the description
@@sphynx_owner8224 Oh nice. I'll try to check it out when I have some game time (currently in game *dev* mode)
Love to see the progress on this. Keep up the good work 👍🏽
amazing! congrats!
By how it looks it's comparable with KinoMotion
Awesome stuff bro!!
Motion blur is awful and should not exist in video games.
Cool but I’m still instantly turing that off in every game
oh, i had an idea, would this work with techniques like Asynchronous Reprojection/Timewarp AKA rendering screen space rotations between world space frames? theres an Async Repro demo that Linus Tech Tips did a showcase of, with an improved world space transformation approximation that has interesting behaviour, but even without that, accurately blurring world space as you move through it while being able to turn the camera at higher framerates would make it a lot more comfortable, if the motion blurring can be done efficiently enough
your explanation was good 👍. when the motion blur addon is coming ?
Its already out, the repository links are under that video. If you mean when it is coming with the engine by default i cannot guarantee anything but ideally it would be released with godot 4.4
@@sphynx_owner8224 being merged into the master branch would be amazing. If it was in the engine directly, would it be possible to reduce the edge artifacts with overscan?
@@addmix I'm not sure if the edge "artifacts" (its really just less blur there) are this bad to justify overscan. I'm going to try and see if I can sample backwards to handle that edge case before I go in that direction... In McGuire's case, his heuristics made for a very unappealing and standing out smear towards the edge of the screen regardless of the situation. Mine just has less data to feed those pixels so its more natural and the main problem is that it would scale with speed, meaning there's no defined boundary that I can cover and call a day. If I moved slower you would just not have as prevalent of a difference for example. I don't want to ruin it for ya, but you can see the same artifacts at the leading edge of the hover as well. Maybe this backwards sampling approach could be applied to try and solve this issue globally and not just at the screen edges. It would definitely add complexity but its worth trying.
@@addmix I have added a new version in the description with the edge artifacts allegedly fixed. Let me know if its looking alright.
The real question: Rigidbody or Characterbody?
rigidbody
I work with video animation and it baffles me that in after effects there isn't a plug-in that utilizes motion vectors in conjunction with a depth pass, so even the best current plugin gives wildly incorrect motion blur when there is object overlap. Would you be interested in trying to write a plugin for after effects that does exactly what you did? I bet it would be very popular!
I don't work with after effects, but if I understand correctly it generates motion blur without needing velocity and depth maps (especially since those are usually not available when working with ordinary footage), so I don't know how much of this translates.
@@sphynx_owner8224 oh I'm.talking about renders from 3d software like cinema 4d or Maya/ blender. It works using motion vector passes ( velocity maps) but it doesn't take into account the depth of the pixel. It is also perfectly possible to render a z pass ( depth ) from the 3d software, but it is not used at the moment by any motion blur plugins. In short, if someone wrote an after effects plugin that was able to use a motion vector pass AND a depth pass it could create more accurate motion blur in after effects.
@@sphynx_owner8224 have a look at reel smart motion blur, it is the best after effects plugin for motion blur at the moment but it suffers from the issues described above
@@sphynx_owner8224 oh it looks like my comment didn't post for some reason, thanks youtube! you ar epartly correct. the "native" motion blur effect doesn't use it. but a lot of compositors use "reel smart motion blur" which has an option to use motion vectors. this is at the moment the best way to composite the motion blur instead of rendering it in the Main CG pass. however at the moment the best plugin ( the one above) does not take into consideration the depth of the pixels, so the result can be full of artifacts when there is overlap of a moving object over a stationary, or vice-versa
@@sphynx_owner8224 and that is where you could come in! if you used the same logic and created a plugin in after effects that can take BOTH a Motion Vector pass AND a Depth pass, and produce accurate motion blur, it would be very popular!
Smooth.
Looks like there’s some artifacting around the edges of the screen especially at the bottom, is that caused by there not being enough information to fully calculate the blur?
yes. In McGuire's paper, "a reconstruction filter for plausible motion blur" (2012) their blending heuristics required a border around the edge of the screen to be cut off entirely.
I have solved the artifacts its in a newer version i added a link to in the description
trackmania vibes ;D
Loved to watch the video. These are some great experiments! I have never done motion blur in a shader, but only used velocity vectors in fluids. I wonder if it would work if you buffer 2 past frames and interpolate non-linearily between 3 frames, perhaps you couls get a curve this way?
The whole idea is that the blur interpolates between the current frame and the last. Accumulative approaches are not unheard of, but they are not part of the goal with this one.
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.
I have visited your channel now, and I'm very impressed, subscribed!
Didn't watch the full video but Impressive
Incredible! As an intermediate developer, I never thought about how to consistently make propellers/wheels blur
lovely stuff
very cool. Still turning it off.
Why would you try to simulate camera shutter in the first place? Simulate human sight instead.