Maya Documentation

Job Submission

You can submit jobs from within Maya by installing the integrated submission script, or you can submit them from the Monitor. The instructions for installing the integrated submission script can be found further down this page.

To submit from within Maya, select the Thinkbox shelf and press the green button there. If the green icon is missing, you can delete the shelf and restart Maya to get it back.

Submission Options

The general Deadline options are explained in the Job Submission documentation, and the Draft/Integration options are explained in the Draft and Integration documentation. The Maya specific options are:

  • Camera: Select the camera to render with. Leaving this blank will force Deadline to render using the default camera settings (including multiple camera outputs).
  • Project Path: The Maya project folder (this should be a shared folder on the network).
  • Output Path: The folder where your output will be dumped (this should be a shared folder on the network).
  • Maya Build: Force 32 bit or 64 bit rendering.
  • Use MayaBatch Plugin: This uses our new MayaBatch plugin that keeps the scene loaded in memory between frames, thus reducing the overhead of rendering the job. This plugin is no longer considered experimental.
  • Ignore Error Code 211: This allows a Maya task to finish successfully even if the Maya command line renderer returns the non-zero error code 211 (not available when using the MayaBatch plugin). Sometimes Maya will return this error code even after successfully saving the rendered images.
  • Startup Script: Maya will source the specified script file on startup (only available when using the MayaBatch plugin).
  • Command Line Args: Specify additional command line arguments to pass to the Maya command line renderer (not available when using the MayaBatch plugin).
  • Deadline Job Type: Select the type of Maya job you want to submit. The available options are covered in the next few sections.

Maya Render Job

If rendering a normal Maya job, select the Maya Render Job type.

General Options

The following options are available:

  • Threads: The maximum number of CPUs per machine to render with.

  • Frame Number Offset: Uses Maya’s frame renumbering option to offset the frames that are rendered.

  • Submit Render Layers As Separate Jobs: Enable to submit each layer in your scene as a seperate job.

  • Override Layer Job Settings: If submitting each layer as a separate job, enable this option override the job name, frame list, and task size for each layer. When enabled, the override dialog will appear after you press Submit.

  • Submit Cameras As Separate Jobs: Enable to submit each camera as a separate job.

  • Ignore Default Cameras: Enable to have Deadline skip over cameras like persp, top, etc, when submitting each camera as a separate job (even if those cameras are set to renderable).

  • Enable Local Rendering: If enabled, Deadline will render the frames locally before copying them over to the final network location. This has been known to improve the speed of Maya rendering in some cases.

  • Strict Error Checking: Enable this option to have Deadline fail Maya jobs when Maya prints out any “error” or “warning” messages. If disabled, Deadline will only fail on messages that it knows are fatal.

  • Render Half Frames: If checked, frames will be split into two using a step of 0.5. Note that frame 0 will save out images 0 and 1, frame 1 will save out images 2 and 3, frame 2 will save out images 4 and 5, etc.

Region Rendering Options

Setting up a region rendering job:

  • Enable Region Rendering: If enabled, the frame will be split into multiple tiles that are rendered individually and can be assembled after.
  • Region Render Type: If set to Jigsaw Rendering then the submissions will use Jigsaw, otherwise it will use a grid of tiles.
  • Submit All Tiles as a single Job: If enabled, a single frame will be submitted with all tiles in a single job, otherwise each tile will be submitted as a seperate job with each frame being a seperate frame.
  • Submit Dependent Assembly Job: Submit a job dependent on the region job that will assemble the tiles, if doing jigsaw animation a seperate job will be created for each different named output file
  • Cleanup Tiles after Assembly: If selected the tiles will be deleted after assembly
  • Error on missing Tiles: If enabled, then if any of the tiles are missing the assembly job will fail
  • Assemble Over: Determine what the Draft Tile Assembler should assemble over be it a blank image, previous output or a specified file.
  • Error on Missing Background: If enabled, then if the background file is missing the job will fail
  • You can submit a dependent assembly job to assemble the image when the main tile job completes. If using Draft for the assembly, you’ll need a license from Thinkbox. Otherwise, the output formats that are supported are BMP, DDS, EXR, JPG, JPE, JPEG, PNG, RGB, RGBA, SGI, TGA, TIF, and TIFF.
  • Note that the Error On Missing Tiles option only applies to Draft assemblies.

Renderer Specific Options

If rendering with Mental Ray, there is an additional Mental Ray Options section under the Maya Options:

  • Mental Ray Verbosity: Set the verbosity level for Mental Ray renders.
  • Auto Memory Limit: If enabled, Mental Ray will automatically detect the optimal memory limit when rendering.
  • Memory Limit: Soft limit (in MB) for the memory used by Mental Ray (specify 0 for unlimited memory).

