Well, as you said yourself, you have submitted a Command Line job that happens to launch 3dsMaxCmd.exe. But that’s not how Deadline deals with 3ds Max rendering, and how you normally perform job submissions…
Deadline submissions are usually controlled by two .job files - one defining the submission parameters, and the other defining the plugin parameters. So the command line would look more like
deadlinecommand.exe <jobinfo.job> <plugininfo.job> <scenefile.max>
(See https://docs.thinkboxsoftware.com/products/deadline/10.1/1_User%20Manual/manual/command.html?highlight=deadlinecommand#submitting-a-job )
I would recommend running at least one 3ds Max submission using the Monitor’s 3dsmax submitter. Just pick any .MAX file, enter a frame range, and hit Submit. Once it succeeds, navigate to C:\Users\<YourUserName>\AppData\Local\Thinkbox\Deadline10\temp\
and you will find two files - a max_job_info.job
and a max_plugin_info.job
. The former contains the Plugin=3dsmax key/value pair, while the latter describes the properties of the job like the scene to render, the version of 3dsMax to use, etc. They should go as arguments in that order.
In this particular case, if you did not check the “Submit Scene File With Job” option in the GUI (because I did not mention to do it), there would be no need for a third argument to the deadlinecommand call - the SceneFile= is a key value pair inside the max_plugin_info.job
file pointing at the network location where the .MAX file was picked from. So the command line would be just
deadlinecommand.exe <max_job_info.job> <max_plugin_info.job>
If the second .job file does not contain a SceneFile= key/value pair, then a 3rd argument will be expected, and should be the path to the .MAX scene file.
Inside the second .job file, there will be a Frames= key/value pair that defines the frame, frame range, or frame list to render. Deadline supports a bunch of fancy frame range notations… https://deadline.thinkboxsoftware.com/frame-list-formatting-options
Note that as mentioned in the first link above, you can also run deadlinecommandbg.exe which is a hidden dialog without a popup dialog, and does not return anything to the console. In that case, you must provide the file names of two additional files that do not exist - one for the output of the command, and one for the exit code.
deadlinecommandBG.exe -outputFiles <output.txt> <exitcode.txt> <max_job_info.job> <max_plugin_info.job>
The integrated submitters and the Monitor submitters all use this version of the command line.
The actual 3dsMax plugin in Deadline is rather advanced and uses a MAXScript Extension C++ Plugin (called Lightning.dlx) to open a channel to 3dsMax and issue SDK commands controlling everything about the scene. And there is a Python plugin file (3dsmax.py under \Repository\plugins\3dsmax) communicating with that C++ plugin by reading from the job’s metadata provided by your .job files…
We also have one called 3dsMaxCmd that uses the 3dsmaxcmd.exe you were after, but it is rarely used as it is significantly less powerful - 3dsmaxcmd.exe is technically an extension of Backburner. Enough said
If you have any questions, please feel free to ask!