Current stable version: 0.1.1

Raytraced Motion Blur

Personal Information


Name: Liu Lu

IRC: Lulu_athena

Email: luluathena@gmail.com

Idea to Implement

 

  • Synopsis and Goals.

Motion blur is the blurring or smearing along the direction of relative motion of any object moving with respect to the camera. It adds realism not only to still renders, but to animations as well. There are several approaches to reproduce motion blur in raytracing. But many of them need too many samples. "Frequency Analysis and Sheared Reconstruction for Rendering Motion Blur"[1] proposed by Fredo Durand presents a rendering algorithm that computes a sheared reconstruction filter per pixel, without any intermediate Fourier representation. This often permits synthesis of motion-blurred images with far fewer rendering samples than standard techniques require.

  • Detailed Description.

Motion blur is important for creating synthetic images that match physical cameras, and for eliminating temporal aliasing in animations.

The standard methods use axis-aligned pixel filter at each pixel, as the velocity increases, more samples are usually required to render motion-blurred images. This is frustrating since the complexity and spatial frequencies in the final image actually decrease due to the blurring or filtering from motion.

By using a combination of adaptive sampling and a new sheared filter, we can accelerate the rendering of motion-blurred scenes. Even the samples are sparse; the result still has no aliasing.

This method contains three steps mainly:

1. Compute bounds for signal speeds

First, sample the scene with N samples per pixel(N can be 2). Only velocity information is required from the samples. At each sample, compute the image space signal direction, velocity bounds and signal bandlimit.

2. Compute filter shapes and sampling rates

Based on the initial sampling in step 1, we can compute sheared reconstruction filters and sampling densities for each pixel. For each pixel, first compute the widest possible reconstruction filter, and then determine the lowest possible sampling rate that avoids aliasing.

3. Render samples and reconstruct image

Send the computed space-time sample locations to the renderer for processing, and read back the shaded results for each sample.The reconstruct the MB image using the sheared filters computed in step 2.

  • Workflow and Usability.

User has to offer the velocity of the object, and the velocity of light, if necessary. And user has to offer the frequency of shutter.

There are some parameters for user to adjust, which will affect the result of MB. But notice that the adaptive sampling rates is computed by the algorithm.

  • Temptative Schedule.

Match 29 - Match 31

Read "Frequency Analysis and Sheared Reconstruction for Rendering Motion Blur"

April 1 - April 24

Read some other documents about ray tracing and motion blur

Learn the source code of "Frequency Analysis and Sheared Reconstruction for Rendering Motion Blur"

April 25 - May 4

Read the document of yafaray

Vacation time: May 1-May 3

May 4 - May 19

Study with the source code of yafaray to understand how dose it work with MB

Discuss with mentor about the project

May 20 - May 31

Make a design document about the algorithm and so on

June 1 - August 8

Start coding, and discuss with mentor

Vacation time: I need two weeks for homeworks

August 9 - August 15

Scrub code, write tests, improve documentation

August 16

Submit

Bio

I’m a graduate student in Zhejiang University in China. It’s my first year and my major is Computer Graphics.

I have learned C, C++, C#. Now I use C++ mainly. I have finished some courses about CG, and completed some small programs, using OPENGL and QT. Recently I’m doing something about physic simulation on cloth, and something about ray tracing and photon mapping.

Here is a link of some screenshot of my CG programs:

http://hi.baidu.com/luluathena/album/Coding%20Life

I want to participate in GSoC and I’m interested in “Raytraced Motion Blur”. I’m just learning ray tracing now. Reproducing motion blur in ray tracing sounds interesting to me. Since I have some knowledge and experience in 3D, I think it’s a good work for me.

References:

 

[1] http://www.cs.columbia.edu/cg/mb/