This is an example how to add the render application CLO 3D to Royal Render.

CLO will be controlled with a python script.




Adding a new render app requires 3 parts:

  1. Installation path 
  2. Render Config (commandline)
  3. Submission




1) Installation path 

Take a look at the files in RR\render_apps\_install_paths\

Dublicate the Blender.cfg and name it CLO.cfg


Edit the file to match the CLO installation path.

If you do not know all OS, then just delete the other OS entries.


To add the app to the client config, 

either start rrConfig, tab per client config on the client.

OR open rrControl, right click on a client and send the command config/search for render apps


2) Render Config (commandline)

Folder RR\render_apps\_config\


Dublicate 3D06__Houdini.cfg and name it 3D30__CLO.cfg

Edit the file.


------------------------------------------------------------

Remove the whole section 

    # KSO settings


Remove everyrhing in section 

    ### Render Settings ####


Remove the line 

    ::include(3D06__Houdini____global.inc)


------------------------------------------------------------

Change

    Name= CLO


Change or delete the line

   IconRenderer=

(14x14 pixel png in the same folder)



------------------------------------------------------------

Now you have to edit the commandline.

There is only one commandline you need to change, keep all other lines.


CommandLine= 

       "<Exe>"




"<Exe>"

    This line executes the <exe> that you have specified in 1).



"<PD/ <rrLocalRenderScripts>kso_houdini.py" >

    It starts a python script as second parameter.

    The script location <rrLocalRenderScripts> is a copy of the folder RR\render_apps\scripts\

    So you have to place your script into that folder.


    <PD/   ….. > means that backslashes are converted to slashes. 

    Houdini use slashes instead of backslashes for all file paths on Windows.

    You should be able to keep it.



-scene "<PD/<Scene>>"

-FrStart <SeqStart>

    These are the flags for the python script.

    You can use all kinds of variables oft the rrJob.

    http://www.royalrender.de/help/Commandlines.html

   And you can add custom checkboxes and value boxes for the rrJob Settings.

   http://www.royalrender.de/help/CustomRenderFlags.html



3) Submission

There are 6 types of submission:

  1. XML writer
    You have some app/script that writes an .xml file that is loaded by the rrSubmitter.
    RR\SDK\Submission_Plugin\rrSubmit_AnyApp.py


  1. XML plugin
    Almost the same as a), but it is a plugin loaded into (the menu of) CLO.
    It reads the information directly from the scene file loaded in CLO.


  1. Scene parser script
    You open the rrSubmitter and load the scene file. (Or you specify the scene file as commandline parameter)
    An „scene parser“ python script recognizes the extension and parses the scene file.
    (Some scene files are for example .xml or .json files )
    RR\plugins64\submitter_sceneparser\2D01__Harmony.py


  1. Hardcoded scene xml
    You create a .cfg file to let the rrSubmitter know about the scene file extension.
    And a .xml file file with some hardcoded values for the job.
    E.g. the output picture is always <SceneFolder>/render/< SceneFilename >.exr and the default sequence is always 1-20.
    (Can be changed in the rrSubmitter per job)
    RR\plugins64\submitter_sceneparser\3D09__Redshift.desc.cfg
    RR\plugins64\submitter_sceneparser\3D09__Redshift.desc.xml
    (Note: As you can see in the example: If you can not set the right output picture, then use any filename and enable the job option <SubmitterParameter> DoNotCheckForFrames=1~0 </SubmitterParameter>)


  1. Manual
    You load the scene file into the rrSubmitter and enter all required settings like frame range, output pictures, …
    Should be good for a first test if your commandline is right.

  2. Scripted Job.
    You start the rrSubmitter.
    Then you choose a python script from the Scripted Job menu.
    This script might show an UI to browse for the scene file and set some checkboxes, 
    It might create .bat files required, 
    …. 
    In the end this python script creates a job.