Rendering in Blender: Close-up of Workbench, Cycles and Eevee
Blender is quite the fascinating creature: An open source engine that caters to the industry, but not immediately acknowledged by it. A powerful and versatile system, but community supported and free. All of this and three built-in rendering engines makes Blender something of a mystery, but one with so many possibilities. Keep reading to find out more about what this software has to offer in terms of rendering power, as we take a closer look at each of the engines included with Blender.
Built-in Blender Rendering Engines
Throughout their development cycles, Blender’s rendering engines have been re-tooled and optimized to go head to head with the industry standards in every capacity, including film, television, VFX workflows, and more. The rendering engines — Workbench, Cycles, and Eevee — that come standard with Blender have some of the most sophisticated parameters and options available for creators. But what makes each unique?
Workbench Engine
Originally known as Blender Render, and not in any way meant to be an engine for rendering, Workbench is the software’s original engine, optimized for the fastest, most graphically simplistic rendering during the modeling and test animation process.
We don’t recommend using it as a final rendering engine, but you can use it as a way to display your work while modeling in the 3D viewport. When you need to show your client a basic progress report on where the scene, animation, or rig setup is in terms of completion, Workbench is a great option.
Similar to 3D sculpting programs such as Zbrush, Workbench offers an option to randomly or individually attribute colors and basic material captures (or MatCap) to specified shapes and objects to make your model stand out for test animations or scene compositions. Vertex and texture painting are also options for further distinction. Additionally, it offers viewport rendering options, such as see-through, or x-ray shading, as well as cavity and simple shadow shading.
Cycles Engine
Here is where things begin to get a bit interesting.
Cycles is a physically-based, unbiased path tracing rendering solution for Blender. It can be utilized by either your workstation’s CPU or GPU to produce beautiful final scenes and animations.
Rendering in Cycles involves using samples (a single ray of light that is being sent from a pixel to the camera) to generate the operations in a single scene. In order to account for every possible light path (reflective or diffractive) that potentially exists within a scene, multiple samples are necessary to provide a better result. The more samples you have, the higher the quality of your scene. At the same time, the more samples you have, the longer the rendering time and the more taxing it is for the processor.
Cycles’ main characteristic is its path tracing capabilities. Similar to ray tracing, path tracing is an algorithmic process that renders imagery by simulating how light reflects on an object. The algorithm traces its light paths from the camera as opposed to from the light source, making it a sort of “backwards” path tracing engine.
Since many materials tend to make light bounce and scatter, Cycles has to take this into account by using Progressive and Branched Path Integrators. Progressive Integration splits the ray at the first bounce with a material while Branched Path Integration reads every potential path and follows it before and after the ray meets a material, splitting it in multiple directions.
Cycles can handle all post-processing effects including depth of field (DOF), bloom, motion blur, ambient occlusion, and screen-space reflections. Pixar’s native rendering engine Renderman is actually quite similar in behavior to Blender’s Cycles engine, but where Renderman falters is its lack of a user-friendly interface that Cycles is known for.
On top of all this, Cycles is also an external plug-in that can be utilized by other software like Cinema 4D and Maya, making it one of the most versatile engines used in modern 3D software. It’s free and already integrated into Blender, making it a great deal for any 3D model designer on a budget.
Eevee Engine
There are times when speed is more important than accuracy and Blender’s Eevee engine caters to that need. Eevee (short for Extra Easy Virtual Environment Engine) is Blender’s most recent built-in rendering engine, powered by similar code used for the Unreal Engine developed by Epic Games. And while it can’t compete with Cycles’ visual capacity, its unmatched speed is where it shines.
This physically-based engine can be used not only as a renderer, but also in real time for creating physically based rendering (PBR) and procedurally textured assets, yielding impressive, immediate results in Blender’s viewport. Where Unreal is mainly used for gaming, Eevee shines brightest when used for animation and VFX.
It shares the same node-based material (most notably, the Principled BSDF material) system available in the Cycles engine, and it can be easily supplanted or substituted in pre-existing scenes made in Blender. However, more advanced materials like subsurface scattering and clearcoat materials tend to be less than stellar, though still quite impressive, when running on Eevee.
When rendering, you can rely on Eevee’s ability to handle post-processing operations including DOF, ambient occlusion, and screen-space reflections without difficulty.
What Is LookDev / Material Preview?
LookDev mode, also referred to as Material Preview, isn’t so much a rendering engine as it is a shading preview for materials produced in Blender. The modeling process is time-consuming and requires patience. This particular mode helps shave off the amount of time it takes to assess a scene and roughly determine its rendered conclusion.
Sophisticated effects that would more likely be used in other rendering engines are initially disabled but can be easily turned on and off, such as DOF, motion blur, and bloom.
Rendered shading options are also available. For example, LookDev can use scene lights or emission materials, or rely exclusively on high dynamic range images (HDRIs) for its environmental lighting. If you already have a color palette in mind, having an image that mirrors that palette can be applied to the environment. This can help you to better understand what it does to the objects in your scene and makes the need to set up lights unnecessary.
Third-Party Render Engine Plug-ins
Blender users aren’t limited to Workbench, Cycles, and Eevee. There are several other compatible (and free) renderers available from third-party developers that can be integrated into Blender. While both Cycles and Eevee have their strengths, they may not fully meet the needs of your project, industry, or workflow.
For example, if you want to use a cloud-based render farm to quickly finalize a render, you may need to convert your file to the render farm’s supported rendering software. At Render Pool, we use AMD’s high-performance renderer AMD Radeon ProRender, which is a free plug-in supported by most major 3D production software including Blender. It’s always possible to convert a project after the fact, but you may need to make adjustments to settings, especially if you have an elaborate material node tree, as they are not always 100% compatible between render engines.
Rendering in Blender Will Only Become More Sophisticated
For some newcomers to 3D modeling and rendering, shelling out several hundreds of dollars for software is not exactly an enticing prospect. Fortunately, Blender provides you with good quality renderers out of the box. And with third-party developers like AMD, Octane, and LuxRender producing new and free options, let alone creating amazing rendering plug-ins that allow for both CPU and GPU-based rendering like ProRender, it’s only a matter of time before the capabilities of Blender’s built-in engines further improve, making the software an all the more formidable competitor in the industry.
We encourage you to take the time to regularly explore all of the options available for Blender users as new add-ons and features continue to be released. Happy rendering!