Failing to render a scene with Maya Redshift because of Arnold nodes


#1

i’m trying to render a Maya-scene in Deadline with Redshift. Some of the asset come from an Arnoldsetup-
they contain some unsused nodes and attributes.
However everything is setup to render fine with Redshift and it works locally.
When i send such a file to Deadline i’m getting lot’s of errors like this one:

2019-07-26 15:14:26: 0: STDOUT: Error: file: …/Prop/houseA/houseA_Shading_v004.ma line 6163: The directionalLight ‘directionalLightShape4’ has no ‘ai_exposure’ attribute.

The last message before the render fails is:

2019-07-26 15:14:30: 0: STDOUT: Error: file: C:/Users/render/AppData/Local/Temp/tmp801D.tmp line 59: Cannot load scene "…/Prop/houseA/houseA_Shading_v004.ma". Please check the scene path, then try opening the scene on the machine which ran this job to troubleshoot the problem.

Looks like Deadline doesn’t load Arnold and so lot’s of unknown data exists.
I don’T know why this leads to a failing render.
If i clean the scene from all Arnold-data it works.
But this is quite tricky and time-consuming - i woudl prefer if Deadlien just renders it with Redshift and loads Arnold too.

Is there any workaround?


#2

You have 2 options,

  1. clean up the files.
  2. at the job settings, turn off “Enable Strict Error Checking”. this will stop deadline from failing on every little maya error. but may allow for a false positive render.

Hope this helps.
Kym


#3

hey thanks

  1. yes cleaning up works - but it’s tricky and time-consuming. If it would be a bigger project I would setup a workflow to remove the Arnold-nodes.

  2. strict error checking is off

i found a little hacky solution:

in the usersetup.mel I enforced loading Arnold - by doing this it renders fine in Deadline

I think this solution is good enough for that little project


#4

If you’re using the MayaBatch plugin in Deadline, there’s a slot for specifying a startup script. I use this extensively to assemble/check scenes before rendering – and part of that process is dealing with render nodes that for whatever reason don’t have the right plugins loaded.

If you’re using the command line plugin to trigger mayabatch(.exe) or render(.exe) manually, there are corresponding flags you can use to specify the script there. The script is assumed to be a MEL script, but you’re free to hook in your actual Python workhorse from MEL if necessary.

For instance here’s a script that our pipeline deploys for most render jobs:

// Load plugins
print("Loading Redshift plugin");
loadPlugin redshift4maya;

print("Loading MASH plugin");
loadPlugin MASH;

// Load Python script for further processing
print("Loading Python module");
python "import maya_pipeline.render as render; render.process()";

Obviously you don’t have the maya_pipeline.render module on your end, but at least you can see roughly what’s going on here :slight_smile: