Introduction to Distributed Rendering
Thanks to Distributed Rendering you can render your images faster by allowing multiple computers, connected together using a single network, to contribute to the rendering process. Typically, Distributed Rendering is used on commercial render farms, however anyone who can access more than one computer at a time can use it. The rendering speedup resulting from using multiple computers is usually nearly linear. This means that if a single computer is able to render an image to satisfying quality in 10 minutes, 2 computers of the same type will be able to render the same image to the same quality in 5 minutes.
Note that some time penalty may appear, especially when rendering very heavy scenes in very high resolution. This is the result of bandwidth limits when transferring scene files and the rendered pixels back and forth between the workstation and the render nodes.
In short: if you have access to more than one computer, you can use Corona's Distributed Rendering to render your images faster!
Important note: Corona's native Distributed Rendering should be used mainly in cases where multiple computers are rendering a single image (the process is described below in this guide). If you need to render a sequence of frames, where each single computer is rendering a different frame, it is advised to use other network rendering solutions instead such as Autodesk Backburner or 3rd party render manager applications.
Distributed Rendering Requirements
You must have all of the following applications installed:
-
On the slaves and master: Chaos Corona for 3ds Max - it is best to use the newest version available at https://corona-renderer.com/download/
-
On the slaves and master: 3ds Max - any version supported by your current Chaos Corona version
-
On the slaves and master: Autodesk Backburner version matching your 3ds Max version - it is included in the 3ds Max installation package, or can be downloaded and installed separately. You need to have the exact version matching your 3ds Max version (for example Backburner 2019 if you are using 3ds Max 2019).
-
On the slaves: Corona DR Server - it is included in the Universal Installer, and by default it is installed into C:\Program Files\Corona\Corona Renderer for 3ds Max\DR Server\DrServer.exe
Note: Autodesk Backburner is not directly used in Corona Distributed Rendering process but it is required for it to work correctly.
Note: Starting with Corona V3, the DR server is installed in a separate sub-folder of the the main Corona install folder (in Corona versions prior to V3, the DR server was installed into the Corona root folder, C:\Program Files\Corona)
For Backburner installation/uninstallation troubleshooting, see: Distributed Rendering does not work - "Unknown error while loading application"
Further requirements:
- DrServer.exe must be running on all slaves
- All slaves must be on the same LAN network and sub-network
- Both 3dsmax.exe and DrServer.exe must be allowed to communicate (both incoming and outgoing connections) on these two ports: TCP 19667 and TCP 19668. Sometimes adjusting firewall settings may be necessary
-
Both the workstations and the render nodes taking part in the distributed rendering must have Corona licenses active!
See:
- 3ds Max does not have to be activated on the slaves. You may use the demo license, or even an expired demo license and that is absolutely fine with Autodesk licensing terms as 3ds Max will be used in command line mode only, without the user interface visible.
Using Distributed Rendering
-
On all slaves: run the DrServer application
Note: the DrServer must not be running with elevation (it must not be running "as administrator").
Do not run DrServer on the master pc!
-
On the master PC: in 3ds Max, go to Render Setup > System > Distributed Rendering, tick the "Enable" checkbox, and press "Search LAN":
-
On the master PC: wait for the addresses or names of your slave PCs to appear on the list (or enter their network names or IPs manually via the "Add" button at the bottom):
-
On the master PC: start rendering:
-
On all slaves: a new 3ds Max instance should appear after some time (minimized, so you won't be able to see its UI or the VFB), then it should start rendering your scene, and sending rendered data to the master PC based on "Synchronization interval" time specified in the DR rollout on the master.
-
On master PC: you can see Distributed Rendering information in the DR tab of the Corona VFB
Note: you can also check "Search LAN during render" option in the DR rollout on the master PC to make Corona search for any machines with the DrServer application running and automatically add them to the rendering even after it has already started. As a result, any machines where the DrServer application was launched at some point during rendering will join, and any machines where the rendering was interrupted due to an error or user intervention will be able to re-join the rendering again.
The rendering will stop after it reaches the given render limit, or after you stop it manually on the master computer. In case of render limits, each limit is considered based the master machine statistics, not for each of the slaves. For example, if you set the limit to 10 minutes, the rendering will stop after 10 minutes pass on the master machine, not on the slaves. If you set it to 100 passes, it will stop after the total number of passes (reported on the master machine) will reach 100, regardless of how many passes each slave has rendered. If you use the noise limit, it will stop once the target noise level is reported on the master machine.
Distributed Rendering Troubleshooting
Note: the error messaging system will catch the known issues, and will warn you about any detected problems. This is often helpful for troubleshooting.- First diagnostic step when experiencing DR issues is always disabling all installed antivirus / firewall software on both the master and render node machines.
This does not mean that AV / firewall software should be always disabled when using DR. But it can verify if the issue is related to this software at all. If so, then further steps can be made to fix the issue.
The usual solution is adding custom rules to Windows Firewall to allow DR. See: Creating custom inbound and outbound rules - If the master machine is detecting the nodes, but the nodes are not starting the rendering for an unknown reason (there are no error messages, no information in the logs), please try the following if possible:
- Download and install the Autodesk Desktop App and sign into it with you Autodesk credentials: https://www.autodesk.com/desktop-app
- Launch 3ds Max on each node and make sure it starts normally (there are no error messages, missing plugin warnings, requests to activate the license, etc).
- One common problem can be related to the paging file settings on your render nodes. If a node is set to use custom paging file settings with low values, it might run out of memory during rendering.
- Solution: Windows uses a paging file (also known as virtual memory) to supplement the physical RAM when needed. This file is stored on the hard drive and helps manage memory for running applications. The paging file is used when the physical RAM is fully utilized or for efficient memory management, even if some RAM is still available. If the paging file is set incorrectly, it can cause rendering issues even when there seems to be enough physical RAM available. To avoid this, make sure that the paging file setting on all nodes is set to 'System Managed'. To do this, go to This PC > Properties > Advanced system settings > Performance > Settings > Advanced > Virtual memory > Change, then check 'Automatically manage paging file size for all drives'.
- Using DR with a VPN
- "Unknown error while loading application" message
- Missing assets when DR server is running in administrator mode
Useful links
- "Creating a Render Farm" forum thread - https://corona-renderer.com/forum/index.php/topic,12173.0.html
- General guide on reporting issues - How to report issues