Distributed rendering (DR) is a technique for distributing a single render job within a single frame across many computers in a network. There are different approaches of doing this, but the main concept is to reduce the render times by dividing different data flows from the rendering pipeline and giving each participant different data of the job. The most common way to do this is to divide the frame to be rendered into bunches of samples and give each machine to render a number of them; then get the results and combine them into the final image.
Note that V-Ray RT always uses distributed rendering even when working only on one machine, through a local DR render server (see below).
V-Ray RT uses DR. It divides the frame into bunches of samples 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 networked hardware. V-Ray RT itself does not need additional file or directory sharing (however, 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.
The render client is the V-Ray RT for 3ds Max plug-in on the computer that the user is currently working on and from which the rendering is started. It divides the frame into bunches of samples and spreads them across the Render servers and collects the results back. Collected results are combined and visualized as soon as possible inside 3ds Max user interface. Note that the V-Ray RT plugin itself does not perform any rendering inside of 3ds Max.
A render server is the V-Ray RT render server software running on the user's computer or on a computer that is part of the so-called render farm. It requests render data from the render client, processes it and sends the result back. If the render server is running on the user's machine (where the V-Ray RT render client is running) then it is called a local DR render server. If render server is located on a different machine,it is called a remote DR render server. Render servers are based on a modified version of V-Ray Standalone and are working as independent applications that are communicating with the render client via the TCP/IP protocol. If something fails during the rendering process, the rendering client will survive and not crash 3ds Max. This will rescue unsaved designer's work from loosing.
The network is the link between render client and render servers. It must support the TCP/IP protocol in order to use V-Ray RT, even if no extra machines are used for rendering. Note that currently IPv6 is not supported. Client and servers must be able to "see" each other through this network even if they are in different places of the world. If there are more render servers, more network bandwidth may be required as more data is sent to and from the client machine.
One license of V-Ray RT allows you to use up to 10 machines for distributed rendering. The render client and all render servers must be able to connect to a running V-Ray license server. For more information, see the Licensing section.
Before you can use distributed rendering with V-Ray RT, you must install and start the V-Ray RT render server on one or more machines in your network. Starting and stopping a render server can be done in several ways:
The Distributed rendeing settings dialog is accessible from Render Servers button in the V-Ray RT tab of the renderer settings.
- this button allows you to manually add a server by entering its IP address or network name.
- this button deletes the currently selected server(s) from the list.
Auto-start local slave - enabling this option will cause the V-Ray RT renderer to automatically start a local render server on the same machine. Note that this can slow down the 3ds Max process if there is only one processor core. If this option is off, the user must enter additional render servers that will be used instead. The local render server will be automatically closed when you exit 3ds Max.
The V-Ray RT distributed rendering settings are not stored with the 3ds Max scene, but in a separate configuration file. This file is called vrayrt_dr.cfg and is located in the 3ds Max plugcfg folder (normally located in local user settings folder).
There are some V-Ray RT settings that may help optimize the interactive performance on different render farm configurations. There are different ways to test if your farm is working efficiently, but a simple one is to check (e.g. through the Windows Task Manager) if the CPU usage of the server machines is around 95-100%. If the CPUs are not fully utilized, it's better to give them more work to do per bunch of samples. You can do that by increasing the number of Rays per pixel from 4 to 6, 8, 12, 16, 24 or even 32. This will request more work to be done per pixel. Tune this number according to your farm and scene.
If you want faster raytracing speed, but less interactivity, the Ray bundle size parameter can be increased to 128, 256 or 512. This will reduce the network bandwidth needed by sending more information in a single block.
Similar to distributed and network rendering with the standard V-Ray renderer, if you use any external files in your scenes (e.g. textures or photometric .ies files), you have to make sure that all render servers can access these files. This can be done in several ways:
- The files may be copied locally on each render server in the same location;
- The files may be stored on a network share and accessed through UNC file names;
- The files may be stored on a network mapped drive that is installed on all render servers.
If you store the files on a network location (through network shares or mapped drives), keep in mind that the non-server versions of the Windows* operating systems impose a limit on the number of simultaneous accesses to any given file through the network. This may result in odd rectangle artifacts in the image if a render server fails to load a file.
Alternative resource locations for the V-Ray RT render servers can be specified using the VRAY_ASSETS_PATH environment variable. This variable is valid for both textures and photometric files. The variable may contain more than one path, separated by a semicolumn character (';') on Windows, and column character (':') on Linux and OS X operating systems.