Distributed Rendering

Overview


Distributed rendering is a technique for distributing a single render job within a single frame across many computers in a network. There are different approaches to doing this, but the main concept is to reduce the render times by dividing different parts of the rendering pipeline and giving each participant different parts of the job.

Organization


V-Ray divides the frame into regions and spreads them across the participants in the distributed rendering. This 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 (note that you may actually need some file/directory sharing for the bitmaps or other additional files used during rendering). The distribution management is divided into Render Clients and Render Servers.

To use V-Ray distributed rendering you need to have both V-Ray for 3ds Max and Autodesk 3ds Max installed on both the render client and the server machines. When using the V-Ray GPU render engine, а V-Ray Standalone (or V-Ray for 3ds Max) installation is sufficient for each server machine.

Render Clients

The render client is the computer from which the rendering is started. It divides the frame into rendering regions and spreads it across the Render Servers. It distributes data to the render servers for processing and collects the results.

Every render client requires a render node license. To see how to set up your render license, see the Licensing.


Render Servers

A render server is one of the computers in the network that participates in 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.

If any of the servers fails, you should get a notification and the render client will try to reassign the buckets to another server.

Distributed Rendering setup for the render server machines is set accordingly to the preferred V-Ray renderer. V-Ray requires V-Ray DR spawner to be run on the render server machines, while V-Ray GPU requires V-Ray GPU Render Server or V-Ray Standalone (with server command).

Check how to Set Up V-Ray Render Service

Check how to Set Up Distributed Rendering

Notes


  • Every render server must have all the plugins and texture maps in their proper directories loaded so that the scene you are sending does not cause them to abort. For example, having a PHOENIX plugin used in the scene causes a server failure in any of the servers that do not have the PHOENIX plugin installed. If you have mapped your object with a file named JUNGLEMAP.JPG and you do not have that map in the BITMAPS directories of the render server installation – you will get bucket rendered at that machine as if the map was turned off, unless you also turned on the Check for missing files option in the V-Ray System rollout, in which case the render server will refuse to render the scene.
  • When you cancel a DR rendering, it may take some time for the render servers to finish working and they may not be immediately available for another render.
    Default lights are not supported in DR mode and do not render. If you need any lighting in the scene, you should add it explicitly.
  • The default system temp folder, usually C:\Users\<username>\AppData\Local\Temp on Windows (%TEMP%), is used for copying the assets if the VRAY_ASSETS_CACHE_PATH environment variable is not set.
  • V-Ray DR can be run automatically as a Windows service whenever the machine boots up. For more information, see Set Up V-Ray Render Service
  • If you see a 3ds Max window flashing on the taskbar and then disappearing, right-click on the V-Ray DR spawner icon in the taskbar tray, select Exit to close the DR spawner, and try running a regular Backburner job with this machine as the server. After that, try to start the V-Ray DR spawner again.
  • For a troubleshooting guide, visit the Distributed Rendering Troubleshooting Guide.

Set Up Distributed Rendering 

Step by Step V-Ray DR Setup


To use V-Ray distributed rendering you need to have both V-Ray for 3ds Max and Autodesk 3ds Max installed on both the render client and the server machines. When using the V-Ray GPU render engine, а V-Ray Standalone (or V-Ray for 3ds Max) installation is sufficient for each server machine.

  1. Set up the Render Servers by starting V-Ray Spawner on each server machine. It starts the 3dsmax.exe in server mode which appears as 3ds Max minimized down in the taskbar. It should have the title “vraydummy.max”. (This step is not required if the server machine uses spawner as service).
  2. Set up the Render Client. In the V-Ray for 3ds Max interface, enable Distributed rendering from Render Setup > System > Settings tab. Use the Render Server button to add the IPs of all your Render Servers. 

Step by Step V-Ray GPU DR Setup


V-Ray GPU can run on multiple CUDA enabled graphics devices. The preferred set of devices on each server machine must be adjusted before initiating the distributed rendering. To specify which devices to use, go to Windows Start > Programs > Chaos Group > Select devices for V-Ray GPU rendering of each render server machine and pick.

By default, the render server machine uses all its appropriate GPU devices for V-Ray GPU distributed rendering, if nothing has been specified beforehand.

  1. Set up the Render Servers. You can do this in two different ways: (This step is not required if the server machine uses V-Ray GPU render server as service)

Thiết lập Render Servers. Bạn có thể thực hiện việc này theo hai cách khác nhau: (Bước này không bắt buộc nếu máy chủ sử dụng máy chủ kết xuất GPU V-Ray làm dịch vụ)

  1. Start the render server on each server machine from Start menu > Programs > Chaos Group > Launch V-Ray GPU Render Server for 3ds Max ####.
  2. Start the V-Ray Standalone and enter the “vray -server” command in the command prompt.
  3. Set up the Render Client. In the V-Ray for 3ds Max interface, bring forth the Render Settings and in the Performance tab under the Distributed Rendering rollout switch On. Use the Render Server button to add the IPs of all your Render Servers. 

TCP/IP Port Numbers


Distributed rendering works over TCP/IP and requires the following ports:

Renderer typePort numberPort type
V-Ray20204TCP/IP
V-Ray GPU20206TCP/IP

Port 20205 is only used by render servers to broadcast a message that they are ready to join an ongoing DR rendering.

V-Ray Standalone when set as render server receives rendering requests on port 20207 by default.