Plugins are executed inside an RR application.

There are a few types of plugins that you can write for RR in different languages.


Type

Python

nodeJS

C++

Example file location

Final location for execution

External Scripts (actually not a "plug-in")

supported

supported


[RR]\ SDK\ External\

any

Control - Client   plugin

supported



rrControl, job table, right click

automatically saved in [RR]\plugins\control_job\...\

Control - Job   plugin

supported



rrControl, client table, right click

automatically saved in [RR]\plugins\control_client\...\

Server - Status Change   plugin

supported


supported

[RR]\ SDK\ Plugins_rrServer\

[RR]\plugins64\server_jobs\

Server - Notify   plugin

supported


supported

[RR]\ SDK\ Plugins_rrServer\

[RR]\plugins64\server_notify\

Server - Event plugin

supported



[RR]\ SDK\ Plugins_rrServer\

[RR]\plugins64\server_events\

Submitter - Submission Plugins

supported



[RR]\ render_apps\ _submitplugins\

[RR]\ render_apps\ _submitplugins\

Submitter - Scene Parser   

supported


supported

[RR]\ SDK\ Plugins_rrSubmitter\ SceneParser\

[RR]\ plugins\ submitter_sceneparser\

Submitter - Scene Parser - XML job file




[RR]\ plugins\ submitter_sceneparser\

[RR]\ plugins\ submitter_sceneparser\

Submitter - Scripted jobs

supported



rrSubmitter menu Scripted Jobs

automatically saved in [RR]\plugins\submitter_scriptedjobs\

Submitter - OnSubmission   

supported



rrSubmitter menu On_Submission Scripts

automatically saved in [RR]\plugins\submitter_onsubmission\


Plugin type descriptions


Control - Client   plugin


Control-Client plugins are python scripts that can be executed with a right-click in your rrControl client table. 


Control - Job   plugin


Control-Job plugins are python scripts that can be executed with a right-click in your rrControl job table. 


Server - Status Change   plugin


Server job plugins are executed by the server if a job changes its status.

As soon as a job enters the status, the plugin is executed.

After the plugin was called, the status itself is executed.


The different status of a job are:


First Check                                 A new job was received (or reset) and the rrServer checks for existing frames

Pre Render                             The pre-render scripts are executed by a client.

Preview Render                      If enabled for the job, then the client render the few preview frames.

Wait For Approval - Main         The job stays in "wait for approval" mode. If enabled in rrConfig.

Main Render                         The main render phase.

Post Render                         The post-render scripts are executed by a client.

Wait For Approval - Done         The job stays in "wait for approval" mode. If enabled in rrConfig.

Post Done                         The post-done scripts are executed by a client.

Finished                         Job status is set to finished.



Server - Notify   plugin


It is possible to enable notifications at the submitter if a job was finished.


See Notifications.


Server - Event   plugin


Each time the rrServer adds an event to the log or error list of the job, these plugins are called.

Each plugin can be configured to be called for any number of log or error events at the same time.

The event plugins are executed in their own thread, the main rrServer threads should not be affected by slow scripts.

(Other plugins types written in python are blocking the other rrServer tasks until they finished executing)



Notes:

  • The rrServer collects log and error entries for 45 seconds before it calls the plugin.
  • The plugin in called once for each job with these log/error events.
  • If the plugin is configured for multilpe log/error events, it is still called only once.




Submitter - OnSubmission   plugin


OnSubmission plugins are python scripts that can be executed on submission.


Submitter - Scene Parser   plugin



Scene Parser are plugins for the rrSubmitter and rrSubmitterconsole.

If you call the rrSubmitter(console) with a scene filename as first parameter or if you load it into the rrSubmitter with the load button, then the rrSubmitter searches through all plugins if they are able to load a file with that extension.

If there are multiple plugins which support the extension, then the rrSubmitter stops if one plugin returns successfully.


The scene parser collects the Basic Scene Information.


Submitter - Scene Parser - XML job file


Instead of writing a python or C++ plugin for a new render application, you can also write a text based description file.



What are these description files?

Some render applications do not have a scene parser plugin.

But the user still wants to load the scene file into the submitter.

And the submitter should switch to the right render application.


Scene description files consists of two files:


  • The <Name>.desc.cfg file:

      The file includes informations for the submitter when to use the file.

      Required is the scene file extension.

  • A <Name>.desc.xml job preset file:

      The submitter loads all job informations from the .xml files.

      Required are software and renderer name.


      But the files can also include an output image name.

      e.g. <SceneFolder>../images/<SceneFilename>

      (if you have no xml editor, as xml source: &lt;SceneFolder&gt;../images/ )


      Note: The xml file structure is the same as the RR job .xml files that are created by submitter plugins. 


Submitter - Submission Plugins



Submission plugins are not a plugin for RR.

They are plugins for your 3D/Comp application to send the Scene Information to the Submitter.

See Submission Plugins.




Submitter - Scripted jobs


Scripted jobs are a python scripts that create new jobs.

Either based on loaded jobs or by creating completely new jobs.