New Pixel Filter Type: Blackman-Harris

A new type of pixel filter called “Blackman-Harris” has been added to Cycles by Lukas Stockner to compliment the existing Gaussian and Box filters.

From the commit:

This commit adds the Blackman-Harris windows function as a pixel filter to Cycles. On some cases, such as wireframes or high-frequency textures, Blackman-Harris can give subtle but noticable improvements over the Gaussian window.

See also: The initial patch with some discussions.

What is a pixel filter you ask? As I understand it, it’s basically the function used to apply anti-aliasing in your render. Different filters use slightly different math and methods to calculate how each pixel appears relative to its neighboring pixels, which makes edges look smoother.

The difference between the three types is most noticable on thin details like wires:

Continue Reading…

New Custom Motion Blur Curves

A couple of weeks ago, Sergey implemented the ability to control the exact appearance of motion blur streaks by using a simple curve widget in the render settings:

moblur_curves_drawFrom the initial patch:

Previously shutter was instantly opening, staying opened for the shutter time period of time and then instantly closing. This isn’t quite how real cameras are working, where shutter is opening with some curve. Now it is possible to define user curve for how much shutter is opened across the sampling period of time.

This could be used for example to make motion blur trails softer.

Shutter curve now can be controlled using curve mapping widget in the motion blur panel in Render buttons. Only mapping from 0..1 by x axis are allowed, Y values will be normalized to fill in 0..1 space as well automatically.

Y values of 0 means fully closed shutter, Y values of 1 means fully opened shutter.

Cache BVH Is No More

BVH caching was originally added in 2.62 in an effort to bypass the (at the time) slow process of building the BVH (Bounding Volume Heirarchy, which is used speed up ray tracing). It would basically store the BVH on your hard drive so that the next time you render the scene (assuming no geometry had changed), it would just read it from the hard drive instead of rebuilding it.

But after just two more releases (2.64), BVH building was sped up dramatically by using all the CPU cores instead of just one. From then on, it was usually quicker to rebuild the BVH for each render than to read the cache from your hard drive, particularly in the case of animations where the BVH changes for each frame and has to be rebuilt anyway.

And thus, that little Cache BVH checkbox became obsolete.

To add fuel to the fire, the BVH cache was never actually cleared automatically (on Windows at least), leaving you with many gigabytes of cached data that you had to delete yourself. Just look in C:\Users\<you>\AppData\Roaming\Blender Foundation\Blender\2.75\cache to see what I mean. Mine was 170 GB before I realized what was going on.

So finally, Thomas has removed the BVH cache feature:

Cycles: Remove the BVH cache feature. […] The BVH cache was added before we had a multi-threaded BVH build, and a lot of other optimizations were done since then, which makes this not useful anymore.

Fix T46162.

Finally, we are free from the clutches of accidentally slow renders and congested hard drives.

Pointiness Output

pointiness

Woooo! I have to say I’ve been waiting for this for years!

It’s basically the same as dirty vertex colors, but on the final geometry (after modifiers) and without all the hassle of adding it to every single mesh.

The commit from Sergey [227a9407]:

Cycles: implement pointiness geometry attribute

This attribute means how “pointy” the geometry surface is, which allows to do
effects like dirt maps and wear-off effects on render geometry. This means the
attribute is calculated for the final mesh which means no baking (which implies
UV unwrap) is needed. Apart from this the behavior is quite close to how vertex
dirty colors works.

The new attribute is available as an output socket of Geometry node.

There’s no penalty for the render time, only some delay on scene preparation
(the delay is linear of the mesh complexity).

Reviewers: brecht, juicyfruit

Differential Revision: https://developer.blender.org/D1086

Equi-Angular Homogeneous Volume Sampling

equiangular

    This adds an option in the Volume Sampling panel, which helps rendering lamps inside or near volumes with less noise. It can also increase noise though and needs improvements to support MIS and heterogeneous volumes, but since it’s useful in some cases already (especially world volumes) it’s there now.
    Based on the code in the old branch by Stuart, with modifications by Thomas and Brecht.

-Brecht, commit

Thomas rendered the image above with just 10 samples! Cycles isn’t as slow as you thought ;)