Plugins
Plugins are executed inside an RR application.
There are a few types of plugins that you can write for RR
Type |
Example file location |
Final location for execution |
External Scripts (actually not a "plug-in") |
[RR]\ SDK\ External\ |
any |
Control - Client plugin |
rrControl, job table, right click |
automatically saved in [RR]\plugins\control_job\...\ |
Control - Job plugin |
rrControl, client table, right click |
automatically saved in [RR]\plugins\control_client\...\ |
Server - Status Change plugin |
[RR]\ SDK\ Plugins_rrServer\ |
[RR]\plugins64\server_jobs\ |
[RR]\ SDK\ Plugins_rrServer\ |
[RR]\plugins64\server_notify\ |
|
Server - Event plugin |
[RR]\ SDK\ Plugins_rrServer\ |
[RR]\plugins64\server_events\ |
Submitter - Submission Plugins |
[RR]\ render_apps\ _submitplugins\ |
[RR]\ render_apps\ _submitplugins\ |
Submitter - Scene Parser |
[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 |
rrSubmitter menu Scripted Jobs |
automatically saved in [RR]\plugins\submitter_scriptedjobs\ |
Submitter - OnSubmission |
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: <SceneFolder>../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.