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)
|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:
MtoA defines a lot of batch render flags for Arnold. For example, here’s how to set the Arnold log verbosity and enable file logging:
render -s 2 -e 2 ^
-r arnold ^
-ai:lve 2 ^
-ai:ltf true ^
-ai:lfn C:/Users/blairs/Downloads/render.log ^
First, to use the Arnold batch render flags, you need to use the Maya -r flag to specify that the renderer is arnold (otherwise, you’ll get an “Invalid flag” error).
Then you can use the Arnold batch render flags:
- ai:lve sets the log verbosity level
- ai:ltf enables file logging (Log To File)
- ai:lfn is the log file name. I used forward slashes; I could also have used backslashes and put quotation marks around the log file name.
If a clean install of MtoA doesn’t work (and the computer does support SSE4.1), then “The specified module could not be found.” usually means there’s a missing dependency. Dependency Walker is a decent, if aging, tool for checking out dependencies, but for leaving no stone unturned, I prefer Process Monitor.
The MtoA plugin (mtoa.mll) depends on a handful of files only. Here’s the log of loaded DLLs for a working MtoA:
Here’s a quick walkthrough (no audio) of how to get a Process Monitor log:
First, here’s some Arnold renders of a few old-time Softimage models:
And now, here’s the announcement:
Softimage to Arnold (or SItoA), the Arnold plugin for Autodesk Softimage is being made available to the community under an Apache2.0 open source license at:
This repository contains the official SItoA plugin source code. Solid Angle, the company behind the Arnold renderer, and now part of Autodesk, developed the SItoA plugin commercially from 2009 to 2017.
After the Softimage end-of-life announcement in April 2014, Solid Angle committed to continue the development and maintenance of SItoA for at least a year, and then extended this period until July 2017, porting SItoA to the new Arnold 5 API along the way.
Please submit your issues and pull requests on github, the old Trac server will remain available for a while as read-only but we won’t accept any new users.
We will continue to monitor and review pull requests submitted to this repo on a voluntary basis, but will not release official builds any more.
Before it was open-sourced, throughout the years, SItoA has been developed by:
- Luis Armengol
- Borja Morales
- Stefano Jannuzzo
With contributions by:
- Andreas Bystrom
- Steven Caron
- Julien Dubuisson
- Steffen Dunner
- Michael Heberlein
- Paul Hudson
- Halfdan Ingvarsson
- Vladimir Jankijevic
- Alan Jones
- Guillaume Laforge
- Thomas Mansencal
- Helge Mathee
- Eric Mootz
- Holger Schoenberger
- Frederic Servant
- Jules Stevenson
Special thanks to all the users who passionately provided feedback, production assets, bug reports and suggested features during those years.
How can you update the paths used to load textures, standins, or volumes? Use dirmap.
You can use dirmap to update the paths for the following nodes:
- aiImage (Image Name)
- aiStandin (Path)
- aiVolume (Filename)
- MayaFile (Image Name)
For example, if I have a scene file that uses Linux paths like /server/assets/textures/noicon.tx, I can do this:
dirmap -en true;
dirmap -m "/server/assets" "D:/Assets/";
After I run that, when I load a scene Maya will replace “/server/assets” with “D:/Assets” in all file paths.
You can test your directory mapping (dirmap) like this:
dirmap -cd "/server/assets/textures/noicon.tx";
// Result: D:/Assets/textures/noicon.tx //
- Enable dirmap with dirmap -en, and then create a directory mapping with dirmap -m
- Load a scene and the dirmap is applied.
TIP For batch rendering, you can use a pre-render script to apply dirmap.
BONUS TIP: dirmap does not update a path if the path is valid. dirmap replaces paths that cannot be resolved.