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 of 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. The most common way to do this is to divide the frame to be rendered into small regions(buckets) and give each machine to render a number of them. Then get the results and combine them into the final image.

Organization


V-Ray supports DR. It 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 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.

Render Clients

The render client is the computer that the user is currently using and 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.

Render Servers

A render server is 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.

Installation Notes


See the Distributed Rendering section in the install instructions.

How to test

First start with the testing of the render server:

  • Start the vrayspawnerXX.exe program from the Start menu (Start menu > Programs > Chaos Group > V-Ray for SketchUp > Distributed rendering > Launch the distributed rendering spawner). It will automatically open a command prompt window.

Now test the render client:

  • Open SketchUp as you normally would.
  • Open a scene you would like to render (preferably a simple one for this test).
  • Choose V-Ray as your current renderer and make sure you have checked Distributed Rendering ON in the V-Ray System section.
  • Press the Hosts button in the Distributed Rendering section.
  • Add the machines used for rendering - either with their IP address or their network name and close the dialog.
  • Render the scene as you normally would. You should see the buckets rendered by the different servers.

V-Ray Distributed Rendering Settings


The Distributed rendering settings dialog is accessible from the System rollout of the renderer settings.

Add server - this button allows you to manually add a server by entering its IP address or network name.

Remove server - this button deletes the currently selected server(s) from the list.

Resolve servers - this button resolves the IP addresses of all servers.

Enabling 64-bit Rendering


Local Machine Only

1. Enable Distributed Rendering by making sure "On" is enabled from the System rollout.

2. Enable "Don't use local machine". One limitation with this feature is that Light Cache calculations are NOTvisible in the the V-Ray frame buffer.

3. Open the Distributed Rendering Settings and choose add server and input the IP address of 127.0.0.1 and chose OK.

4. Render the scene as you normally would. You should now see the rendering buckets labeled with the name of your local machine. In the task manager your will see that XMLDRSpawner CPU usage is high, at around 90%, and the SketchUp process should be using very little CPU.

To render using distributed rendering the XMLDRSpawner must be running. By default on your local machine V-Ray will try to identify if your machine is running a 64-bit opertating system and it will automatically start the 64-bit version of the XMLDRSpawner. However, you can start or restart the 64-bit render server manually as follows:

  • Start the XMLDRSpawner.exe program from the Start menu (Start menu > Programs > Chaos Group > V-Ray for SketchUp > Distributed rendering 64-bit > Launch the distributed rendering spawner). It will automatically open a command prompt window.

Rendering Servers Only

1. Start the 64-bit render server on your rendering servers manually as follows:

  • Start the XMLDRSpawner.exe program from the Start menu (Start menu > Programs > Chaos Group > V-Ray for SketchUp > Distributed rendering 64-bit > Launch the distributed rendering spawner). It will automatically open a command prompt window.

2. Enable Distributed Rendering on your local machine by making sure "On" is enabled from the System rollout.

3. Enable "Don't use local machine".

4. Open the Distributed Rendering Settings and choose add server and input the IP address of each of your rendering servers.

5. Render the scene as you normally would. You should see the buckets rendered by the Server Name.

In the task manager of your local machine your will see that XMLDRSpawner has no CPU usage and the SketchUp process should be using very little CPU.

Notes


  • Every render server must have all texture maps in their proper directories loaded so that the scene you are sending will not cause them to abort. For example if you have mapped your object with a file named JUNGLEMAP.JPG and you do not have the path to the directory mapped to the render server you will get bucket rendered at that machine as if the map was turned off.
  • 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.