Maya and Mental ray are one of the most used 3d graphic production platforms over the world. One of the reasons is their easy and very powerful multi-platform distributed rendering capabilies. Have you ever wonder to speed up you render speed by 2x 4x 8x and so on?
Just follow my Mental Ray distributed rendering guide: maya render farm setup!
TYPE: Free maya tutorial
CATEGORY: Rendering Maya, Hardware, Mental Ray
STATUS: Available since 19 February 2013
Distributed render in Maya tutorial (mental ray render farm)
Autodesk Maya comes with 3 node licences, in theory it means a speed up performance of 300%, in pratics it's 190% with 1 master and 1 slave, and its 250% with 1 master and 2 slaves when we are working in a multi-core optimized scene.
You should know that not any kind of render operation is parallelizable, for the truth a lot are still single core compiled (like hair and fur generation). Anyway when you work on high-res renders you can take a great advantage of distributed rendering in Mental Ray.
HOW IT WORKS: MR SATELLITE VS BACKBURNER
You could be tempted to think that Mental Ray for Maya distributed network rendering is something like backburner, a job scheduler good for batch renders like final renders or animations frames....well it's not! Mental ray's distributed rendering is awesome, because it's automatic (you just have to configure once in your life and it will always work as you launch Maya) and it works not only in batch render but in preview and IPR renders too, either along side the local computer or without it, freeing the local computer to continue working.
First of all you need to install Mental Ray Satellites to all your maya's slaves. You can find them here. Be sure to download the same version of your Maya in use.
Once you finishd the installation reboot your systems. Mental Ray satellite will start automatically as windows service.
1)Create a user in all your windows OS (master and slaves), make it administrator.
2)Create a file called maya.rayhosts in "\Users\username\Documents\maya\2013\prefs" directory.
The maya.rayhosts file must contain a listing of each slave machine’s name. These slave machines must be accessible on the network where mental ray for Maya (the master machine) is installed.
For mental ray for Maya Satellite masters, you must add the port number by typing “:port number” after the hostname in the maya.rayhosts file. The port number set on mental ray for Maya Satellite slave machines is, usually, 7413. For example:
You can use IP addresses as well as machine names.
NOTE: It is highly advised to check the exact PORT NUMBER in "C:\Windows\System32\drivers\etc\services" , you should find a string like "mi-raysat2013 7413/tcp" or something.
My generated host file look like this:
TEST DISTRIBUTED RENDER
1) Under Render Settings, choose Mental Ray as your renderer. Network rendering only works under Mental Ray.
2) Setup all rendering setups, lights, etc. to ready the scene for rendering.
3) Choose Render > Render Current Frame > click the box next to render current frame to get to the settings
4) Check Render on Network Machines Checkbox to use the network.
5) Optionally, Render on Local Machine (your own current session of Maya) also.
Using this, your machine will be rendering and the network will be rendering, adding your machine as a node in the farm process.
6) Click Render
The job may take a moment to start, as your computer sends the Maya file, all textures, and other information up to the render nodes and kicks of the process. Within a few moments you should see the render process begin, with various square “buckets” (or portions of the image) beginning to populate the rendered image. Each node on the render farm is working on up to 8 buckets (4 physical cores + 4 Hyper treading) at a time with my i7 machines.
To verify which hosts file is being read when you are rendering:
set the verbosity level for messages from the translation process by using the MEL command as outlined in Export Verbosity. During a render, messages similar to the following are output to the Output Window:
NOTES ON DISTRIBUTED RENDERING:
1) Mental Ray Satellite network rendering does not have a queue.
2) Network Rendering in Mental Ray Satellite may or may not be faster than rendering on your local machine only. This may seem counterintuitive, but in some cases, depending on complexity and file size, rendering just locally will be faster than processing on the network. It is our experience that only the most complex of rendering jobs will render faster on the network. Simple jobs do not pose much benefit because of the overhead of communicating over the network to control the job.
TIP FOR LAPTOP WORKING:
Network Rendering may be of greater benefit also if you are working from a laptop computer where your computer is significantly slower than the network nodes, and this makes up for the lags inherent in network overhead.
MAYA MENTAL RAY BENCHMARK SCENE:
Here you can download for free an effective Maya/Mental Ray Benchmark scene. I used that scene over the years to estimate the rendering performances of my hardware. Just open and click render (be sure to render at the right resolution)
Here some of my results:
RIS 640x480 ---> Intel Q6600@3.2 (197sec)
RIS 640x480 ---> Intel 2600K@4.6 (107 sec)
RIS 640x480 ---> Intel 2600k + i7 420 (115sec) RES 640x480 ---> Intel i7 2600K @3.4 + INTEL i7 2600k @ 3.4 (77sec)
RIS 640x480 ---> AMD OPTERON 4226 x2 CPU (153sec)
RIS 640x480 ---> Intel Xeon X5650 2.67ghz 4 cores of 12 (213sec)
RIS 640x480 ---> INTEL i7 2600k @ 3.4 (135sec)
RES 1920x1440 ---> AMD OPTERON 4226 x2 (814sec)
RES 1920x1440 ---> AMD OPTERON 4226 x2 + Xeon X5650 4 cores of 12 (519sec)
RES 1920x1440 ---> INTEL i7 2600k @ 3.4 (694sec)
RES 1920x1440 ---> INTEL i7 2600k @ 3.4 + INTEL i7 2600k @ 3.4 (414sec)
RES 1920x1440 ---> INTEL i7 2600k @ 3.4 + Xeon X5650 2.67ghz 4 cores of 12 (474sec)
RIS 1920x1440 ---> INTEL i7 2600k @ 3.4 + i7 420 (608sec)
RES 1920x1440 ---> INTEL i7 2600k @ 3.4 + INTEL i7 2600k @ 3.4 + i7 420 + Xeon X5650 2.67ghz 4 cores of 12 (294sec)
Write your results in the comment's box below, I'll integrate all the results in the graph. More results, more accuracy.