22 ms·
Motion blur all the way down (2022)
- pierrec 3y agoAh, I assume this was posted because ambient.garden was just on the front page. Re-reading it now, I think it should really have been 2 articles. I think I still like the first half, it's a reasonable dive into the detail of what motion blur is, or should be in theory. The second half is a slightly crazy, extremely condensed explanation of how the shader works for this particular "torusphere" animation based on motion blur. I find that part mainly useful because otherwise the code would be impenetrable at this point, at least to me. In retrospect the transition between the 2 parts feels a bit like jumping into a frozen lake, sorry about that!
- chaboud 3y agoI read through it and got the sense that it just jumped into one particularly odd special case bag of crazy after providing a clean explanation of motion blur as a function of shutter-angle (exposure window). I'm glad it wasn't just the glass of wine I finished. I've played with motion blur as a function of projection of 4D extrusions a few times, but the practical context (video, textures) ends up leaving it an impractical approach when compared to sampling in hardware with caching. This write up leaves me thinking "maybe just one more time".
- pierrec 3y agoIf you're working with triangle meshes, I think the approach of extruding triangles into prisms looks promising. It allows drawing arbitrarily long trails with OK performance. Sadly it did not match the constraints of cramming the whole scene into a shader, hence the weirder volume-based techniques. Fast analytical motion blur with transparency: https://www.sciencedirect.com/science/article/pii/S0097849321000066 https://www.sciencedirect.com/science/article/pii/S009784932...
- chaboud 3y agoI played with an approach like Gribel in a software abuffer engine years ago, where coverage fragment lists were already part of the picture. Combined with video textures, it's fair to say that my result was... slow. But I'm more and more inclined to take another crack at it.
- spondylosaurus 3y agoWow, the live comparison demo is wild. When I was following along up to that point, I felt like I "got it" on an intellectual level, but it wasn't until I could toggle the motion blur on/off that the difference was really apparent!
- Animats 3y agoThis gets past trying to simulate a film camera and tries to simulate the human visual system. That's useful. Another step towards reality and away from simulating obsolete technology. Shutter-type motion blur may go the way of sepia-toned prints, 16 FPS black and white movies, and elliptical wheels from mechanical shutters.
- subb 3y agoLet me know when we have the tech to render the real sun's power on your TV screen. Reproduction of reality is not the goal, because it's unachievable.
- Animats 3y agoWith enough money... Larry Ellison used to have a TV projector in his house, with the light output for a drive-in movie theater but aimed at a small screen, so he could watch movies in broad daylight. That was before everyone got bright screens.
- account42 3y agoI don't see how the result would avoid being either uncomfortably bright or still having shitty contrast due to the unavoidably high "black" levels from the ambient light.
- account42 3y agoWell HDR screens are becoming more common so we're moving in that direction. Also, simulating realistic processes is not incompatible with tonemapping the result to be able to display it on limited screens.
- kuschku 3y agoModern HDR screens already cause the same subconscious perception as the sun would. You flinch, your eyes adjust, you even move a little bit back and feel a kind of warmth that isn't actually there.
- geor9e 3y agoThe tradeoff of rendering or filming motion blur at finite refresh rates is the audience can move their eyes to follow an object moving around the screen. In real life, that causes the object to become sharp. So, you either need to track eye motion and blur according to relative motion, or do no motion blur at an infinite refresh rate. Neither is practical with todays's technology, so it's always going to look wrong. A good director or game designer will choose shutter rate or render blur according to how they expect the audience eyes to be moving.
- chaboud 3y agoHowever, the audience is used to shutter angle as part of the visual vernacular (e.g., narrow shutter angle for hyper edgy rap videos, long shutter angle for dreamy retro vibes). If rendered content can't speak the same visual language, a tool is missing, regardless of framerate (up to a point... At 400Hz, I'd be impressed by someone really seeing the difference). What's interesting about rendered content is that it can extend that (e.g., a shutter angle beyond the duration of a frame), playing with something we thought we had a handle on.
- drc500free 3y agoI first learned about shutter angle when reading about its use in Saving Private Ryan; the narrow 45 and 90 degree shutters made the opening scenes much more visceral with so much flying through the air. https://cinemashock.org/2012/07/30/45-degree-shutter-in-saving-private-ryan/ https://cinemashock.org/2012/07/30/45-degree-shutter-in-savi...
- arrowsmith 3y agoThat was a really interesting article, thanks!
- CarVac 3y agoIt's also used for subject isolation in much the same way as depth of field. Only objects not moving relative to the frame can be seen sharply.
- nuclearsugar 3y agoRelated: Gotta love the ReelSmart Motion Blur plugin for adding motion blur based on the automatic tracking of every pixel from one frame to the next. It's not always perfect but still does an amazing job. Sometimes I get experimental and crank the calculated motion blur way past the default value and it looks surreal!
- CyberDildonics 3y agoThat's not related at all. That is optical flow, which is a 2d filter technique that has been around for 28 years. It can't do this and has nothing to do with anything here except for the term 'motion blur'.
- modeless 3y agoThe torus demo is really neat. I think it's interesting how high frame rate changes the perception of blur. I'm using a 240 Hz display and on figure 5 I can't see the discrete circles until around 12 rad/s. And even at 40 rad/s I can't see any difference between the traditional and sine shutter options (in motion). I highly recommend 240 Hz if only for the smoothness and low latency of mouse movements. A 60 Hz mouse pointer is really, really hard to go back to.
- iforgotpassword 3y agoI've used both, a 4k 24" display ("once you used retina you can't go back") and a 144Hz display, and I can't be arsed to upgrade my main setup which is three old 24" 1920x1200 screens at 60Hz. Some people really don't care. Heck I don't get those discussions about input latency and terminal emulator holy wars, I can't tell the difference between working on a framebuffer console and working via ssh with an additional 50ms. I can tell the difference between a 30 and 60fps game, but only if I pay attention to it. As long as it's steady and not bouncing between the two I just don't care.
- Avamander 3y agoI can tell the difference in basically all use-cases instantly. The first window I drag on the desktop or camera I pan in game and it's very noticeable. I find higher fps causes significantly less eye strain in my experience. Microstutters also really annoy me. But it's too much to ask for if a lot of things still force 30fps scroll on me (for example AMD's own Radeon software).
- Etherlord87 3y agoI agree the, in my case, 144 Hz cursor is nicely smooth, But I have no problems going back to 60 FPS cursor. I wonder, though, if maybe an interface with smoother transitions is more soothing and maybe having a higher refresh rate does affect one's mental state over time...
- bjano 3y agoIt seems to me that the demonstration is calculated in sRGB space, so with non-linear brightness values and I suspect that most of the unnaturalness of the smear is due to that. To simulate the physics this would need to be done with linear brightness values and only at the end converted to sRGB. (unless some non-linear effects in human visual perception cancel all that out, but it should at least be mentioned if so)
- WithinReason 3y agoYes I noticed that the gamma is all wrong, it actually defeats the purpose of the article since you don't get smooth perceived motion blur with the figures. This could have been so much better.
- Solvency 3y agoIt's wild to me the author would overlook such a crucial thing (ignoring linear space). But then again, even Adobe barely supports linear and it's 2024.
- pierrec 3y agoThanks for pointing that out. I've done color space conversion in other graphics applications but clearly haven't learned my lesson. I'll double check and update the interactive figures (and text) if it makes sense. The main "torusphere" shader should be fine because the motion blur is non-realistic and hand tuned, but the first couple of interactive figures are a direct application of theory so what you're saying applies to those. Overall I don't think it invalidates the main ideas in the text though.
- zubairq 3y agoWow, watching motion blur all the way down really made me think about string theory, atoms, and how the universe is made for some reason!
- cjdell 3y agoIt's an interesting metaphor. Electron shells are sometimes described as a cloud of probabilistic density, as in the shade is an indication of the probability of finding an electron at that point if one were to freeze time. Obviously it gets weirder the deeper you get.
- Anotheroneagain 3y agoIt was noted early in the development of cinema that the required framerate would probably be much lower, if (IIRC) the shutter could be somehow replaced by blending the neighboring frames together, that is the exposure would gradually shift from the first frame to the next.
- Rexxar 3y agoShouldn't the torus and the latter sphere be partially transparent if they are build from motion blur ? They seems to become opaque again at some point and it feels strange to me.
- johanvts 3y agoIs light discrete or continuous?
- account42 3y agoYes.
- xeyownt 3y agoI guess it cannot become transparent because you cannot see through an infinitely fast moving / bouncing object, because necessarily the object would intercept any ray of light crossing its course. However the light emitted by the moving object should be lower than the static object. So as the distance increases, the object should become darker and darker.
- Rexxar 3y agoHere is a real life similar example: https://mitxela.com/projects/candle https://mitxela.com/projects/candle. It's clearly transparent (except in middle).
- vultour 3y agoYes but that one is not moving infinitely fast. If it kept accelerating it would eventually become opaque.
- willis936 3y agoIf the ball takes up 45 degrees in the torus then it would be 7/8 transparent when moving infinitely fast. It would be another 1/8 transparent when spinning the torus into a sphere. "Infinitely fast" being a stand-in for "sufficiently fast" and gated by the speed of light, of course.
- dinobones 3y agoAlternative title: Visual proof of the Rutherford model
- virtualritz 3y agoA good overview is in [1]. Curiously, before the classic paper on modeling shutter efficiency [2] came out in 2005, all renderers used in VFX production used box shutters. I.e. the shutter opens instantly, stays open for the specified duration and then closes instantly. When you watch movies like "Jurassic Park" or "The Mask" and see scenes with extreme motion blur, that's PhotoRealistic RenderMan with a box shutter. The first in-the-wild 1:1 implementation of the parameterization in [2] was done in [3] in the same year the paper came out (hasn't changed until today). It was first used on "Charlotte's Web" (only the spider character done by Rising Sun Pictures has it as they used [3] for it). Pixar added it a few years later too and went a tad overboard with theirs in [4]. Most offline renderers nowadays have this feature and call it a "shutter curve". [1] O. Navarro et al.: Motion Blur Rendering: State of the Art (https://citeseerx.ist.psu.edu/doc_view/pid/fc23fb525cafa8fe68ec84c1eadf85e30090a774 https://citeseerx.ist.psu.edu/doc_view/pid/fc23fb525cafa8fe6...) [2] Stephenson, Ian: Improving Motion Blur: Shutter Efficiency and Temporal Sampling (https://staffprofiles.bournemouth.ac.uk/display/journal-article/5221 https://staffprofiles.bournemouth.ac.uk/display/journal-arti...) [3] https://www.3delight.com/ https://www.3delight.com/, see specifically https://nsi.readthedocs.io/en/latest/nodes.html https://nsi.readthedocs.io/en/latest/nodes.html [4] https://renderman.pixar.com/resources/RenderMan_20/cameramodel.html#the-shutter-model https://renderman.pixar.com/resources/RenderMan_20/cameramod...
- Etherlord87 3y agoAt first I was wondering why the shading of the ball is off - turns out it's because it's not a ball but a rotating "torus" (orbiting ball)... The ball probably would look better if there was a longer period between the last and first phases, but that could reduce the power of the surprise.
- yeknoda 3y agoMotion is an invisibility cloak.
- causi 3y agoMotion blur makes sense for films. I have no idea why anyone wants it in a game. The limitations of display technology and of the human eye introduce all the blur I could ever want.
- JKCalhoun 3y agoI added motion blur in a slot-machine like game I wrote. http://www.softdorothy.com/Blog/Entries/2011/10/26_Making_The_Devils_Dice_1.html http://www.softdorothy.com/Blog/Entries/2011/10/26_Making_Th...
- jabroni_salad 3y agoYou only have it on a moving element so that's okay. What gamers really dont like is when you move the camera slightly and the entire scene turns into a deep fried oil painting.
- virtualritz 3y ago> Motion blur makes sense for films. I have no idea why anyone wants it in a game. TLDR; motion blur always makes sense atm. Not less so for games. For games the difference it makes depends on the FPS and the distance an object moves within the FOV. Estimates say humans can see max. 60FPS. Even if your game runs at 120FPS and something moves accross the entire FOV -- that is two discrete samples of that object at most. You will get strobing. Only if you render the geometry with motion blur will this look natural. The alternative is probably to have mutliple 10k FPS but that is wasteful. If your biological limit is around 60FPS, it should be cheaper to generate motion-blurred frames at this rate (where more samples are used in areas with more motion blur) than rendering every pixel of a frame at muliple 10k FPS.
- causi 3y agoHuman eyes do not work based on discrete frames at all. The entire "sampling" paradigm is completely wrong. Estimates say humans can see max. 60FPS. This is a ridiculous statement. You know that's wrong if you've ever switched your phone between 60 and 120hz. Even without personal experience, most HN readers would be aware that, for example, when the Oculus Rift folks were developing their headset they found 90hz to be the minimum to avoid visual disturbances and nausea in an immersive environment.
- dukeofdoom 3y agoI want to try this in my pygame game. Any python version of this.
- de6u99er 3y agoI love thise interactive tutorials. Since the method and it's parameters can be changed it would ve interesting to see some form of performance impact.
- jvanderbot 3y agoDespite the promise of this making visual media feel more real, I can't help but feel like, for games, this makes the video games look like a cheap approximation of over-edited movies. For things moving real fast, or real close, or especially with non-ego motion, this all makes sense. But it is over-used for things like "the character turns quickly". When I snap my head (or eyes) around, I don't see a blurry image, I see the new image, and my brain drops the intermediate data. You can test this by looking at yourself in a mirror, focusing on one eye, then another. Do you see your eyes or face or anything blur? Adding blur just delays the presentation of the new view when moving your POV in games. It's distracting and unrealistic.
- throwaway8481 3y agoI feel like motion blur should be used like mouse acceleration. Like you said: If I whip my head around quickly that image should present clearly and immediately. However, if I'm in a car or flying through the air (in a game) this may distort the image as I'm glancing. This is the kind of drag-as-you-accelerate blur I'm expecting, and it can really make a fast-paced moment look that much more exciting. Motion blur is poorly executed everywhere.
- sxp 3y ago> You can test this by looking at yourself in a mirror, focusing on one eye, then another. Do you see your eyes or face or anything blur? This isn't the best test since your brain compensates for saccades by censoring input for a while. And it has built-in motion stabilization which allows you to read a sign while walking down the street. A better test would be to look at your finger or hand while waving it very quickly. You'll see motion blur as your finger moves. In certain cases, you can see individual "frames" as an afterimage. E.g, if you look at a modern car tail light, the LED isn't on consistently but uses PWM to blink really quickly. So if you move your eyes while looking at a tail light at night, you'll see a series of dots rather than a blurry image. Once you learn this trick, you can distinguish between analog lights and PWMs by noticing if they are blurry or discrete.
- jvanderbot 3y ago