You can use use color_correct with alpha_is_luminance enabled, like this:
If you want to control object visibility with operator, or the Arnold Python API, or by editing an ASS file, you need to understand Arnold’s visibility parameter.
In the UI, the object visibility options look like a bunch of separate parameters:
but in Arnold, all those options are stored in one visibility parameter.
For example, if an object is visible to the camera (primary visibility), and to transmission (both diffuse and specular), then that’s visibility 13.
Why 13? Because 13 = 1 + 4 + 8
- camera rays = 1
- diffuse transmission rays = 4
- specular transmission rays = 8
The Arnold visibility parameter tells Arnold the rays to which the object is visible.
- visibility 0 means the object isn’t visible to any rays
- visibility 255 means the object is visible to all rays
- visibility 253 means the object isn’t visible to shadow rays (so the object does not cast shadows).
Here’s the decimal values for all the different ray types.
To figure out the visibility, just add up the values for the rays you want.
|Ray type||Decimal Value|
|Camera (Primary Visibility)||1|
|Shadow (Casts Shadows)||2|
There’s two denoisers. Here’s when to use them:
- Use the OptiX Denoiser for fast (GPU-powered), slightly-lower quality denoising of IPR
- Use the Arnold Denoiser (aka noice) for high-quality denoising of final frames and animation sequences
For more info, check the docs
In this case, when the user tried to render after enabling the OptiX denoiser, they got this error:
ERROR | [gpu] OptiX version 0.30.91 is lower than the minimum required version 5.0.0
This was with MtoA 3.0.1, which means Arnold 22.214.171.124
So, that means there is an incompatible version version of the OptiX library on the system, and it’s being loaded instead of the OptiX that ships with MtoA.
I probably could have just checked the PATH setting, but I used Process Monitor to absolutely sure, and I found this:
The problem is that another renderer added itself to the PATH. That’s a bad thing 😉
The solution? Remove that folder from PATH. Create a batch file or wrapper script to set the required environment when you start Maya to use the other software. Rather like the mtoa module file sets PATH when you start Maya.
NOTE In previous versions of MtoA, this would prevent MtoA from even loading.
You can use kick to render with debug shading. Here’s the flags to use:
- -is to ignore the shaders assigned to the shapes
When you ignore shaders, a default utility shader is used to render the scene.
- -sm sets the shade mode ( ndoteye lambert flat ambocc plastic metal)
- -cm sets the color mode (color ng ns n bary uv u v dpdu dpdv p prims uniformid wire polywire obj edgelength floatgrid reflectline bad_uvs nlights id bumpdiff pixelerror)
Here’s some examples that show how to kick with different types of debug shading (I’ve used the Arnold Render View debug shading modes for these examples)
|Debug shading||kick flags|
|Basic: disable all shaders in the scene, switching to a gray ‘ndoteye’ shader; a very fast shading mode.||
kick -is -sm notdoteye
|Lighting: renders the scene with a white lambert shader||
kick -is -sm lambert
|Occlusion: use ambient occlusion shading||
kick -is -sm ambocc
|Wireframe: displays geometry as a wireframe||
kick -is -cm polywire
kick -is -sm ndoteye -cm polywire
|Normal: visualizes the normal vector (between 0 and 1, in tangent space)||
kick -is -sm flat -cm n
|UV: displays the coordinates of the primary UV set (red=U, green=V)||
kick -is -sm flat -cm uv
|Primitive ID: displays random colors based on the per-primitive (triangle, curve) index||
kick -is -sm flat -cm prims
|Barycentric: displays intra-primitive parametric coordinates (barycentric for triangles, parametric length, and width for curve segments)||
kick -is -sm flat -cm bary
|Object: displays random colors based on the per-object ID||
kick -is -sm flat -cm obj
Arnold 5.1 adds operators, which among other things, allow you to override parameters in ass files loaded by procedural nodes.
Here’s a quick example using the brand new MtoA 3.0
I exported some particles from Softimage, loaded them into Maya with an aiStandin (aka an Arnold procedural), and then used a set_parameter operator to scale the radius by 0.5
Note that I connect my operator by setting the Target Operator in the Render Settings.
I can chain two set_parameter operators together, to set the mode and then scale the radius:
If you see something like this:
[Arnold]: MAXtoA_Shaders.dll was compiled against non-compatible Arnold 126.96.36.199
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.