Maya Distributed Rendering Tool
Abstract: The Maya Distributed Render Client and Slave system allows you to specify a render job on one machine and start it on a set of networked “slave” machines. It also allows you to view the completed images and save them to a folder on the local hard disk. The system was built in Cocoa for Mac OS X and uses Rendezvous networking technologies for automatic slave discovery. It was designed for a relatively slow network of machines running Alias Maya 6.0. I haven’t tested it with earlier versions, and versions newer than 6.0 have this functionality built in.
Installation: The Maya Distributed Render Client is a relatively straightforward application. Drag it to your Applications folder, and make sure limitations are not set which would restrict users from running it. A copy of Maya is not required for the client machine, because the client will not use itself as a render slave. (The Idea here is that you can continue modeling while the scene is rendering.)
Setting up Slaves: The Maya Distributed Render Slave runs on the rendering machines, and handles job requests. When a request is received, the slave transfers the necessary scene data and starts the render in Maya. Drag the slave application to your applications folder and make sure a licensed copy of Maya (must be recent enough to open the file) is installed on the machine. Launch the slave application and enter a name for the machine in the edit field. Do not select an images folder. Press the Start button to make the slave available on the network. If the machine will be used for rendering on a regular basis, you might consider making the application a startup item via the Accounts preference pane.
Rendering a Scene: To render a scene using the Maya Distributed Render Client, run the application and select the scene file. If your scene contains textures or source images, you must also select a “textures directory”. This textures directory will be copied to the remote slaves along with the scene file. Once you have selected a scene file and the textures folder, enter the start and stop points for the animation. The client needs to know which frames you want to render, in order to distribute them evenly among the slaves. All other render settings (such as image size, format, and quality) should be set from within Maya using the Render Settings window.
Once you have entered all the necessary information, select the slaves you would like to use from the list in the left half of the window. If you don’t see any slaves, see the troubleshooting information below. Once you have slaves selected, press the Render button. Note that the “remote slaves” system is not completely finished. It may not work under certain circumstances (and that url that’s in there? not a real slave – sorry). Chasing arrows will appear, but will not move (I got lazy). When all of the data has been sent and the remote renders started, the Rendered Images window will appear and allow you to copy the completed images back to your machine. The list of images updates once a minute, so… be patient.
1. When I press the render button nothing seems to happen. The slaves do not begin the render, and the images window never comes up.
Open the console and look for an error message being sent when you press the Render button. If you have done something bad (like force-quitted the application while the socket connections were still open), you may need to log out and log back in to clear the port. If this doesn’t work, try restarting the render slaves. (sockets are VERY messy things – If something unexpected happens and the connection isn’t properly closed down, any attempts to re-open it will fail)
2. I don’t see any render slaves in the list.
Make sure there are computers on your local network running the Maya Distributed Render Slave application, and that you have pressed the “Start” button in each of these. If you still aren’t seeing any (which would be very odd), check your network connection and/or restart. The Maya Distributed applications use Rendezvous Networking for automatic socket discovery, and that usually doesn’t fail.
1. When the slave receives a job, a window appears asking me to find Maya.
The slave doesn’t know where Maya is on the disk, or doesn’t know which version to use. Select it and continue. To prevent the window from coming up again, keep Maya running in the background.
2. The slave machine renders, but the images do not appear in the list on the client machine.
This is what the images directory option is for. By default, the images are saved to /private/tmp/MayaDistributedProject/http://www.gotow.net/creative/attachments/mayadistributed/, but in some special cases (permissions problems, mostly) that has not been working. Find where Maya has put the images, and the next time you launch the rendering slave select that folder as the images folder. When the client requests the list of rendered images, the slave will return the contents of that folder instead of the default.
Well, that’s about it! I covered everything pretty briefly. If you have any questions about the Maya Distributed system, feel free to email me. Why does the menu read “Picture Sharing Browser”? Well, I developed this off of an Apple Developer example, which used Rendezvous to do picture sharing. First time I’ve used rendezvous…
1.0 = The current version. Does everything I need it too. If I end up getting a lot of requests for improvements, I will probably make another version.