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
    Originally posted by Stimpanzee View Post

    Double check to be certain that your variable type is correct. Also check if the camera is in a sub-level within the persistent level.

    To have direct blueprint communication, using this specific method, the blueprints need to be in the same level.

    Let me know if that works!
    Sorry, I haven't checked my camera level. The previous camera was in sequence, but there is a new problem. I use motion blur tool to play motion blur , but sequence rendering sequence has no motion blur . Is there something wrong with it?

    Leave a comment:


  • replied
    Originally posted by white_Wings View Post
    Awesome! but I encountered some problems in using your tools.

    I downloaded your project file, but when I created my own camera, I couldn't use the blueprint tool to refer to him. Is that my operation problem?
    Double check to be certain that your variable type is correct. Also check if the camera is in a sub-level within the persistent level.

    To have direct blueprint communication, using this specific method, the blueprints need to be in the same level.

    Let me know if that works!

    Leave a comment:


  • replied
    Awesome! but I encountered some problems in using your tools.

    I downloaded your project file, but when I created my own camera, I couldn't use the blueprint tool to refer to him. Is that my operation problem?

    Leave a comment:


  • replied
    As someone who uses Unreal only to create cinematics/short-films, this would be amazing! Especially now that I'm working on an animation that involves cars...
    Hopefully you'll do that tutorial at some point, it seems like you have a very long cold

    Leave a comment:


  • 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:

Working...
X