AWS Thinkbox Discussion Forums

Control usable render engiens per DCC

Hello,

This is probably an edge case, but I was wondering if it is possible to control the render engines available for use on a per DCC level. I’m in the process of setting up a farm for a small university program (currently in pre-setup/research stage), but in order to stay compliant with university policy I need some control over this. For example, the university teaches C4D with the Standard and Physical renderers. In order to prevent users from utilizing the farm for in class projects, I would need a way to prevent either the submitting or rendering of jobs utilizing those engines. C4DtoA, however, which is what I will be supplying should be usable.

I was reading through the documentation on Plugin Configuration, but it doesn’t really go into too much detail on what’s available. Assuming this is due to each plugin being so different.

Hopefully this makes sense!

Cheers,
Mike

I don’t think there is anything built in right now, but it sounds like it should be possible to add via scripting either on the submission side, or on the plugin side.

The benefit of doing it on the side of the submitter script is that no jobs would be allowed to go to the Repository/Database if the renderer is not allowed. The drawback is that an enterprising student could still work around that by using DeadlineCommand to sneak in a render job with a disallowed renderer.

The benefit of doing it on the plugin side is that no such job would ever actually render. The drawback is that a job would still appear in the queue, and the plugin would simply fail its tasks until it is marked as failed after 100 or so failures. But then somebody has to delete it.

So maybe doing both sides wouldn’t be a bad idea - add a test in the submitter to disable the submission if the renderer ID is not Arnold, and add a test in the plugin to fail the task if the plugin is not Arnold. This way, most of the time no jobs will be submitted at all if they are not set to use C4DtoA, and if somebody manages to circumvent the submitter with a command line call or custom scripted submitter, the plugin would refuse to process it.

Look under \DeadlineRepository\submission\Cinema4D\Main\ for the file SubmitC4DToDeadline.py
Inside the file, you can modify the function

    def SubmitJob( self ):

and add a test that checks the current renderer using something like

renderData = documents.GetActiveDocument().GetActiveRenderData().GetData() renderer = self.GetRendererName( renderData[c4d.RDATA_RENDERENGINE] ) if renderer != "arnold": gui.MessageDialog( "Cannot submit - renderer is not Arnold." ) return False
to the beginning of the function so it bails out as needed…

I don’t have C4D with Arnold installed, so I have not tested the above code, it is from top of my head. But you get the idea…

Thanks Bobo! I appreciate the detailed response. I’ll take a look at this when I start setting things up and report back my findings. It may be my personal bias towards it, but I think this could be a small nifty safety feature that could prevent headaches should someone’s mind slip and submit a job incorrectly. Then the farm wouldn’t waste resources on a mis-configured job. But if this was happening regularly you probably would have seen requests for it :wink:

Cheers,
Mike

Privacy | Site terms | Cookie preferences