Rendering out motion blur only

Blender's renderer and external renderer export

Moderators: jesterKing, stiv

Post Reply
Rhs_CG
Posts: 0
Joined: Sat Aug 16, 2003 2:43 am

Rendering out motion blur only

Post by Rhs_CG » Thu Dec 29, 2005 11:28 pm

Hey guys,

I am wondering, perhaps only dreaming, if it is possible to render oor "bake out" (borrowing the term) the motion blur only from a scene in order to be composited with another render of the same scene, but one done by a renderer that does not support motion blur.

For example, can I render the motion blur "pass" of a ball hopping up and down with blender´s internal renderer, and render a pass of the scene rendered in YafRay?

Maybe I am off the rocker or something, but thanks for helping in advance. :P

z3r0_d
Posts: 289
Joined: Wed Oct 16, 2002 2:38 am
Contact:

Post by z3r0_d » Fri Dec 30, 2005 1:52 am

it is not possible, it would also not be helpful because the blurred region in blender would not at all look reasonable next to the static render from yafray

joeri
Posts: 96
Joined: Fri Jan 10, 2003 6:41 pm
Contact:

Post by joeri » Fri Dec 30, 2005 10:15 am

I think this is a good idea.
Ofcourse the mblur would need to be some sort of post compound/vector blur. But It might not look bad at all.
In post one could decide how much blur is needed/wanted on a scene.

I like the idea,... but implementation will be hard. specialy since the current mblur is a blend of lots of frames, not a vector blur. But maybe the new image file format is a step forward. At least move vectors can then be saved (per pixel) in a file.

Rhs_CG
Posts: 0
Joined: Sat Aug 16, 2003 2:43 am

Post by Rhs_CG » Sat Dec 31, 2005 12:08 am

Thanks for the input.

You´re right, in that the renderer would have to output the motion blur data into another format to be read into a compositing program. It would be really cool, maybe something like optical flow.

It would be cool, but it would be less work to contribute to a renderer w/out motion blur, or finding a renderer that does what you want, and has motion blur.

Thanks guys!

cekuhnen
Posts: 0
Joined: Mon Jan 13, 2003 11:04 pm

Post by cekuhnen » Sun Jan 01, 2006 8:42 pm

i would say that is impossible with true motion blur.
understanding motion blur should give you that answer already.

there are many types of motion blur

however the post effect motion blur can work fine, but this would
only make sense when the camera and scene will not change its
position adn geometry.

macouno
Posts: 0
Joined: Tue Nov 18, 2003 3:37 am

Post by macouno » Mon Jan 02, 2006 8:21 pm

well for the ball bouncing example.

Why not render the ball bouncing with mblur in blender internal with a alpha background.

Then render the ball bouncing again but without mblur and also an alpha bg in yafray.

Then the background in yafray

Then stick mblurred ball between the yafrays render in an external editor.

cessen
Posts: 109
Joined: Tue Oct 15, 2002 11:43 pm

Post by cessen » Thu Jan 05, 2006 11:56 pm

Rhs_CG wrote:I am wondering, perhaps only dreaming, if it is possible to render oor "bake out" (borrowing the term) the motion blur only from a scene in order to be composited with another render of the same scene, but one done by a renderer that does not support motion blur.
That is possible, yes. You wouldn't get true 3D motion blur--it would be 2D motion blur--but it is possible. Blender would need to output 2D motion data as a vector field or something, and then you could use that in a compositing program.

I'm pretty sure this would be a big project, though. Not easy to impliment at all. It would probably be a smaller and easier task to impliment true motion blur in whatever renderer you're talking about.

cekuhnen
Posts: 0
Joined: Mon Jan 13, 2003 11:04 pm

Post by cekuhnen » Thu Jan 05, 2006 11:59 pm

as far as i know blender does not support true 3d motion blur at all
and thus would not support the needed data for any post productions.

blenders interal motionblur is a 2d motion blur, which works for some degree but not for post productions.

cessen
Posts: 109
Joined: Tue Oct 15, 2002 11:43 pm

Post by cessen » Fri Jan 06, 2006 12:49 am

cekuhnen wrote:as far as i know blender does not support true 3d motion blur at all

blenders interal motionblur is a 2d motion blur, which works for some degree but not for post productions.
I'm curious what you think 3D motion blur is, then.

Based on my knowledge of computer graphics, I'd say that Blender only supports true 3D motion blur.

The process of correctly calculating motion blur involves sampling each given pixel multiple times over a certain time interval, and then either averaging the samples of a pixel or using some other filter to combine the samples to create the final output color of the pixel. (Alternatively, it might be possible to do it analytically, but I suspect that would be impractical.)

The reason it's called "3D motion blur" is because the samples are taken by properly calculating the color of the pixel based on the 3D scene data (i.e. by actually rendering the pixel). 2D motion blur, on the other hand, tries to fake those samples based on the 2D image data.

Blender's motion blur is 3D, because it properly calculates (renders) the samples. Granted, you're limited to 16 samples per pixel. And granted, it samples all of the pixels at the same points over time. But it is 3d motion blur.

The difference between Blender's motion blur and, say, MentalRay's motion blur is basically just that MentalRay can take more samples and it uses more advanced sampling techniques. The basic concept remains the same, however. (There are some other differences as well, but they are actually in Blender's favor as far as accuracy goes.)

Koba
Posts: 0
Joined: Thu Apr 15, 2004 9:48 am

Post by Koba » Fri Jan 06, 2006 1:20 am

I'm afraid I agree with cessen from my own (limited) knowledge about CG.

Blender actually rerenders the scene several times (several passes) to generate motion blur. This is technically the most accurate way of doing it but it is so very slow.

Other method do some sort of interpolation to make it look like more passes (or more in between passes) have been explicitly performed to make the motion blur look smoother/perform quicker.

Vector motion blur would be a great addition to Blender. Perhaps it would allow motion blur with fluids for example (currently not possible).

Finally, I can't help wondering why motion blur is so time-consuming and difficult in CG when some new modifications to Valve's Source engine performs excellent (from what I've seen) motion blur calculations on the fly! (or will do soon). Maybe it isn't anything special and the GPU is simply forced to do several passes per frame (but then again the frame rate drop is apparently quite low). I have no idea how they are doing it - maybe it is because several frames are buffered before being displayed and something clever goes on in there. Must be some sort of vectorial motion blur again.

Nevermind, that bit is slightly off topic. :D

Koba

Post Reply