Distributed rendering

Introduction

Distributed rendering is a technique where a single render job within a single frame is distributed across multiple computers on a network. There are different approaches of doing this but the main concept is to reduce 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 into small regions (buckets) to be rendered individually, then give each machine a number of them to render, and get the results in order to 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 installation instructions . Note that if you create a fresh install of 3ds Max on a machine, you will need to run at least one Backburner job with this machine as a server before you can use the machine for distributed rendering.

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 3dsmax > Distributed rendering > Launch V-Ray DR spawner). It will automatically try to find the 3dsmax.exe file and start it in server mode. You should end up with 3ds Max minimized down in the task bar. It should have the title "vraydummy.max". If 3ds Max stays there alive without closing then you have the Render Server part working. If you see th 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.

Now test the render client:

  • Open your 3ds Max 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 Settings button in the Distributed Rendering section.

  • Add the machines to be 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.

If Something Fails

Practically every action taken by V-Ray DR is logged. You can find all the log files in the C:\ directory and find out what has failed. If you do not understand the problem, you can compress and send the files to us to analyze them and eventually try to help - vray@chaosgroup.com

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 Settings

images/download/attachments/2557209/DistributedRendering_1.png 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.

Restart slaves on render end - enabling this option will cause the 3ds Max copy on the render slaves to be restarted once a DR rendering is finished. This may help to make distributed rendering more stable.

Notes

  • Every render server must have all the plugins and texture maps loaded in their proper directories so that the scene you are sending will not cause them to abort. For example, using a PHOENIX plugin in the scene will cause 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, the bucket at that machine will be rendered 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 will not render. If you need any lighting in the scene, you should add it explicitly.