Arnold

Data

Type

Release 5.3:

Very exciting news: Arnold now works on GPU. The newest release now can render on NVIDIA gpus. Still in beta but very promising. A lot of important features are not yet supported. e.g. VDB's, OSL, limited AOV's, no deep output. Beside this now feature the adaptive sampling has been improved, as well as skydome sampling. Microsurface multiple scattering now takes into account the energy loss of glossy shaders with high roughness. Randomwalk sss scatters more accurately. The smart opaque option now turns on the opaque flag if it is needed by the shaders transparency or opacity.

Release 5.2.2:

A lot has changed since the last update. Release 5 changed the internal shading principles and introduced some new features. Arnold now supports OSL what offers an easy way to implement own shaders or texture nodes. The workflow is quite easy and fully transparent. The c++ shader API changed to a closure paradigm. With this new approach you do not calculate the complete shader in one go, but only create closures, the same way it works in OSL. Closures can be seen as commands which will produce the final output on demand. A nice sideeffect of this approach is that lightloops are gone. You can implement them if you really want to, but with closures you do not have to care about lightloops any more. The renderer core now controls how lights are calculated an it can optimize it. Arnold introduced LPE, light path expressions where you can define almost all your AOV's via light path expressions which are much more flexible and not limited to the buitin AOV's. Two denoisers are now implemented, Nvidias Optix denoiser and noice, Arnolds version. Cryptomatte is now buitin and you can create mixed depth exr files. Additionally, procedurals and ass procedurals now get a unique namespace which solves some problems. A lot of other stuff changed to improve Maya and other DCC integration as well as speed and memory demands.

Info

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.

Features:

 

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: 01.2021


powered by webEdition CMS