Render Engine Comparison: Cycles vs The Rest
Cycles has come a long way since we first saw that super cool train demo from Brecht back in 2011, but how does it compare to other path tracing renderers available today? Well in this post, I put cycles to the test against 5 other render engines that can be used with Blender:
Naturally, it's not easy to compare all the renderers fairly, so here's how I did it:
All the rendering was done using CPU rendering, on an Intel i7 3770 in a desktop with 12 GB of RAM and Windows 7. For Octane, a purely GPU renderer, an nvidia GTX 650 was used (*it performs very similarly to the Intel i7 3770).
I started by doing simple tests with cubes and monkeys, comparing materials and lighting between each renderer and finding out where the terminology differed.
Then I gathered all the information that I could from the official documentation, forums, YouTube videos, etc, and worked out which rendering algorithms from each engine would work the best in different situations.
Once I was confident enough, I started to adapt three scenes for the comparison: a car render, an interior, and a scene from a short film. I jumped randomly between each renderer and slowly narrowed down which options were better suited for each scene.
All in all, it was a bit more than 3 months of testing... and believe me, it was fun.
But before I get to the actual testing, here are a few things you should know about using them with Blender:
Price and Blender Integration
|Render Engine||Price||Integration||Material Nodes||Viewport Rendering|
|Octane||$460||Separate Blender Build|
|V-Ray||$350||Separate Blender Build|
Cycles and LuxRender are both integrated using add-ons created by the developers of that renderer, which means they're generally reliable and well-documented.
Maxwell and Mitsuba are also integrated using add-ons, but those add-ons are developed by people who did not work on the renderers themselves. This isn't necessarily a bad thing, but it might mean the documentation isn't up to scratch and getting support could be difficult.
Then Octane and V-Ray actually have their own separate version of Blender, which can be a bit annoying to manage. It also means that there is a bit of a delay after official Blender releases, while the renderer developers tweak their code to be compatible with the new Blender before releasing an update.
Node-based materials and live viewport rendering are all the rage these days, but they're not completely necessary so it's just something to keep in mind.
But now down to business!
Round 1: Car Render
No render test would be complete without a car scene!
So what should we keep in mind about this test?
- It's lit using an HDR image, which can be difficult to sample correctly and thus produce fireflies.
- Glossy shaders everywhere! That's also a big cause of fireflies!
- There's a lot of intricate model detail, which could slow down the render a bit.
So let's see how each renderer did:
Round 1 Results
So Cycles didn't do too well, but there are surprisingly few fireflies to be found.
Maxwell was definitely the slowest and noisiest of them all, but the noise is slightly appealing in a way, like a natural film-grain effect.
LuxRender got a fairly decent time, but it's not quite as clean as Cycles if you look closely.
Yet Mitsuba, Octane and V-Ray all came very close in the end, and are all quite equally noise-free.
Mitsuba for being really fast and having great results directly out of the box.
Round 2: Interior Scene
Interior scenes are quite problematic to render since an important part of the lighting information comes from indirect light (bouncing off objects), which is a huge source of noise.
So to keep in mind for this scene:
- Lit with a single sun lamp and 2 big area lights (one on the ceiling and one in the window)
- All of the fill-light comes from indirect bounces.
- Many image textures.
- Some fur on the carpet.
Round 2 Results
Although Cycles has technically the second slowest time, it's not far off from the average. And again, even for an interior scene, there are surprisingly few fireflies.
Again, Maxwell came last with the slowest time by far, but there's something about that film-grain effect which makes it stand out.
Mitsuba, Octane and V-Ray came close again, although it it does seem like they struggled with noise.
To address the elephant in the room, holy crap LuxRender! That new API is fast! It does look a little out of focus, but still!
Despite LuxRender's crazy speed, I'll have to recommend V-Ray for this one. It's much sharper than LuxRender and pretty quick too. It also gives some very appealing indirect illumination.
Round 3: Caminandes
For the final scene we have a special guest: Koro from Caminandes!
This scene has quite a few things to keep in mind:
- Tons of hair!
- Real depth of field (not post-processed).
- Asset linking and instancing through ppost systems (grass and rocks).
Round 3 Results
Cycles was a little below-average on this one, but it was actually a lot cleaner than the other renderers.
LuxRender's new API (which is what made it super fast in the last scene) doesn't actually support hair yet, so I had to use the old API and the result speaks for itself.
For a change, Maxwell did very well in this one, and in my opinion produced the nicest looking hair. Octane and V-Ray came close, but their hair looks pretty odd to me.
But what a disappointment to find out that Mitsuba doesn’t support hair in Blender! In cases like Caminades that’s a deal breaker.
Definitely Maxwell. That hair is just plain sexy.
But if you'd like to have fast, clean results and tons of settings to optimize production rendering, V-Ray might be a better bet.
So at the end of all that, here are the average render times for each engine:
Average Render Times
If you base it purely off speed, V-Ray seems like the obvious choice, but it's never really that simple.
So lets take a look at each renderer...
Cycles is definitely the youngest of all these renderers, but it's able to stand proudly among them.
Is there still a long way to go? Sure. But that's why projects like Cosmos Laundromat are so important.
So lets take an objective look...
- Fairly simple to learn (it's very interactive).
- Material nodes and viewport rendering are the bees knees.
- Good documentation.
- Still young, not completely optimized.
- Only 2 rendering algorithms, neither suitable for caustics.
My impression of LuxRender has always been that it's very accurate, but very slow. However with the new API and transition to version 2.0, it seems it'll soon be a real contender with the top-dollar renderers.
- CPU and GPU rendering.
- Many rendering algorithms and samplers to choose from.
- Lots of post-processing filters like lens effects and noise reduction.
- Great documentation with many examples.
- New version doesn't support all features yet (e.g. hair)
- It's pretty complicated and hard to learn.
On average it seems Maxwell was the slowest, but it has a unique look to it that I find appealing. After all, real cameras have curves noise.
- Uses real-life units of measurement, making it very easy to learn.
- Simple, but powerful material system.
- The 'Multilight' feature lets you change the intensity of any light after the render is done.
- No material nodes, which makes it a bit tricky to work with textures.
- The slowest and noisiest on average.
Mitsuba is actually a renderer focused on research, and is not actually intended to be used for 3D production. That means you may encounter some serious show-stoppers like no hair support, but it's great for testing new rendering algorithms.
- Many rendering algorithms and samplers to play with.
- Excellent documentation.
- Open-source and popular among researchers, making it the perfect playground for features that haven't made it into mainstream renderers just yet.
- Generally not suited to serious 3D production (lacks important features).
- Very complex and hard to learn.
As someone coming from Cycles, Octane felt quite familiar. It was the first commercial engine to officially support Blender, which I hope is a trend other engines will follow (I'm looking at you Arnold).
- Like Cycles, it's very interactive and easy to learn.
- Nice documentation.
- Has the ability to optimize meshes for animation rendering.
- Only a few rendering algorithms available.
- You need a license for both Octane, and the Blender "plugin" (which is actually a separate modified version of Blender)
Among all of these renderers, V-Ray is by far the most popular.
Why? Because it's the fastest, and most adjustable renderer of them all.
- Extremely tweakable - many algorithms, samplers and settings for each to optimize rendering for both animations and still renders.
- You can even use more than one rendering algorithm at the same time.
- Very popular, meaning there's lots of tutorials and examples floating around the interwebs.
- Because of it's complexity, it has a pretty big learning curve.
- The documentation is actually pretty bad.
If 3D is just a hobby for you, forking out $300-$700 probably doesn't sound like much fun. But luckily, we're spoiled with a choice of excellent free renderers (RenderMan recently became free too). Or if you want to just try the paid ones, most of them offer free demo versions, or even full versions for non-commercial use.
If you use Blender professionally, it's a good idea to stick your fingers in all the pies. Try all the renderers, and figure out for yourself which you prefer the most. Not only will that give you a better understanding of rendering in general, but it will also increase your chances of getting a job.
Now I’m sure you’re going to jump straight to the comments and tell me how I'm biased and this is not a completely accurate comparison. Of course it's not!
Rendering is a crazy complex field, and each renderer could be tweaked for days to optimize the result in a passionate effort to prove its worth.
But a part of this comparison involved learning each one, and finding out how difficult it is to use and how long it takes to get good enough to achieve decent results, from the perspective of somebody that is already fairly experienced with Cycles (as you are).
Of course, I didn’t even mention stuff like GPU rendering, Subsurface scattering, volumetrics and motion blur, nevermind animation and distributed rendering!
I hope this post has given you that itchy feeling that we call curiosity and that you feel like going out there and do your own experiments with renderers. Once you get over the first frustrations it’s a fun ride!
Happy blending everybody!
- Thanks to Maxwell, Octane and Chaos Group (V-Ray) for giving us a free license for testing their renderers,
- Mitsuba, LuxRender and Blender for making their renderers available to the public,
- Andrew Price and Greg Zaal for their feedback
- The artists that shared their scenes on Blendswap or the Blender Foundation, allowing us to run the tests.
Have you ever used one of these renderers yourself? If so, what's your experience and recommendation?