Org:Institute/Open projects/Mango/Pipeline

提供: wiki
移動先: 案内検索

Mango Pipeline

Blender

On the desktop of each workstation should be 4 icons:

  • Blender SVN Update: build updated blender from the latest trunk
  • Blender Clean: create a completely new build
  • Blender Optimized: run optimized blender (usually what you want)
  • Blender Debug: run debug version of blender (for developers to debug issues)

Directories

We current have 3 main directories for Mango files:

  • /mango: svn production files (local to each workstation)
  • /render/mango: real footage and render farm output (shared, on the server)
  • /shared/mango: other files, like weeklies, scripts, funding, .. (shared, on the server)

Subversion

This repository is like a shared folder, but with a history recording all changes. It also requires you to manually "update" to get changes from others, and "commit" to push your changes.

The intention is to use this for all blend files, textures, and other production files. For the directory layout and naming guidelines, see these instructions copied from Durian. We'll probably have to update those a bit but they should be a good start.

There are some exceptions for things that should not be added to svn. Don't add renders, they will be managed by the render farm. Also don't add video footage, these files are too big, we'll figure out some other way to manage them. And don't add copyrighted material that we don't own to svn, we like to release the entire subversion history and it's a bit difficult to get files removed from history once they have been added.

Workflow

All studio computers should have a directory /mango, which is a checkout of the repository. The workflow is basically:

  • svn update
  • make changes
  • svn add/remove files
  • svn commit

The svn operations can be done either through the command line, or a graphical user interface. We've used RapidSVN in previous projects, which should be installed under Applications > Programming. The first time you use it, add the checkout with Bookmarks > Add Existing Working Copy, and browse to /mango.

Now you'll have the directory structure, and updating is done by selecting the top element in the tree and running Update.

Next you can close RapidSVN and just make changes in /mango folder as usual, creating or changing files and folders. Then if you want to push your changes, open RapidSVN. If you added or removed any files, you need to tell svn about this still, browse to the folder and right click files to add/remove.

Once this is done, select the top element of the tree and run Commit. Type a nice descriptive commit message to let others know what you changed, and confirm. The first time you commit, a username and password must be specified. The username is your first name in lowercase, the password is "guest".

Render Farm

An icon on the desktop Mango Farm will take you to the renderfarm control web page. Files need to be committed to svn to be rendered, and the results will be written to /render/mango/frames. To add a job, specify the path to the file starting from the svn directory. I.e. to render /mango/pro/scenes/01_first/test.blend, fill in pro/scenes/01_first/test.blend and click Add Job.

To generate a preview .avi file from the rendered frames into the same directory, use Generate AVI's after the frames are rendered.

Server Details

The renderfarm code is located in /shared/software/render_farm, run with ./new_master.py as user "user".

To generate preview images from the last render every n minutes, run "./slideshow/preview_images_update.py". These will show in the render farm web page. There's also a "./slideshow/slideshow.sh" script that will show these images fullscreen on a desktop computer, cycling between the last two renders.

Before a slave can be added, the server must be able to ssh into the machine without it asking for a password: cat /shared/software/render_farm/id_dsa.pub > /home/guest/.ssh/authorized_keys

These scripts are running in a screen session, see "screen -ls" for the names, attach with "screen -dRRS <name>" and detach with "ctrl+A D".