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 an 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. Please note that if you are using a V-Ray version previous to V-Ray 5, render clients and render servers would be found under different names.
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 as well as V-Ray Standalone or V-Ray for Maya (which includes the Standalone) installed on the Render Servers. Note that the V-Ray and Standalone versions on the server and client must match. Check the Installation page for instructions on how to install V-Ray.
If you are installing V-Ray through a portable installation on the Render Servers, you need to unpack the same installation build and set some environment variables. Check the Portable Installation page for more information.
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 different ways, depending on whether you installed V-Ray through a standard installation or through a portable installation.
a. If you used standard installation, start the render servers as specified in the table for each operating system:
|Operating System||How to Start the Render Server|
Start Menu > V-Ray for Maya 20nn > Launch V-Ray render server
*where nn is the number of the Maya version.
Alternatively, start the Standalone by entering the "vray -server" command in the terminal/command prompt. You can either drag-and-drop the executable files in the terminal/command prompt or just write the command.
b. If you used portable installation, use the following commands in the terminal/command prompt:
|Operating System||How to Start the Render Server|
Alternatively, start the V-Ray Standalone by entering the “vray -server” command as shown in the preceding step A.
2. Set-up the Render Client. You can do it either through the V-Ray for Maya user interface (you need V-Ray installed for this on the client machine), or you can use V-Ray from a Standalone or V-Ray for Maya in the terminal/command prompt.
a. 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.
b. In the terminal, connect to the Render Server by using the standard distributed rendering commands in the command prompt/terminal, e.g.:
Note that the IP used here is just an example IP. Put the IP of your render host here.
- A full list of Distributed Rendering commands can be found here: Distributed Render
- For a more detailed workflow, please visit the Using Distributed Rendering in V-Ray for Maya page.
DR Check tool
The DR Check tool can be used to query the state of render servers, the number of processors on the server machine and the V-Ray version of the server.
Depending on your OS, the vraydr_check executable is located as follows:
Windows – Start Menu > 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\vray\bin
Linux – /usr/ChaosGroup/V-Ray/Maya nnnn-x64/vray/bin
macOS – /Applications/ChaosGroup/V-Ray/Mayannnn/vray/VRay.app/Contents/MacOS
Note: nnnn is the Maya version
Note: IP is the IP address of the machine that is running a V-Ray server 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 server: busy or ready depending on whether the server machine is currently rendering or it's available for new render tasks.
- The number of CPU threads on the server machine. Example: Num processors: 8.
- The version of V-Ray installed on the server machine. Example: V-Ray version info: Feb 8 2023 00:45:01.
- The V-Ray core version. Example: V-ray core version: 6.00.21.
In case a connection cannot be established with the server, the tool will print this message: Failed to connect to server 126.96.36.199:20207
This could mean that either something is blocking the connection, or the server 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).
- The [STDROOT] and [PLUGINS] tags in the script are normally replaced with their respective directories by the V-Ray installer. However, if you are using a version earlier than V-Ray 6, update 1, and performing a portable installation, it is necessary to manually replace these tags. The [STDROOT] tag needs to be replaced with the full path to the vray folder in the portable file. The [PLUGINS] tag needs to be replaced with the full path to the maya_vray folder in the portable file.