Spark Motion Blur + Spark Alpha Depth (first test)
In this video you can see the visual effect of the Motion Blur node we are improving.
We are also working on -> Continue reading ‘Spark Motion Blur + Spark Alpha Depth (first test)’->
In this video you can see the visual effect of the Motion Blur node we are improving.
We are also working on -> Continue reading ‘Spark Motion Blur + Spark Alpha Depth (first test)’->
The first version of Spark motion blur node we are improving is almoust finished.
This node calculates objects’ movement between two frames,
creating subframes or slices (as we called it).
Now we are running several tests to check the effectiveness of this node and we are working on the user interface.
This is how the node currently looks.
As you can see -> Continue reading ‘Spark Motion Blur user interface’->
Here we are again!
The motion blur improvement keeps going on.
Last achievement: fill the blank pixels that appears in the render.
Next step: projected shadow to be blurred as well, of course
Before anything else we want to say a special thank to everyone who’s giving us useful feedback !
Keep suggesting!!!
Aaahhhh…. the power of open source!!!
Your comments give us the strength to go on!
Thank you all.
The node of motion blur we are developing use the Sobel algorithm, a filter mainly used to highlight contuors in a picture.
Appling this filter to motion vectors, the result is a gradient of the single pixels.
The gradient is as strong as the pixels movement is diverging.
Before we analysed the whole scene in a single render layer.
Using different render layers, we analyse only the moving object.
In this way we identify the areas where it’s possible the appear of holes or blank pixel inner the object itself or when parts of it overlapping.
Now we have to analyse this areas and find the better way to fill it. The idea is to check the pixels arround the blank ones in order to fill it with this RGBA channels considering also the speed of the movement.
The artefacts we found are essentially due to two causes: the first takes place when a single object has movements where its components overlap, the second concern pixels that have divergent movements.
The result of these two problems is the creation of blank pixels or “gaps” that create fully black pixels or partial matte pixels on the resulting image.
In order to resolve these problems -> Continue reading ‘Motion blur: current artefacts and possible solution’->
The initals experiments made by Petru showed that tracing the entire path of each pixel generate visual patterns in the final result.
Inspite of the physically correctness of the result, the presence of such arctifacts makes the visual result unpleasant. The arctifacs are caused by the non-uniform accumulation of pixel traces. Implementing anti-aliasing algorithms to trace lines or using working buffers with a resolution wider than the original (up to 10X) are not enough to avoid the appereance of those patterns.
We then tackled the problem from a different perspective. Applying principles of signals and digital filters, we developed an algorithm that even in its simplest implementation provides acceptable results.
The algorithm is based on the creation of equidistants slices that define the image at an instant of time during the opening of the simulated shutter.
These slices are accumulated in a buffer according to a Gaussian distribution to avoid aliasing. Then a low pass filter (in our case a gaussian blur) is applied to the generated image to eliminate the aliasing due to the creation of slices (“stair effect”).
The results compared with the vector blur of Blender are promising. You can see an example in these two videos compared.
Motion blur improved node rendering

The future development goes in the direction of -> Continue reading ‘Evolution of motion blur node’->
In order to improve the compo node “Vector Blur”, Petru had to understand what is inside it and how it works.
These two awesome files realized by him, show the structure of Vector Blur node and the variables inside it.
- Vector Blur node
- Data Type
We hope these files can be useful for whom that want to start understanding how a compositing node works in Blender 2.5 (at least the Vector Blur one)
Have you been impressed by the chart?
Are you still interested in reading more?
Our developing crew (Olaf and Petru) wrote the document that describes the direction we choose!
It’s still too early to publish the code but the document is an interesting reading!
Hope you like it!
Petru is the guy who is analysing the vector blur node in order to improve it.
In this post we are sharing what he has discovered so far and how he’s getting on.
His first step was to analyse how the vector blur node works and if we found any problems.
He made some renders to discover what are the differences between the vector blur rendering and the 3D motion blur.
The 3D Motion blur truly calculates the difference between the frame that is actually being rendered and the two neighboring frames (the previous and next frames). The vector blur node, on the other hand, does just a 2D rendering.
We found problems when we try to render an object with non-linear movements and with rotation around an axis.
Here we can see some “holes” in the rendering and also that the projected shadows aren’t influenced by the vector blur.
First of all, Petru started to understand what’s inside a node, trying to create a brand new one that invert the RGBA channels of a render.
After he had succeeded in doing that, he started to learn the vector blur node structure.
Now he is trying to improve it and this is his first result.
Hi everybody!!
This is the post where we invite you to leave a comment regarding our projects,
open source software, Blender and its development,
or everything crosses your mind!!
So come on and leave a message.
We’ll try to respond to everyone as soon as we can.