If rendering with VRay, there is an additional VRay Options section under the Maya Options:

  • Auto Memory Limit Detection: If enabled, Deadline will automatically detect the dynamic memory limit for VRay prior to rendering.
  • Memory Buffer: Deadline subtracts this value from the system’s unused memory to determine the dynamic memory limit for VRay.

If rendering with Redshift, there will be an additional Redshift Options under the Maya Options:

  • GPUs Per Task: If set to 0 (the default), then Redshift will be responsible to choosing the GPUs to use for rendering. If this is set to 1 or greater, then each task for the job will be assigned specific GPUs. This can be used in combination with concurrent tasks to get a distribution over the GPUs.

  • For example:

    • if this is set to 1, then tasks rendered by the Slaves’s thread 0 would use GPU 0, thread 1 would use GPU 1, etc.
    • if this is set to 2, then tasks rendered by the Slaves’s thread 0 would use GPUs {0,1}, thread 1 would use GPUs {2,3}, etc.

Mental Ray Export Job

If rendering a Mental Ray Export job, select the Mental Ray Export Job type.

The following options are available:

  • Output File: The full filename of the Mental Ray files that will be exported. Padding is handled automatically by the exporter.

  • Export Settings: This opens up the Mental Ray export settings dialog where you can configure the remaining of the settings. Note that this dialog must be open when you submit the job.

You have the option to submit a dependent Mental Ray Standalone job that will render the exported mi files after the export job finishes. Settings like pool, priority, group, etc, will be the same as the export job, but there are some Mental Ray specific job options that you can specify as well.

VRay Export Job

If rendering a VRay Export job, select the VRay Export Job type.

The following options are available:

  • Output File: The full file name of the VRay files that will be exported (padding is handled automatically by the exporter).
  • VRay Render Job: You have the option to submit a dependent VRay Standalone job that will render the exported vrscene files after the export job finishes. Settings like pool, priority, group, etc, will be the same as the export job, but there are some VRay specific job options that you can specify here.
  • Vrimg2Exr Render Job: If you are submitting a dependent VRay Standalone job, and the output format is vrimg, you have the option to submit a dependent job that will convert the vrimg files to exr files, using VRay’s vrimg2exr application.

Renderman Export Job

If rendering a Renderman Export job, select the Renderman Export Job type.

The following options are available:

  • Threads: The number of threads to use for exporting. Specify 0 to automatically use the optimal number of threads.
  • PRMan Render Job: You have the option to submit a dependent PRMan job that will render the exported rib files after the export job finishes. Settings like pool, priority, group, etc, will be the same as the export job, but there are some PRMan specific job options that you can specify here.

Arnold Export Job

If rendering an Arnold Export job, select the Arnold Export Job type.

The following options are available:

  • Arnold Render Job: You have the option to submit a dependent Arnold Standalone job that will render the exported .ass files after the export job finishes. Settings like pool, priority, group, etc, will be the same as the export job, but there are some Arnold specific job options that you can specify here.

Cross-Platform Rendering Considerations

In order to perform cross-platform rendering with Maya, you must setup Mapped Paths so that Deadline can swap out the Project and Output paths where appropriate. You can access the Mapped Paths Setup in the Monitor while in super user mode by selecting Tools -> Configure Repository. You’ll find the Mapped Paths Setup in the list on the left.

As long as all paths used in your Maya scene are relative to the Project and Output paths, and those paths are network accessible, you should have no problems performing cross-platform renders.

However, if you are using absolute paths in your Maya scene file, it is possible for Deadline to swap them as well, but you must save your scene file as a Maya Ascii (.ma) file. Because .ma files are ascii files, Deadline can read them and swap out paths as necessary. If they’re saved as Maya Binary (.mb) files, they can’t be read, and can’t have their paths swapped.

Plug-in Configuration

You can configure the MayaBatch and MayaCmd plug-in settings from the Monitor. While in super user mode, select Tools -> Configure Plugins and select the Maya plug-in from the list on the left.

MayaBatch

Render Executables

  • Maya Executable: The path to the Maya executable file used for rendering. Enter alternative paths on separate lines. Different executable paths can be configured for each version installed on your render nodes.

