Wednesday 11 January 2012

Network Rendering in modo By Paul Buerk posted on January 2nd, 2009

http://blog.irisproservices.com/2009/01/02/network-rendering-in-modo/



Blog

Network Rendering in modo

By Paul Buerk posted on January 2nd, 2009
Taking Advantage of Luxology’s “user-friendly” Licensing
One of the best things I like about modo is the licensing, which is so much easier to live with and work with than other 3D applications. Instead of licensing the software to a machine, or worse yet to a dongle, Luxology assigns the license to you, the user. That means a lot of things: you can install the software on as many computers as you like as long as you’re personally using them and not other people using them. You can install it on your personal laptop, your work desktop, a machine at a client’s site, etc.
Or, as in this example, you can use it to set up your own network rendering “farm”. All without buying any more licenses or installing any network rendering software. Got some older machines that meet at least the minimum requirements for modo, or have some under-utilized desktops or servers in your network? Then you can use that power to speed up your rendering! This capability works on both Mac’s and Windows PC’s by the grace of Bonjour networking.
Setting the main computer up
The first thing that needs to be done is to setup your main computer to use network rendering in modo. This involves a couple things. First, some thought needs to be given to where all the files are going to go. Modo needs to have one shared folder available to all the computers that will be doing the rendering. The simplest thing to do would be to share the currently designated folder, then have the other computers point to it. Or, you could create special shared folders for network rendering, set up subfolders for specific projects and workflows, etc., but this is intended to be a simpler rig for speeding things up. If you prefer, you can setup a shared folder on a common server. On the Mac, you just go into the Sharing preferences pane in the System Preferences, turn on sharing, and select the folder you want to share. The only bummer is that to switch back and forth from Network Rendering using a specially designated folder and back to single workstation rendering is that you’ll have to set your folders in the preferences tab. Not a huge problem, to be sure, but it would be nice to have it automatically point to a folder for network rendering.
To turn on Network Rendering and designate the shared folder that all computers will use, we’ll go into the modo preferences on the main computer. Then we’ll select the “Rendering” section and adjust the entries on the right side by checking the “Use Network Render Nodes” box. You can browse to the shared folder you choose. Here’s the dialogue box for modo preferences:
The modo Preferences pane, Rendering highlighted
The modo Preferences pane, Rendering highlighted
Setting up the render nodes
It helps if you have disk images of the modo software installer, otherwise you have to download those from the Luxology support website. You can install the videos and other stuff if you like, but you really just need to install the first disk with the applications and the documentation. Once that’s installed, download the appropriate key from the Luxology support website and enable the license. On the Mac, it’s as easy as dropping a file on a script and you’re done.
Then check to see if you have access to the shared folder setup for network rendering. You may have to check your permissions to make sure you have access to that folder. For this blog article, I simply connected to my main computer from another MacBook Pro and authenticated as myself on both computers.
After you’ve installed and licensed modo, then checked for the shared folder, it’s time to fire up modo on the new render node machine. Modo will do a quick license check, and assuming that you’ve already got modo running on your main computer, you’ll get the following message:
License Check / Slave Mode dialogue
License Check / Slave Mode dialogue
Since we want to run this machine as a render node, click on the button to enter into “Slave Mode”. What this means is that modo will be running on that machine, but all it will do is to render buckets for the computer requesting them. It does show the scene in the main viewport, which is kinda cool, and you’re free to use that computer for other things at the same time. I suppose you could get more complicated, setting up special “users” on the system that would act as modo slaves and have it all run in the background if you like. I haven’t tried that, but if you’re interested give it a shot and let me know how it goes.
Also, by the way, you can take advantage of modo’s “headless mode” where you can do all kinds of cool things through scripts and command line entries. Could be endless fun for somebody with scripting skills and a copy of Apple Remote Desktop!
Once Slave Mode is running, you’ll need to tell it where the shared folder is at. Again, for the purposes of this article, I simply made the default folder shared, so I just hit the “Set Shared Directory” button and navigated to the folder using the Finder:
Navigating to the Shared Folder using Finder
Navigating to the Shared Folder using Finder
Once that’s done, the machine in Slave Mode will sit and wait for a request from the main computer. Here’s what that window looks like on the Slave while it’s waiting:
Slave Mode running on render node
Slave Mode running on render node
Performing the Network Render
So now the main computer is setup to use Network Rendering, and one or more other machines are setup and running in Slave Mode. At this point, the user simply does a render just like they always do. For this example I dug out a model of a guitar speaker that I had done a while back. It’s a good subject as it takes some time to render, and it has to do an “irradiance pre-pass” before rendering out the buckets. In modo 302, this pre-pass is done first and sent out to the Slaves, which speeds up the whole process. Below is a screenshot of modo doing that pre-pass on this model:
Irradiance Pre-Pass Stage
Irradiance Pre-Pass Stage
Once the pre-pass is done, the systems will render out the frame. The buckets being rendered by my main MacBook Pro are in yellow, and the buckets being rendered by the Slave MacBook Pro are in blue. The more processors you have, the more buckets you get and the faster it renders. I’d love to see what this looks like with a couple 8-core XServes as slaves. Here’s a screenshot:
The Render window while rendering
The Render window while rendering
If I want to check on the status of the other Slave computers, I can pull down the “LAN View” command from the Render menu on the main computer. Here’s what that looks like:
LAN View during the Network Render
LAN View during the Network Render
If you were to look at the displays on the Slave computers, you’d see the current status listed in the window, as below:
Slave mode during the render
Slave mode during the render
The Unofficial Results Are:
For this particular file, network rendering is faster than just using the one computer. I know…. huge surprise! I say “unofficial” results mainly because there are a bunch of factors that could make the times vary, such as other network traffic, other applications running on the main and Slave computers, etc. But for this example, check the times on the render windows below (in the upper left hand corner of each). Here’s the render done by the single (main) computer:
Rendered on one MacBook Pro by itself
Rendered on one MacBook Pro by itself
That’s just a hair short of 5 minutes to render. Here’s what our Network Render produced:
Rendered on two MacBook Pros via Network Rendering
Rendered on two MacBook Pros via Network Rendering
That saved me just short of 1 minute and 50 seconds to do this render. Not that big a deal, but start working some animation into the process and you can see where it all adds up.
Hopefully this gives you an idea of how easy it is to do a Network Render in modo, and how nice it is to have such a user-friendly licensing method for their software. For information on how to setup and execute “headless mode”, check the Scripting manual that’s included with your modo software – you’ll find it under the “Help” menu on the top of the screen. And for those of you with more advanced pipelines, modo can be used with other rendering management software tools as well.
Thanks -
Paul

No comments:

Post a Comment