Cycles in Blender 2.8: Performance, Shaders and Workflow Updates

A detailed review of the Cycles improvements delivered with Blender 2.8, covering performance, hardware support, motion blur, Cryptomatte, displacement and shaders.

Archive republication: This technical review originally appeared in Digital Production 05:2019 and was republished online in September 2021. Software behaviour, hardware support and workflow details reflect those historical versions.

This article originally appeared in DP 05 : 2019.

The path tracing render engine Cycles can now be found in many programmes or, as in the case of Cinema 4D, is available as Cycles 4D in the form of a plug-in. However, the main development is still taking place in the Blender environment, which is why a new Blender version is exactly the right time to take a look at the new features and optimisations.

In addition to preview builds for Blender 2.8, versions of Blender 2.79 that incorporated the Cycles improvements could also be downloaded via the build bot. Professionals have therefore been able to benefit from the new features and faster rendering for a long time. With Blender 2.8, the new version of Cycles is now available to a wider audience for the first time.

More power

As usual, Cycles has worked on performance and resource consumption. There have been improvements for both CPU and GPU rendering with OpenCL or CUDA. For example, the graphics card and main processor can now also render an image together with CUDA, whereby a small tile size of 16 x 16 or 32 x 32 pixels, for example, should be optimal for both types of hardware. These settings could therefore disappear in future Blender versions, a fate that has already befallen the Transparent Shadows option, as it is no longer expected to result in a loss of performance on any architecture.

Anyone rendering with CUDA no longer has to worry about an out-of-memory error, as Cycles can now swap data that no longer fits into the graphics memory into the computer’s normal working memory. However, this comes with a performance penalty.

Hardware support decreases

Unfortunately, CUDA rendering can no longer be used with cards from the 4xx and 5xx series, nor on 32-bit systems. OpenCL rendering can no longer be used on Apple systems due to compiler problems and the fact that Apple no longer wishes to support OpenCL in the long term.

Motion Blur

Motion blur is a major issue with path tracing engines. Cycles is able to sample the movement of objects and the camera as finely as desired, which makes simulated long exposure shots possible, for example. Another new feature is that motion blur is also possible with animated scaling.

An example of optimisations in Cycles. Adaptive subdivisions now have a lower resolution the further away they are from the camera’s field of view. As a result, the memory consumption of this scene has been reduced to around a fifth
Vector Displacement – Example of Vector Displacement with Cycles in Blender 2.8. On the left completely without, in the centre regular, on the right in exaggerated form. Model from http://threedscans.com/

Cryptomat

Cycles can now output a cryptomat, which allows a rendered image to be segmented. This is much more effective than the previous ID passes for objects and materials and also supports motion blur, depth of field, transparency and anti-aliasing. And as this is an open standard, this information can be used not only with the Blender Compositor, but also in all programmes that support Cryptomatte.

Ambient Occlusion

Instead of a pure shader, Cycles can now also output ambient occlusion (AO) as a colour or float. This means that the feature can finally be used for texturing and in combination with other shaders. Previously, AO either had to be baked or was only available as a pure shader.

Vector Displacement

Cycles supports vector displacement in three dimensions in Blender 2.8. Previously, displacement in Cycles only worked in the direction of the normal using greyscale images, similar to bump maps. Now the three spatial dimensions can be saved separately in the colour channels of an image. This also makes it possible to save entire objects in images (for example, relative to the default cube). This is best done in Object Space, which renders somewhat faster than Tangent Space, which is suitable for animated objects where the displacement must follow the deformation of the surface.

The previous grey displacement input of the output node has been removed and replaced by a blue vector input. There is a separate node for converting the previous one-dimensional displacement to the new vector version.

With the new Principled Hair BSDF shader, you no longer need complex node networks to display realistic hair. Instead, you can determine the appearance via values such as the melanin content
Long exposures – The movement of cameras and objects can now be sampled as often as required, allowing the simulation of long exposures
Ambient Occlusion – An example of the application of the new Ambient Occlusion (AO) node in Cycles by Emiliano Colantoni. The amount of rust in the corners is controlled by the AO strength

Dicing Cam

Adaptive subdivisions now subdivide objects less the further they are from the camera’s field of view. This saves computing time and memory, but can lead to a popping effect or flickering shadows in animations. This can be remedied by a separate dicing cam, which covers the entire area of the animation and thus ensures constant tessellation.

Bevel in the shader

Anyone who frequently works with data imported from CAD programmes will know that the bevel modifier cannot generate an accurate edge for every geometry. The bevel shader, on the other hand, does not care about the topology of the model, which is why it can achieve better results in such cases. However, this independence can easily cost 20% render time, which is why you should continue to use the bevel modifier if possible.

Random Walk SSS

The Subsurface Scattering (SSS) shader now supports the random walk method. This is also available for SSS in the Principled BSDF.

It simulates real volume scattering in the object and is particularly suitable for thin objects. Geometry is also displayed more finely.

However, the objects must be closed for this. Overlapping surfaces and holes lead to artefacts with random walk SSS. In addition, more noise can occur in flat areas than with other SSS methods.

Shader Side Beveling – A model by Juri Unt shows the power of the new bevel shader. All the highlights on the edges only appear because the bevel shader simulates a rounding. The actual geometry is perfectly sharp
Random Walk – The new random walk model of the Subsurface Scattering (SSS) shader is particularly well suited for filigree elements such as the legs of this crab

Principled, principled, principled

The Principled BSDF has now integrated transparency or alpha and emission, and there are now two more Principled shaders. The Principled Hair BSDF is a hair shader in which the colour of the hair can be specified either directly or via properties of the hair such as the melanin concentration or the absorption coefficient. So on the one hand, you can use it in a more artistic way, but on the other hand you can also use values measured in the real world. Some of you may have already seen the results of this shader, as it was first used by Disney in the film “Zootopia”.

Another new shader in the Principled journey is the Principled Volume BSDF, which simplifies the visualisation of fire and smoke. Previously, volume scatter and volume absorption had to be combined for smoke, and an emission node was added for fire. The Principled BSDF combines all these shaders in one and automatically retrieves the volume data if the object to which the material is assigned is the domain of a fire or smoke simulation.

Conclusion

Cycles has become faster, more resource-efficient and more compatible with common workflows in Blender 2.8. The new Principled Shaders save working time and enable even less technically experienced users to achieve good results. If you also consider the many other new features, it becomes clear that Cycles is on the right track.

Cryptomatte – An example of the use of Cryptomatte. Segmentation information is stored for rendering, which can be selected and combined by the user as desired. In this case, all elements of the vehicle with driver have been combined into a B/W mask. The result is an isolated object without surroundings