CLO support

203 views
Skip to first unread message

Andy Chlupka

unread,
Nov 26, 2021, 2:48:16 AM11/26/21
to Royal Render Knights Tavern
Good Morning,

are there plans or requewsts to supporting CLO 3D rendering?

https://www.clo3d.com/

Thank you and have a great day.

RR, Schoenberger

unread,
Nov 26, 2021, 6:48:57 AM11/26/21
to rrKn...@googlegroups.com

Hi

 

We have not yet received any feature request for CLO 3D.

 

Does it support commandline rendering?

I have not found any specifications.

 

 

regards,
Holger Schönberger

 

Please use the rrKnights Tavern
or our support system for new questions.

Andy Chlupka

unread,
Jan 21, 2022, 3:10:37 AM1/21/22
to Royal Render Knights Tavern
So I've dug a little deeper into this.

  • there are no command line options besides the scene to load
  • there is only an integrated python shell
  • there is an SDK and C++ API available. It lets one develop plug-ins.
    Looking at the header files, there seem to be callable functions to start a rendering. But CLO in itself doesn't have a concept of start frame, end frame etc.
I'm thinking of hacking the process with GUI automation through Python. That would be as simple as passing the scene file as an argument to the python script that launches CLO, automates the UI to start rendering and periodically checks for the pop-up window that confirms a finished render. Then quit CLO and exit the script.

Now, I could use some guidance on how to integrate this approach with RR. 

Can you nudge me in the right direction @holger? 

RR, Schoenberger

unread,
Jan 21, 2022, 5:26:49 AM1/21/22
to rrKn...@googlegroups.com

Hi


>
I'm thinking of hacking the process with GUI automation through Python

We control most of the render applications with a custom python script instead of using their limited commandline flags.

(More control and options and required for the KeepSceneOpen feature)

 

 

 

 

Adding a new render app requires 3 parts:

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

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

 

 

1)
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)
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)

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
  2. 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.
  3. 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
  4. 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>)
  5. 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.
  6. 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.

 

regards,
Holger Schönberger

 

 

Andy Chlupka

unread,
Jan 21, 2022, 12:39:56 PM1/21/22
to Royal Render Knights Tavern
Thank you so much Holger for the detailed process.

Do you know if the rrClient under Windows can actually open GUI apps? May it be the case that the rrClient/render user must be logged in?

Since the render application in my case is a python script do I need to provied the full 'python.exe autoguirender.py' as the exe path?

Again, thank you for your quick and thorough feddback.
Have a great weekend.

Andreas

RR, Schoenberger

unread,
Jan 21, 2022, 1:28:26 PM1/21/22
to rrKn...@googlegroups.com

Hi

 

> Do you know if the rrClient under Windows can actually open GUI apps?

3dsmax is still a GUI app if started for batch rendering and runs fine.

> May it be the case that the rrClient/render user must be logged in?

Even the client running as service logs in.

 

 

 

There are 4 potential issues regarding UI apps and user logins:

 

1)

If the user you set for the service never ever logged in, then it is missing the user registry and perhaps windows files in C:\users\

Some apps require the user registry.

If the client is installed as background service.

2) If the app uses OpenGL for its UI, then this does not work.

If the client is installed as background service.

3) This and then a UI app had a function which was not able to run.
It had to be fixed by the vendor.

If the client is installed as background service.

4) Confirmation boxes.

If they are standard Windows Dialogs/Windows, then the rrClient is able to recognize them and press buttons.
No matter if running in app or service  mode.

 

Afaik dialog boxes are shown at the end of the render log.

See file render_apps\_config\3D03__3dsMAX_s____global.inc as well

Lines with RenderAppWindow_WIN=

First there is a group dialogs that are handled, then a lot of windows/dialogs that RR should not mention in the render log as „unknown„.

 

 

 

 

> Since the render application in my case is a python script do I need to provied the full 'python.exe autoguirender.py' as the exe path?

 

I assumed you start the exe with the python script as a commandline flag..

 

But yes, if you want to execute a python script, then you have to use python.exe.

OR if it is python 2.7, then use  rrPythonconsole instead.

 

CommandLine=

    "<rrLocalBin><OsxApp rrPythonconsole>"

    "<rrLocalRenderScripts>myscript.py"

     -flagExecutable    "<Exe>"

     -flagScene “<Scene>“

Andy Chlupka

unread,
Feb 24, 2022, 8:24:56 AM2/24/22
to Royal Render Knights Tavern
Hello Holger,

thank you for all your feedback on the topic.

With the rrClient running as a user process for the logged-in user, the whole GUI automation seems to work fine. So it's important to reemphasize that rrClient should NOT be installed as a service.

Also, all of your description of the config files was spot on.

I'm now looking for a way to simple way to submit a scene file via drag and drop. I had the idea of a simple batch file taking the input and simply calling rrSubmitterConsole, but rrSubmitterconsole isn't in my RR folder. Am I missing something?

Any further advice in this direction is as always much appreciated.

Again, thank you for your support thus far.

Have a great day.
Andreas

RR, Schoenberger

unread,
Feb 24, 2022, 9:01:03 AM2/24/22
to rrKn...@googlegroups.com

Hi

 

Good to hear that it is working now.

 

 

Do you mean there is no startup script for rrSubmitterconsole in the root of RR?

e.g. like the files win__rrSubmitter.bat or lx__rrSubmitter.sh.

These files are just shortcuts/startup script that enable local caching.

The executables itself are located in RR/bin/<OS>/

 

You can either direclty run the rrSubmitterconsole from the /bin/.. folder

OR  reproduce the commandline used in the startup scripts.

The local caching starts the rrSubmitter way faster the second time you use it:

"%RR_ROOT%\bin\win64\rrStartLocal.exe"  "rrSubmitterconsole.exe"   <yourflags> <yourflags> <yourflags>

Andy Chlupka

unread,
Mar 10, 2022, 7:25:43 AM3/10/22
to Royal Render Knights Tavern
Hey Holger,

we've got everything up and running. 

There is an observation I'd like to share:

As you know, the job is launched via python and calling a python script that launches the app and automates the UI.

During script dev the execution for the UI automation is fast without any noticle pauses between all the steps. E.g. app launch, open file, click some options, click render, etc.

Now, if the python script is executed by rrClient, the whole python UI automation seems much slower in its execution. There are many seconds between the UI automation steps. It does work, albeit much slower. 

We've taken the job command from the RR batch file for the client and pasted it into a PowerShell. There it executes all the steps fast without any pauses.

Can you think of anything causing the slow-downs?

Thanks and have a sunny day.
Andreas



RR, Schoenberger

unread,
Mar 10, 2022, 7:48:44 AM3/10/22
to rrKn...@googlegroups.com

Hi

 

I am sorry, but so far I do not know why it is slower.

 

Have you added a python timer to test how much slower it is to  execute a bunch of script lines?

 

The render process is lauched with low process priority, but that should only have an effect if some other processes are running on the machine as well.

 

 

regards,
Holger Schönberger

 

Please use the rrKnights Tavern
or our support system for new questions.

--
If you reply, the message is send to the user group which is sufficient and desired.
("Reply All" might send the message twice to the last author which is not required.
Replying "in private" prevents other users to see the answers and might not be seen by the single receiver if he has email rules in place.
If you want to talk to us in private, please use support@RoyalRender instead)
---
You received this message because you are subscribed to the Google Groups "Royal Render Knights Tavern" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rrKnights+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rrKnights/1c0e1eae-4521-44e5-bbf6-74473d722483n%40googlegroups.com.

Reply all
Reply to author
Forward
0 new messages