Diagnostics

Further Reading
See Render Settings in the Arnold User Guide

These settings will help you monitor, troubleshoot, and optimize your Arnold renders.

Log

Arnold can generate a log reporting all the steps needed to render an image and any warnings and errors encountered by the renderer. This log also provides detailed statistics that are useful for debugging, optimizing, and benchmarking renders.

Verbosity Level

Specifies the amount of information in the log messages, with Warnings being least and Debug most:

Console

Shows the log in Maya's Output Window (on Windows). On OSX or Linux, if you start Maya from a terminal window, then the log is output to that terminal window (otherwise, click the File checkbox to output the log to a file).

On Windows, if you start Maya using the Windows Start menu, you may not see the Arnold log in the Output Window. If this happens, you can either start Maya from the command line (and then the Arnold log will show up in the Output Window) or enable File logging.

File

If enabled a log is written to the specified file.

Filename

Specifies the output path for Arnold log files. You can use environment variables. You can use padding () in the file name.

Max. Warnings

Limits the number of warning messages (of a similar type) that are sent to the log.

MtoA Translation Info:

Dumps debug messages from MtoA during IPR updates, etc.

Startup Log verbosity

It is possible to use a Maya Environment Variable to control the log verbosity when loading the MtoA plugin. To do this you must add the following text to the Maya.env file. For example:

MTOA_STARTUP_LOG_VERBOSITY = 3

There are 4 levels for this logging:

0 Nothing.

1 Warnings and errors.

2 Warnings, errors and infos (how many extensions we register, how many shader nodes are created, what plugin is loaded).

3 Everything.

Note that you must first run Maya through the command line or a batch file to view the log in Maya's Output Window (Windows) or in the console (Linux).

Render Statistics/Profiling

An extensive set of tools that allow performance issues to be more easily identified and rendering processes optimized. A dditional timing statistics organized by both nodes and categories can be output to JSON files. This makes it possible to know which objects are most expensive to render and which parts of the renderer took the most amount of time. It also allows for detailed profiling visualizations by outputting trace information into a file, such as "my_profile.json", by calling AiProfileSetFileName("my_profile.json") or kick -profile "my_profile.json", and then loading the JSON file in Google's Chrome web browser " chrome://tracing/ " or into https://www.speedscope.app/.

Render Statistics

C reates a JSON object for each render pass that gets collected in the stats file, with an increasing number for each pass placed into the file ("render 0000", "render 0001", etc). So if you are appending, the highest-numbered render group is the most recent one.  Otherwise, with overwrite, it will only contain one object with the most recent pass.

Stats Mode

Create a filename and choose either "append" or "overwrite" mode.

Profile

Profiling can be enabled, and a filename can be set.

Error Handling

Abort on Error

If set, rendering will stop as soon as an error is detected. This is the recommended setting. In general, you should not ignore important error messages, or you'll risk crashes, rendering artifacts, and undefined behavior.

Texture Error Color

Color used to report texture errors.

NaN Error Color

Color used to report NaN's.

Scenes that contain a bad mesh will render green. Scenes that contain a bad shader will render magenta.

User Options (override)

This is a general-purpose property, consisting of a string. This string field can be set to override any parameter of an Arnold core node. This allows you to, for example, access and set Arnold core parameters currently not exposed in the user interface. The property can be applied to poly-meshes, hair, and lights.

This is a powerful option and should be used with some care. T he string is passed to the Arnold node directly, and it is up to the user to fully understand the parameters being set.

For example, if sharper renders are important, you could set texture_max_sharpen to 1.5. Another example would be to set options.gpu_sparse_textures to 0 to disable sparse textures.

You can query the list of parameters an Arnold core node has by using a kick. For instance, you can get the attribute names of a polymesh node by using:

kick -info polymesh

Always refer to the core Arnold nodes (see the bottom of page), and not to the parameter's name as exposed in the Arnold plugin.

If you want to set multiple Arnold parameters in a user_options string, you can use any whitespace (spaces, tabs, newlines e.g., \n) that you would use in an actual ASS file.

'kick -info polymesh' parameters available through

Feature Overrides

This group of switches allows you to disable a number of important rendering features. By selectively disabling some features, you can get a feel for where the renderer is spending most of the time, which helps optimize scenes. Lighting or look-dev could be sped up by enabling ignore_textures or ignore_shaders for example. This is also useful for isolating errors and artifacts when debugging. Note that not all of these options are interactive - some of them may require the entire scene to be refreshed/exported.

Force Shader Assignments (translation of Shading Engines)

Forces MtoA to export shape nodes with a shader link. This allows you to keep your shapes and shaders in separate ASS files. For example, you could have one stand-in that loads the shapes, and a second stand-in that loads the shaders. As long as the shape nodes include links to the shaders, Arnold will resolve the links and render the shapes with the right shaders.