Announcement

Collapse
No announcement yet.

New Cinematic Motion Blur Method

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • started a topic New Cinematic Motion Blur Method

    New Cinematic Motion Blur Method

    Hello Devs!

    It's been a little while since I had something worth sharing, but I finally had the chance to test out a new method for motion blur which I have been kicking around.

    The latest version of motion blur in Unreal is a marvel, and works extremely well for cost of implementing it. Motion vector based motion blur is used in the CG industry to save on time also. It is a tried and true method.

    Part of my day job is pushing real time rendering for production. I am constantly being asked for examples of why Unreal makes sense for production work, which is a topic I would gladly discuss. The list goes on and on. Motion blur is the perfect candidate to add to the list. Unreal has the power to render very quickly. In theory we should have the ability to render more frames to build a single image. Temporal effects work along similar lines, but we can go deeper... if our focus is exclusively for real time cg production. Meaning, this method is not intended for true real time. It is not efficient.

    In the simplest terms, this method samples multiple frames over a period of time which is then added up together to present a single frame. Motion blur is an artifact of photography. Within the length of time it takes for a camera shutter to open, then close, subjects in the frame can move. Those rays of light move across the film or sensor and you get a blur. What we can do in Unreal is sample snippets of time in between the shutter opening and closing and add them up into one image.

    The methodology is extremely simple, as was the writing of this tool. All we have to do is sub sample a defined time before or after the target frame, and we get beautiful accurate motion blur. Currently my tool is in its simplest form. It is averaging all the sub frames in a ping ponging render target. There is a lot more going on in film which we can also simulate.

    For example: The value of light sampled from a film camera isn't linear over the length of the exposure. The aperture is opens over time, then closes over time. Motion blur is not linear in the same way. The beginning of the sampling should have a lower weight over the average. Technically, it should be out of focus as well. I'll be experimenting with these ideas if time permits, but I would recommend that anyone who knows more about photography/cinematography to give it a shot!

    If you are using Unreal Engine for film, TV, or commercial work, you will be bee floored with how good motion blur can look. And just how quickly we can generate it.

    Now for some examples:
    https://youtu.be/DSwOZLwMih8

    And a clip of a rotating object with the traditional motion vector motion blur:
    https://youtu.be/wEdJfoPjd2U


    Here are two stills for a better look. The first image is from the beginning of the animation where the wheel is hardly spinning. The second image is in the middle where the wheel is spinning at roughly 30mph. This was captured with a 180 degree shutter angle.

    If you are interested in visualizing how motion blur works, check out this page: https://support.solidangle.com/displ...UG/Motion+Blur
    https://bit.ly/2QItvps

    Click image for larger version  Name:	WheelStill.jpg Views:	3 Size:	318.9 KB ID:	1529033

    Click image for larger version  Name:	WheelBlur.jpg Views:	3 Size:	252.9 KB ID:	1529032
    Last edited by Stimpanzee; 09-18-2018, 02:03 PM.

  • replied
    This is exactly what filmmakers need. I would rather have really good offline renders then real time. I'm new to Unreal, So I am excited to see your upcoming tutorial. And if you made this a Plug-In in the market, I would buy it.

    Leave a comment:


  • replied
    Alright a little bit of an update. I have a cold which has made it hard to record a pleasant sounding tutorial. For now I would like to make the learning materials available to check out.

    You can download a version of the sequencer project with a extremely simple version of the tool here: https://drive.google.com/file/d/12ua...ew?usp=sharing

    The motion blur blueprint records a defied set of subframes with a 360 degree shutter angle. It uses four render targets. The one named "capture" would be the RT you would want to export.

    Leave a comment:


  • replied
    Originally posted by Manoel.Neto View Post
    BTW, that's pretty much what Valve's Source Film Maker does when you render the animations to video files: slow down the replay and accumulate multiple frames together to produce the video at normal speed with motion blur.
    I've never played around with Film Maker. I'll have to give it a look sometime. Maybe borrow a few good ideas. lol

    Leave a comment:


  • replied
    Originally posted by ramzorR View Post
    Hi Stimpanzee,

    I have sent you a private message and it would be great if you could reply when you get a chance please. Thanks a lot.
    I'm going give it another shot this week!

    Leave a comment:


  • replied
    Originally posted by Leedo View Post
    I think UE will fix that issue in upcoming version 4.22 check https://docs.unrealengine.com/en-us/...dialMotionBlur
    Awesome! Even though it will require a little extra effort to get working, having real time radial blur will be fantastic. One more reason to skip a slow export process!

    Edit: Fancy materials FTW!
    Last edited by Stimpanzee; 02-11-2019, 04:08 PM.

    Leave a comment:


  • replied
    I think UE will fix that issue in upcoming version 4.22 check https://docs.unrealengine.com/en-us/...dialMotionBlur

    Leave a comment:


  • replied
    still getting a tutorial on it would be great

    Leave a comment:


  • replied
    BTW, that's pretty much what Valve's Source Film Maker does when you render the animations to video files: slow down the replay and accumulate multiple frames together to produce the video at normal speed with motion blur.

    Leave a comment:


  • replied
    Hi Stimpanzee,

    I have sent you a private message and it would be great if you could reply when you get a chance please. Thanks a lot.

    Leave a comment:


  • replied
    Originally posted by Stimpanzee View Post

    Sorry the wait has been so long! I'm becoming notorious for that. I just got off a couple of projects at Psyop which were consuming my life. Starting next week I will get to work on a tutorial. I will do everything I can to get it out before the end of the year!
    That's great

    Leave a comment:


  • replied
    Another update which I was unable to post - weighted motion blur! The system now accumulates (thanks Pottuvoi) the frame with a weighted value, which is sampled by an editable curve.

    Having the ability to shape the motion blur with a curve gives an artists an enormous amount of control over how the motion blur looks. In the latest example the sparks at the very beginning of the video were replaced with simple circles, simulating real sparks. The weighted arch visual that you see is the affect of the motion blur doing its thing.

    Traditionally this particle system uses a shaped particles which changes its direction based on velocity. Now we are no longer emulating the effect, we are capturing it!

    Leave a comment:


  • replied
    Originally posted by KrasheRXD View Post
    A tutorial on this would be great.
    Sorry the wait has been so long! I'm becoming notorious for that. I just got off a couple of projects at Psyop which were consuming my life. Starting next week I will get to work on a tutorial. I will do everything I can to get it out before the end of the year!
    Last edited by Stimpanzee; 11-29-2018, 03:20 PM.

    Leave a comment:


  • replied
    Originally posted by Pottuvoi View Post
    Sounds a lot like old good accumulation buffer, if this is the case one can quite easily use those samples for an additional AA and DoF as well. (Like Gran Turismo series do in photomode.)
    Accumulation Buffer!! That's exactly what it is, but I never had a good term for it. I'm really looking forward to 4.22 dropping to see how the system handles Raytracing samples. I definitely need to look into adding the micro camera jitter. I believe that i could even just use a camera shake component.

    Leave a comment:


  • replied
    A tutorial on this would be great.

    Leave a comment:

Working...
X