Maxwell For Maya (version 2 and later

  • Slaves To Use Interactive License: A list of slaves that should use an interactive Maxwell license instead of a render license. Use a , to separate multiple slave names, for example: slave001,slave002,slave003

Path Mapping For ma Scene Files (For Mixed Farms)

  • Enable Path Mapping For ma Files: If enabled, a temporary ma file will be created locally on the slave for rendering and Deadline will do path mapping directly in the ma file.

Debugging

  • Log Script Contents To Render Log: If enabled, the full script that Deadline is passing to Maya will be written to the render log. This is useful for debugging purposes.

MayaCmd

Render Executables

  • Maya Executable: The path to the Maya executable file used for rendering. Enter alternative paths on separate lines. Different executable paths can be configured for each version installed on your render nodes.

Maxwell For Maya (version 2 and later

  • Slaves To Use Interactive License: A list of slaves that should use an interactive Maxwell license instead of a render license. Use a , to separate multiple slave names, for example: slave001,slave002,slave003

Path Mapping For ma Scene Files (For Mixed Farms)

  • Enable Path Mapping For ma Files: If enabled, a temporary ma file will be created locally on the slave for rendering and Deadline will do path mapping directly in the ma file.

Integrated Submission Script Setup

The following procedures describe how to install the integrated Maya submission script. This script allows for submitting Maya render jobs to Deadline directly from within the Maya editing GUI. The script and the following installation procedure has been tested with Maya 2010 and later.

Submitter Installer

Manual Installation of the Submission Script

On Windows, copy the file [Repository]submissionMayaClientDeadlineMayaClient.mel to [Maya Install Directory]scriptsstartup. If you do not have a userSetup.mel in [My Documents]mayascripts, copy the file [Repository]submissionMayaClientuserSetup.mel to [My Documents]mayascripts. If you have a userSetup.mel file, add the following line to the end of this file:

source "DeadlineMayaClient.mel";

On Mac OS X, copy the file [Repository]/submission/Maya/Client/DeadlineMayaClient.melto [Maya Install Directory]/Maya.app/Contents/scripts/startup. If you do not have a userSetup.mel in /Users/[USERNAME]/Library/Preferences/Autodesk/maya/scripts, copy the file [Repository]/submission/Maya/Client/userSetup.mel to /Users/[USERNAME]/Library/Preferences/Autodesk/maya/scripts. If you have a userSetup.mel file, add the following line to the end of this file:

source "DeadlineMayaClient.mel";

On Linux, copy the file [Repository]/submission/Maya/Client/DeadlineMayaClient.mel to [Maya Install Directory]/Maya.app/Contents/scripts/startup. If you do not have a userSetup.mel in /home/[USERNAME]/maya/scripts, copy the file [Repository]/submission/Maya/Client/userSetup.melto /home/[USERNAME]/maya/scripts. If you have a userSetup.mel file, add the following line to the end of this file:

source "DeadlineMayaClient.mel";

The next time Maya is started, a Deadline shelf should appear with a green button that can be clicked on to launch the submitter.

If you don’t see the Deadline shelf, it’s likely that Maya is loading another userSetup.mel file from somewhere. Maya can only load one userSetup.mel file, so you either have to configure Maya to point to the file mentioned above, or you have to modify the file that Maya is currently using as explained above. To figure out which userSetup.mel file Maya is using, open up Maya and then open up the Script Editor. Run this command:

whatIs userSetup.mel

Custom Sanity Check

You can create a CustomSanityChecks.mel file alongside the main SubmitMayaToDeadline.mel in the [Repository]submissionMayaMain folder, and it can be used to set defaults in the submission script before it is displayed. For example, here is a script that can set the default Limit Groups based on the renderer:

AddStringAttribute( "deadlineLimitGroups" );
if( GetCurrentRenderer() == "mentalRay" )
    setAttr defaultRenderGlobals.deadlineLimitGroups -type "string" "mental_ray_for_maya";
else if( GetCurrentRenderer() == "vray" )
    setAttr defaultRenderGlobals.deadlineLimitGroups -type "string" "vray_for_maya";
else
    setAttr defaultRenderGlobals.deadlineLimitGroups -type "string" "";

The available Deadline globals are defined in the SavePersistentDeadlineOptions function in the SubmitMayaToDeadline.mel script. These can be used to set the initial values in the submission dialog.

You can also create a CustomPostSanityChecks.mel file alongside the main SubmitMayaToDeadline.mel in the [Repository]submissionMayaMain folder. It can be used to run some additional checks after the user clicks the Submit button in the submitter. It must define a global proc called CustomPostSanityCheck() that takes no arguments, and must return 0 or 1. If 1 is returned, the submission process will continue, otherwise it will be aborted. Here is an example script:

global proc CustomPostSanityCheck()
{
    // Don't allow mayaSoftware jobs to be submitted
    if( GetCurrentRenderer() == "mayaSoftware" )
        return 0;
    return 1;
}