Arnold is a quite new and great renderer. Created by Marcos Fajado, a genius concering rendering, the renderer was able to spread over the whole 3d community. It is a unidirectional pathtracer with a almost complete feature set. It's api allows the easy creation of shaders or procedural geometry with c++ plugins. Compared to mentalray it is really fun to work with the API because of it's simplicity. Arnold combines the productivity of Renderman with the advantages of a modern path tracer. Arnold for maya called MtoA has it's own very cool renderview, it is very responsive and lighting fast, exactly the way a renderview should behave.

One of the strengths of Arnold is it's simplicity. You do not have a huge bunch of render settings which you have to master. The main controls are the number of samples for camera, glossy, diffuse rays, and the raydepth with other words how many bounces you want to calculate.

Due to it's path tracing approach and the fact, that you do not have any light caches, you get no interpolation of indirect illumination and you always have crisp contact shadows and you never get gi flickering, only noise. The downside of this approach is that the indirect and direct illumination has to be calculated for every frame even if the illumination does not change at all and you have a camera flythroug only. In these cases such renderer like mentalray or vray are much faster because they can calculate the direct illumination only once to produce indirect illumination.

Since it's early days, Arnold was used in feature films like Monster House and almost all modern VFX movies.

The company was aquired by Autodesk in April 2016, but they will still exist as a seperate company and will continue to support other 3d packages like Houdini or Cinema4d. Since July 2016 a plugin for 3dsmax is available.

In July 2016 Autodesk released Maya2017 with built-in MtoA. There is only one problem: You cannot batchrender with the builtin MtoA. To do so you need an extra license what is quite expensive.



Review of breaking bottle scene:

Arnolds implementation into Maya is quite nice even if there are still some missing features or incompatibilities. A small example is that maya pointlights or spotlights get a default quadratic falloff what is nice if you have a physically based scene but you will have a black rendering if you forget to change the exposure.

With some experience using Arnold, it was quite easy to setup the breaking bottle scene. I used a aiStandard material with refraction and specular reflections. A quite confusing point in Arnold is that you have reflections as well as specular reflections. The reflections parameter only calculate direct reflections without any roughness while specular reflections calculate indirect specularity what are reflections as well but with a certain amount of roughness.

Another feature which can be a small problem during production is that if you want the shaders to be evaluated as shadow shaders, e.g. if you have transparent or refractive geometry, you have to turn off the "opaque" switch on the shape node. I always forget it the first time and then my shadows are opaque. This switch enables Arnold to decide if a shadow shader or transparency has to be evaluated or not. This makes sense because Arnold is not really good with multiple transparencies like foliage. In these cases it can be much more efficient to render real geometry instead of non opaque surfaces.

A good thing about Arnold is that you only have a few main settings to control the final quality. There are camera samples, glossy, reflection, refraction and volume samples. The camerea samples are often called antialiasing samples because they are responsible for geometry samples what results in antialiasing. Then you have additional controls about light samples in every light. But that's all.

Since Arnold is a unidirectional pathtracer which does no irradiance caching it tends to create noise and most of working time you will try to reduce the noise to an acceptable level. In the bottle test scene I did not try to remove noise completely what is possible but not neccessary in my opinion. The zoomed in picture below shows the resulting noise. And the mentioned controls help to reduce noise.

I usually start with camera samples until my motionblur or antialiasing quality is fine. Motionblur quality can be seen easily in the alpha channel. Then I increase the light samples until the shadows are more or less noisefree. Next I check the corresponding channels for noise like indirect diffuse, specular, reflection etc. and increase the correspoinding samples until the noise in the channel is okay.

This works fine and the Arnold render view simplifies the task because it has a fast interactive update and you can see all rendered AOV's what is impossible in Maya's builtin render window.

One drawback of the fact that Arnold does no caching is that fact that it always rerender the whole indirect illumination. Often you have scene where you only move the camera and the lighting does not change. In these situations mentalray and others offers a way to precalculate the indirect light samples and reuse them in final rendering what reduces rendertime a lot. In Arnold every image calculates all indirect illumination from scratch. The advantage is that you cannot get GI flickering, only noise and that you get quite fine indirect detail what is sometimes missing if the indirect illumination come from an interpolated irradiance cache.

Another smaller disadvantage common to all unidirectional pathtracers is the fact that it only does diffuse caustics. My bottle scene could benefit from the nice bright and detailed caustics which can be created by photon mapping or bidirectional pathtracers. But even the diffuse ones look nice.

The overall experience with this simple scene was really nice and it is fun to work with.

Images, movie and donwload of the scene can be found here.


Last update: 10.2016