©BBB3viz

Table of Contents

This page explains the essence of Distributed Rendering with V-Ray.

 

Overview


Distributed rendering is a technique for distributing the work required to render a single frame across many computers in a network. This division of tasks reduces render time by allowing different computers to work on separate parts in parallel.

Future versions of V-Ray will be installed with a second generation of Distributed Rendering (DR2), which improves upon the first generation in several ways. See the Second Generation Distributed Rendering section below for more information.


Organization


V-Ray divides the frame into regions and spreads them across the participating computers in distributed rendering. This is done completely through the standard TCP/IP protocol, supported by almost all hardware. V-Ray itself does not need additional file or directory sharing and has an option to transfer scene assets between the participating computers. File sharing is needed only when scene assets are stored on shared locations within the local network. Generally, distributed rendering is divided into Render Clients (computers that initiate the rendering job) and Render Servers (computers that participate in the rendering job).

To use V-Ray distributed rendering, the Render Client machine (which starts the rendering job and distributes it to other machines) needs to have both V-Ray for 3ds Max and Autodesk 3ds Max installed.

When using regular V-Ray, the Render Server machines need to have both V-Ray for 3ds Max render server and Autodesk 3ds Max installed.

When using V-Ray GPU, the Render Server machines need to have V-Ray Standalone installed.

V-Ray for 3ds Max render server and V-Ray Standalone can be selected in the advanced options of the V-Ray installer. Alternatively, a default (Workstation) installation of V-Ray for 3ds Max can be used on the Render Server machines.


Render Clients

The Render Client is the computer that starts the rendering. It divides the frame into rendering regions, distributes data to the Render Servers, and collects the result.

Every Render Server requires a V-Ray Render Node license. See the Licensing setup page for more information.


Render Servers

A Render Server is any computer 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. A distributed rendering (DR) job can be divided between any number of Render Servers.

If any of the servers fails, the Render Client will receive a notification in the log it will try to reassign the work to another server.

Distributed Rendering setup for the render server machines is set accordingly to the preferred V-Ray render engine.

V-Ray requires running the V-Ray DR spawner for 3ds Max on Render Servers, while V-Ray GPU requires running V-Ray GPU render server for 3ds Max (which internally starts V-Ray Standalone).


Check how to Set Up V-Ray Render Service

Check how to Set Up Distributed Rendering


Render Dispatcher

DR2 introduces the concept of a Dispatcher. In 'classic' mode, the Render Client connects directly to the Render Servers (like DR1 does), and no Dispatcher machine involved. In this configuration, DR2 largely retains the functionality of DR1, but it is capable of utilizing significantly more Render Servers in bucket rendering mode. For example, DR1 typically maxes out – depending on various factors – at around 5 to 8 or 9 servers.

When a dedicated Dispatcher is introduced, the Render Client communicates only with the Dispatcher, and the Dispatcher talks to the rest of the Redner Servers. Typically the Render Client doesn't participate in the rendering which is ideal for machines without powerful GPUs or CPUs. Redner Farms typically have their DR2 Dispatcher and Render Servers on a high-speed network link, greatly increasing network throughput. This ensures that sending scenes and transferable assets does not slow down the rendering process. DR2 Render Servers communicate only with the Dispatcher over this higher-speed link and are unaffected by the slower networking hardware of the Render Client.


Second Generation Distributed Rendering

Distributed Rendering (DR2) improves on the first generation DR in a number of ways:

  • Limitless scaling with bucket rendering. The more machines are added to the rendering job, the faster the rendering. The first generation of DR (DR1) would reach a practical limit of how many machines can effectively participate in rendering.
  • Improved progressive rendering. Bucket rendering still offers better scalability in DR, because of the more efficient way of splitting the work between many servers.

  • Improved caching mechanism. Repeating the same frame that uses the same assets on the same Render Servers is instantaneous.

  • New "dispatcher" node. Unlike "classic" DR, where the Render Client connects directly to Render Servers, in DR2 the Render Client connects to a dispatcher, which in turn connects to Render Servers. As a result, many more machines can effectively participate in rendering compared to before, especially when a network dispatcher is used. Note that in DR2, the Render Client can act as a dispatcher too, but you can optionally dedicate another machine to the role of a "dispatcher" to further boost the performance.
    You can select a dedicated network dispatcher in the Distributed Rendering settings.
  • Improved network throughput. DR2 removes the limitation of "classic" DR (DR1) where data transfer from Render Servers back to the Render Client would hit a bottleneck at the limited network capacity of the Render Client. DR2 servers only communicate with the dispatcher over the typically higher speed link and are not affected by the slower client networking hardware.
  • DR2 uses bucket splitting. This avoids long wait times or stopping at the final bucket.


Distributed rendering 2 is available in a separate build at the link below.


V-Ray 7.2, Distributed Rendering 2 Build


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.
  • DR2 is not yet available in official V-Ray releases. it is available in a separate builds, accessible through the My Chaos portal.


Was this helpful?