This page provides information on distributed rendering (DR) in V-Ray for Maya.
Distributed rendering is a technique for distributing a single render job within a single frame across many computers in a network. The idea is to reduce render time by dividing different parts of the rendering pipeline and giving each participant different parts of the job. A network of computers that perform distributed rendering is sometimes called a render farm.
V-Ray supports distributed rendering (DR). While there are many ways to do DR with V-Ray, the most common way is to divide the frame to be rendered into small regions (buckets) and give each machine a number of buckets to render, then the machine that started the process gets the results and combines them into the final image.
Distributed rendering is not supported by V-Ray PLE for Maya.
In V-Ray, DR is done completely through TCP/IP protocol, which is the standard protocol of the Internet and thus the most common protocol that is supported by the hardware. V-Ray itself does not need additional file or directory sharing to perform DR. However, you might need some file/directory sharing for the bitmaps or other additional files used during rendering. The distribution management is divided into a render client and one or more render servers.
The render client is the computer from which the rendering is started. Maya and V-Ray for Maya must be running on this computer in order to start DR. The process initiated by the render client divides the frame into rendering regions and distributes them among the render servers, and later collects the results. In any DR job, there is only one render client.
A render server is one of the computers in the network that does the rendering work. A render server requests render data from the render client, processes it, and sends the result back. In any DR job, there can be many render servers.
To use the distributed rendering feature you need to have V-Ray for Maya installed on the Render Client and V-Ray Standalone running in server mode on the Render Servers. See the table below for information how to start the V-Ray Standalone on the different operating systems:
|How to Start the Render Server|
|Windows||Start Menu > All Programs > Chaos Group > V-Ray for Maya > Launch V-Ray render slave|
Distributed Rendering Settings
For information on Distributed rendering settings in Maya, please see the Distributed Rendering Settings page.
Step by Step DR Setup
1. Set up the render servers. You can do this in two different ways.
a. Start the render servers as specified in the table under Installation Notes.
b. Start the V-Ray Standalone and enter the "vray -server" command in the command prompt.
2. Set-up the Render Client. In the Maya interface, bring forth the Render Settings and in the Settings tab under the System rollout click on the Settings button in the Distributed Rendering group. Add all the Render Servers by inputting their IP's in the Add Server name or IP field and click on the Add Server button. You can include or exclude the servers in the list in the current rendering by selecting them from the list and toggling the Change button.
DR Check tool
The DR Check tool can be used to query the state of render slaves, the number of processors on the slave machine and the V-Ray version of the slave.
Depending on your OS, the vraydr_check executable is located as follows:
Windows – Start Menu > All Programs > Chaos Group > V-Ray for Maya nnnn for x64 > Tools or alternatively start the .exe in a command-prompt from C:\Program Files\Chaos Group\V-Ray\Maya nnnn for x64\bin
Linux – /usr/ChaosGroup/V-Ray/Maya nnnn -x64/bin
macOS – /Applications/ChaosGroup/V-Ray/Maya nnnn -x64/bin
Note: nnnn is the Maya version
Note: IP is the IP address of the machine that is running a V-Ray slave and num is the number of the port (by default it's 20207). Example: vraydr_check -host=10.0.0.100 -port=20207
- The state of the slave: busy or ready depending on whether the slave machine is currently rendering or it's available for new render tasks.
- The number of CPU threads on the slave machine. Example: Num processors: 8.
- The version of V-Ray installed on the slave machine. Example: V-Ray version info: Rev 26840 Jun 29 2016.
- The V-Ray core version. Example: V-ray core version: 3.25.01.
In case a connection cannot be established with the slave, the tool will print this message: Failed to connect to server 188.8.131.52:20207
This could mean that either something is blocking the connection, or the slave is not running at all on the specified IP address.
Distributed Rendering on macOS via Autodesk Backburner
Since Backburner gets started as root user (hence V-Ray is started as a root user as well), V-Ray would not find some files needed to properly setup distributed rendering. The solution to this problem is to do the following:
- Copy the vray_dr_list.xml file from the desired user's settings (/Users/<username>/Library/Preferences/Autodesk/maya) to /Applications/ChaosGroup/V-Ray/<maya_version>.
- Add the string: export VRAY_AUTH_CLIENT_FILE_PATH=/Users/<username>/.ChaosGroup/vrlclient.xml to the folder /etc/profile. This ensures V-Ray will know where to load its license from.
When you cancel a DR rendering, it might take some time for the render servers to finish working and they might not be immediately available for another render.
Servers can be added, removed, enabled, and disabled while running a CPU distributed render. For GPU rendering, DR settings can not be changed during the render. When using progressive rendering, nodes can only be added or enabled while rendering. While rendering, some of the options will be disabled. Stop the render to make adjustments.
- If the VRAY_ASSETS_CACHE_PATH environment variable is not set, the default system temp folder is used for copying the assets, usually C:\Users\<username>\AppData\Local\Temp on Windows (%TEMP%) or /tmp on Linux and macOS ($TMPDIR).