[Bf-committers] Re: Re: Re: Vectorial Motion Blur

frédéric van der essen fred at mentalwarp.com
Sun Feb 13 19:43:09 CET 2005



It is curved when the object is rotating. The motion blur works only for 
straigth motion. But if the object is rotating slow enough, the curved 
blur can be aproximated by straigth blur, and you won't notice the 
difference.
A typical case where vectorial blur won't work is fast rotating wheels 
or helicopter rotor.
vectorial motion blur is a 'fast' technique, it can be used to improve 
the result of an ordinary motion blur or where no fast rotations or 
disapearing objects are used. It works really fine for character animation.


Chris Burt wrote:

> Motion blur is sometimes curved no? Isn't it the result the exposure 
> time for any given shutter speed? i.e. object is moving while shutter 
> is open causes image to smear? Therefore object's blur is not always 
> straight.. not sure if your methods you're discussing account for this..
>
> frédéric van der essen wrote:
>
>>
>>
>> You're right :) next time i'll think twice before posting :)
>>
>> GSR - FR wrote:
>>
>>> http://www.netmeister.org/news/learn2quote.html
>>>
>>> Hi,
>>> fred at mentalwarp.com (2005-02-13 at 1739.34 +0100):
>>>  
>>>
>>>> A=zeros(255,255); %base image
>>>> %Add Black square
>>>> BlockSize=10;
>>>> BlockPosX=10;
>>>> BlockPosY=10;
>>>> for i=BlockPosX:(BlockPosX+BlockSize)
>>>>    for j=BlockPosY:(BlockPosY+BlockSize)
>>>>        A(i,j)=1; % set pixels in the square =1
>>>>    end
>>>> end
>>>> B=zeros(255,255); % the motion blurred image
>>>>
>>>> for i=5:250 % from 5 to 250 because the blur needs a margin.
>>>>    for j=5:250
>>>>        B(i,j)=( A(i,j)+A(i+1,j+1)+A(i+2,j+2)+A(i-1,j-1)+A(i-2,j-2) 
>>>> ) /5; % computes the blur on a 5pixels length with a -45° direction
>>>>    end
>>>> end
>>>>   
>>>
>>>
>>>
>>> Your code uses the same motion vector for all pixels. Now try what I
>>> said: one pixel with motion, the rest without. Not everything with the
>>> same motion vector, as your code does.
>>>
>>> Say dot 100,100 is the one moving, colour 0 in all channels (black),
>>> while the rest are 255 (white). Your code will make 100,100 be (255 +
>>> 255 + 0 + 255 + 255) / 5 = 204, dirty white. But the others will be
>>> 255, cos the formula for them, due their "non moving vector" has to be
>>> B(i,j)=A(i,j).
>>>
>>> GSR
>>>
>>>  
>>>
>>
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at projects.blender.org
>> http://projects.blender.org/mailman/listinfo/bf-committers
>>
>>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at projects.blender.org
> http://projects.blender.org/mailman/listinfo/bf-committers
>



More information about the Bf-committers mailing list