If you see something like this:
[Arnold]: MAXtoA_Shaders.dll was compiled against non-compatible Arnold 184.108.40.206
it usually means you have an older Arnold trying to load something compiled with a newer Arnold. There’s two common reasons for this happening:
- The system PATH includes the location of the older Arnold, so the older Arnold is loaded instead of the Arnold version included with the plugin.
- The plugin install is messed up, and has the wrong Arnold version in it.
kick checks the current working directory for plugins (shaders and procedurals). That means kick tries to load all .dll/.so/.dylib files in the current directory.
So if you do this:
Then you’ll get a warning like this (plus a pop-up System Error dialog that says “Qt5Core.dll is missing from your computer”).
loading plugins from .
WARNING | unable to load dynamic library .\ai_renderview.dll: The specified module could not be found.
On OSX, the warning would say ./libai_renderview.so, and on Linux, ./libai.so
Notice the “loading plugins from .” The single period, or dot, represents the current directory.
The solution? Don’t run kick in the MtoA bin folder. Don’t run kick in an any folder where there are non-plugin libraries.
Not all renderers have batch render options, so if you click the box beside the Batch Render menu command:
then you’ll get a warning:
// Warning: file: C:/Program Files/Autodesk/Maya2017/scripts/others/batchRenderOptions.mel line 19: Renderer "arnold" does not provide batch rendered options. //
// Warning: file: C:/Program Files/Autodesk/Maya2017/scripts/others/batchRenderOptions.mel line 19: Renderer "mayaHardware" does not provide batch rendered options. //
// Warning: file: C:/Program Files/Autodesk/Maya2017/scripts/others/batchRenderOptions.mel line 19: Renderer "mayaHardware2" does not provide batch rendered options. //
// Warning: file: C:/Program Files/Autodesk/Maya2017/scripts/others/batchRenderOptions.mel line 19: Renderer "mayaVector" does not provide batch rendered options. //
All the rendering options for Arnold are in the Arnold Render Settings.
To start a batch render, click the Batch Render text in the Render menu:
The valence of a vertex is the number of edges connected to that vertex. In Arnold, the maximum valence is 255 (that’s because of the data type we use to store the valence; we minimize the memory requirements since this is stored per-vertex).
If a mesh in the scene has a vertex with more than 255 edges, you’ll get a WARNING like this:
[polymesh] example_mesh: mesh has at least a vertex with valence higher than 255, disabling subdivision
But if the adaptive subdivision results in a vertex with too many edges, you’ll get an ERROR:
ERROR: [arnold] [subdiv] example_mesh: edge (144578,287741) in face 263433 has a vertex that exceeded the max valence limit of 255
// Warning: file: C:/Program Files/Autodesk/Maya2017/scripts/others/supportRenderers.mel line 64: The renderer "arnold" used by this scene, is not currently available. The "mayaSoftware" renderer will be used instead. //
By itself, this warning doesn’t mean there’s a problem with MtoA or Arnold. The warning means that the MtoA plugin isn’t loaded, so all you have to do is load MtoA:
- Click Windows > Settings/Preferences > Plug-in Manager
- Scroll down until you see mtoa.mll
- Click the Loaded and Auto load check boxes.
However, if you get a “Unable to dynamically load : ../mtoa.mll The specified module could not be found.” error, then that’s a different problem.
WARNING| Rendering utilization was only 48%. Your render may be bound by a single threaded process or I/O.
In general, if you see this warning about low machine utilization, that means that a significant amount of time is being spent in just one thread, and if you want to render faster, you need to look into possible issues.
- Reading textures (file I/O) isn’t multi-threaded, so that can reduce machine usage because threads will be waiting while textures are read from disk.Check the amount of texture data “Read from disk” and the “File I/O time”, and compare the amount of texture data with the texture cache size (for example, if you’re reading 5GB of texture data but the cache is just 1GB, you can increase the cache size).
- Subdivision isn’t multi-threaded yet, so a few huge objects might slow things down. But in general, multiple objects will be subdivided at the same
time (one thread per object) so it isn’t usually a big issue.
- Loading standins is also file I/O so each file is loaded in a single thread. File I/O is dependent on the file system, not the CPU speeds, so adding
more threads to IO won’t help. If this is what is causing your low CPU utilization, the only way to improve that is to get faster disks, file
servers, networks, etc…
- Displacement is multi-threaded. A single mesh can be displaced by multiple threads and multiple meshes can be displaced at the same time.
- Another possible reason for this warning is because there are multiple copies of Arnold running, or Arnold and some other compute-heavy application, so that Arnold can’t get to 100% utilization because Arnold is competing with other processes. You can check your Activity Manager (OSX), Task Manager (Windows), or top (Linux) to see see what else is consuming CPU time.
- You’ll also see the utilization warning with relatively simple scenes, because the single-threaded work of loading the scene and plugins and textures
takes longer than the actual rendering.
hat tip: Thiago
Shader nodes must have unique names.
So if you’re using standins, each standin ASS file has to have unique shader node names. Otherwise you’ll get unexpected results when you render, like all standins having the same shading, or some “flickering” in animation if the order of standin loading changes.
In the Arnold log, look for “node name already in use” warnings:
WARNING | [ass] standin_01.ass line 50: node name "aiStandard1SG" already in use
WARNING | [ass] standin_01.ass line 58: node name "aiStandard1" already in use
WARNING | [ass] standin_01.ass line 118: node name "file1" already in use
WARNING | [ass] standin_01.ass line 147: node name "aiNoise1" already in use
If each standin should look different, you need to have unique shader names in each ASS file. If you’re using MtoA, that includes the name of the SG node (for example, aiStandard1SG).