Version: Deadline 6.2 and later
What Exactly IS Distributed Rendering?
Distributed rendering is a rendering technique where multiple machines across a network render a single frame of a scene or image. The frame is divided into smaller regions, and each machine receives some of them to render. Once each region has been rendered, it is returned to the client machine and combined with other rendered regions to form the final image.
The main benefit of using distributed rendering over local rendering is that distributed rendering allows you to take advantage of your network’s resources and render much more quickly than rendering with just a single machine. It also gives you the option of off-loading the work required to render your scene from your local machine onto your render nodes, allowing you to continue working without taking any significant hit to your computer’s performance (more on this in the future).
So Where Does Deadline Come In?
At this point, you’re probably thinking something like “That’s pretty neat, but why would I need Deadline for this when I can do everything from within my application?” The answer is you could... but then you would have to figure out which of your Deadline Slaves is available to use as a server and start the required render server process on each of them every time you wanted to render something using distributed rendering.
That’s where Deadline helps out. Deadline will assign as many free Slaves from your network as it can to the job, up to the amount you request, and update the application’s server list (used to control which machines can assist in the render) by adding each Slave’s host name or IP address to it as it does. It also starts the render process on each Slave that picks up the job so that it can actually participate in the render. All you have to do is click a couple buttons... which is so much easier.
Currently we support distributed rendering for several applications, including:
- 3ds Max V-Ray/ V-Ray RT
- Maya V-Ray
- Softimage V-Ray
- Cinema4D Team Render
- Nuke Frame Server
- Corona DR
- LuxConsole Slave
If you’re using an application that supports distributed rendering, and it’s not one of the ones I just listed, don’t worry! Just let us know and we’ll add it to the wish list. For the purposes for this post, however, I’ll be focusing on our 3ds Max V-Ray DBR submitter and how it works. All of our distributed rendering submitters are very similar though, so you should be able to apply what you learn here to any of the others.
If you’ve never used Deadline submitter in 3ds Max before, you can find them under the Deadline menu at the top of the screen. Click on “Submit VRay DBR to Deadline” to bring up the submitter. If you haven’t installed the submitter yet, follow the instructions here.
Explaining the Integrated Submitter
Alright, you’ve opened up the Deadline VRay DBR submitter in 3ds Max, and now you’re looking at a window full of fields, options and buttons. If you’ve used any of our submitters before, you’ve probably already realized that the top half of the submitter consists of our general Deadline options (if you haven’t, check out our Common Job Submission Options page in our documentation for a detailed explanation of what each option does), so I’ll be focusing on the options specific to the 3ds Max V-Ray DBR submitter which are located in the section marked VRay Spawner Options.
Ok, now that we’ve narrowed down what we’re looking at, let’s get into what the options are and how they affect your render.
Starting at the top, we’ve got Maximum Servers. This controls the maximum number of Slaves that Deadline will attempt to assign to the job. Here are a few notes regarding this setting:
- You don’t need to wait for all Slaves to pick up the job as you indicated in order to render. In fact, you can start the render at any time before the max number of Slaves have been assigned, and any Slaves that have already picked up the job in Deadline will begin rendering.
- In most cases, once the render starts, Slaves that pick up the job after the render has started will not be able to participate. Often, this is a limitation of the rendering software itself.
- However, as of Deadline 8.0, the VRay DBR submitter in 3ds Max supports this “Dynamic” DBR system, where you can add/remove Slaves after the render has started. You can also add/remove Slaves via the Monitor using the DynamicDBR script in the job’s right-click Scripts menu. This requires VRay 3 SP2 or later.
Next, we have Port Number. This sets the port that the V-Ray Spawner process running on the Slave machine will use to communicate. By default, V-Ray for 3ds Max uses port 20204 and V-Ray RT uses port 20206, but you can set it to any value you like so long as it is between 20200 and 20300 (values outside this range may not work).
After Port Number, you should see three check boxes labeled Use Server IP Address Instead of Host Name, Automatically Update Server List, and Complete Job after Render:
- The Use Server IP Address Instead of Host Name option allows you to use the Slave IP addresses instead of the host names, in case you don’t know the host name of every Slave or there is some other issue with using the Slave host name, such as not being able to reach the Slave via host name due to the DNS not being setup properly.
- Automatically Update Server List will update the Active Servers list automatically every few seconds, and display Slaves that have picked up the job in Deadline.
- Complete Job after Render, well, completes the job in Deadline once the render has finished. If this is disabled, the job will remain active until you click Release Servers, which allows you to do multiple renders with the same set of servers.
Below the last checkbox you’ll the Spawner Job ID, Spawner Job Status and Active Servers fields, and the Check ALL, INVERT and Check NONE buttons. Right now, you can’t interact with the fields, and clicking the buttons will have no effect. This will change once you’ve actually submitted the job to Deadline, so I’ll go into more detail about what each does in the next section.
All Setup, Now What?
Now that you’ve got everything set to what you want, it’s time to actually submit the job to Deadline! In order to do this, just click the Reserve Servers button. This takes all the values you’ve chosen for the settings and sends it off to Deadline, which actually creates the job using those values. By default, the job will be named whatever you indicated in the Job Name field in the submitter, followed by the name and version of the application you’re using in brackets (in this case, 3ds Max). If you left the Job name field blank, the monitor will just default to “Vray Spawner Job”.
Once the job has been created, the log at the bottom of the submitter will display “The job was submitted successfully.” and you’ll see the Spawner Job ID and Spawner Job Status fields update. The Job ID value is the ID of the job in Deadline, while the status will display either Rendering or Queued (so long as the job is active) or Deleted (if the job has been deleted in Deadline). Don’t panic if the status says Rendering but you haven’t started the render yet, this just means that the V-Ray Spawner process is running on at least one Slave and is ready to start rendering.
Wait a couple of seconds longer, and at least one server should appear in the Active Servers list (assuming there were any free Slaves). This list will continue to update every few seconds until the job is complete if you had the Automatically Update Server List checked, but if you didn’t (or you’re feeling impatient) you can click the Update Servers button to manually update the list whenever you want. When a server does appear, a checkbox will appear beside it that allows you to enable or disable that server for the render, allowing for finer-grained selection from one render to the next. You can alternatively use the three buttons to the left of the server list to enable all the servers currently displayed by clicking the Check ALL button, disable all the servers currently displayed by clicking the Check NONE button, or enable servers that are currently disabled and disable servers that are currently enabled by clicking the INVERT button.
When you have as many servers as you want, you can start the render by clicking the Start Render button. This actually starts the V-Ray render, and signals all the current Slaves to begin rendering. You should see the V-Ray render window and log open on your screen, and your scene will begin to render.
Once the render has completed, or at any point during the render you want to stop it, just click the Release Server button. This stops an on-going render, and tells Deadline to complete the job. When the job has been completed, any Slaves that were assigned to it are released and allowed to move onto other jobs. If you want to do multiple renders with the same group of Slaves (make sure you had the Complete Job after Render disabled when you click Reserve Servers) just click the Start Render button again once the current render has stopped, and the Slaves will begin a new render.
Now you know everything you need to know about using our 3ds Max V-Ray DBR submitter (and most of our other distributed rendering integrated submitters too!).
And Now for Something Slightly Different
Our options for distributed rendering aren’t just limited to the integrated submitters. If you look through the Deadline Monitor, you’ll notice that we have alternative submitters for nearly every kind of distributed rendering application we support. Again, I’ll be focusing on V-Ray for 3ds Max, but since most of our submitters share the same options and functions you can take what you learn here and apply it to any of the others!
The V-Ray Spawner Submitter
First things first, there are no 3ds Max, Maya or Softimage Monitor submitters for V-Ray DBR. That’s because we conveniently created a single submitter for all three (as well as for V-Ray DBR rendering with Cinema 4D, Rhino, Sketchup and V-Ray Standalone) - the V-Ray Spawner submitter. This submitter works almost the same as any of the integrated submitters for the three applications, and it has most of the same options, so I won’t cover them again here.
The biggest difference between this submitter and any of the integrated submitters is that you can’t actually render from within the submitter. Submitting a job from within the V-Ray Spawner submitter only allows you to reserve servers for V-Ray DBR rendering. In order to actually render, you will have to go into 3ds Max (or one of the applications located in the Application drop-down menu), manually enable distributed rendering and configure the servers from within the application’s V-Ray Renderer options (typically under the System category), and then render from within 3ds Max.
Of course, this is way more complicated then just using one of the integrated submitters, so when would you ever use this? Well maybe you had previously setup V-Ray DBR for 3ds Max, and you want to continue rendering with the same servers. Or maybe you’re using Cinema4D, Rhino, Sketchup or the V-Ray Standalone, which don’t have integrated submitters (don’t worry, we’re always working on adding more!). In either case, Deadline will still handle starting up the V-Ray processes on all your Slave machines so you don’t have to.
That’s pretty much all you need to know to take advantage of Deadline’s V-Ray DBR for 3ds Max submitter (or any of our other distributed rendering submitters). For a more technical explanation of the V-Ray DBR submitters, check out our VRay Distributed Rendering page in our documentation. And remember, the B stands for bucket.