![]() |
||||
|
||||
| Updated 03 September 2006 |
|
NOTE: Maya 7.0 Render LayersOne of the major new features of Maya 7.0 is a whole new Render Layers system. This new functionality is quite thorough and well implemented, and should cover most people's needs for render pass management. However, whilst the new system is flexible enough to be able to override shaders, visibility or just about any other attribute in your scene, it doesn't support writing MEL code to be executed when changing passes. This means you can't do completely arbitrary things between passes. For example you couldn't reassign MTOR shaders between passes if you're using RenderMan, or execute scripts to make your changes for you, such as loading presets or shader assignments from external scene description files. So there is definitely still a use for this plugin, particularly for more complex film pipelines, and I'll continue to support it and release new versions whenever a new Maya release is made, but I will probably not be making any major changes to it from now on. Fortunately the functionality of this plugin and Maya 7.0's Render Layers don't clash, and they can quite happily cooperate within the one scene. For example, you could use Maya's Render Layers to more easily handle the shader assignments, and this plugin to handle other changes. You would then have an override to set the Maya Render Layer whenever you apply a render pass. You can do this with the MEL command: editRenderLayerGlobals -currentRenderLayer "LAYERNAME"
|
|
NEWSFLASH: Source code released as an Open Source projectI have decided to release the plugin as an open source project - you can find it at http://sourceforge.net/projects/rp4maya/. I probably won't be working on it myself any more as the Maya 7.0+ Render Layers seem to work quite well, and I'm not using it at Double Negative because their in-house RenderMan exporter includes its own pass system. But I know a lot of people are using it, and might be concerned about there being no further development, so I think putting the code out there is a pretty good option. If anyone is interested in comitting changes back to the source repository let me know. |
Render Passes for Maya is a plugin I have written which allows you to define completely customizable render passes whilst still maintaining a single scene file.
Render passes are a crucial aspect of generating high-end visual effects work. A render pass is a special render where you change various aspects of your shaders, lights and scene in order to make matching sets of images that allow the 2D compositing process maximum control. In the most basic sense you might generate a beauty pass (like a 'normal' render) as well as maybe a shadow pass and a specular pass. However, it is not uncommon for high-end work to generate dozens or even hundreds of passes and layers as input to compositing.
Passes can be absolutely necessary, but more often they are used to give compositors more flexibility, and to shift some of the time-consuming look development work off into the 2D realm, where feedback is so much quicker. For example, somebody responsible for look development might spend a whole day playing with the relative strengths of shadows, specular and other light contributions to get a 3D render to sit well into a filmed background plate. However, if seperate passes were made and brought into a compositing system, these variations can all be viewed and tweaked in real time.
Previously if you wanted to make custom render passes in Maya you needed to make the required changes to your scene, and save out a version specifically for rendering that pass. If you did this for six different passes you would have seven scene files (6 passes plus your master scene). Then if changes were needed (and when are they not!) you would need to either make the change to your master scene, then break it up into passes again, or otherwise make the identical change to all your existing pass scenes.
This is a pain, and invites mistakes where the passes might not line up perfectly. Worse still however, is the side effect that it introduces a reluctance to continue making improvements to your scenes after you have split them up for pass rendering.
This plugin works by having the user specify the changes needed to generate each type of pass, and these changes are recorded into the original scene file. At any time you can select one of your defined passes and the plugin will automatically apply all the required changes to your scene. When you select another pass all these changes are first undone, and the changes relevant for the new pass are then applied. You can always return to your original scene by selecting the special "<none>" pass which undoes any changes.
If you want to know more about how the plugin works before downloading it yourself, you can check out the online documentation here, including a quick tutorial here.
Aside from the included docs and tutorials, there is also another tutorial on Matt Estela's Maya Wiki site, and use of the plugin is covered in the Maya | Multipass Rendering training materials from 3DNY.
Sure. You can download the Render Passes archive below:
Download Render Passes for Maya v1.5.2 (Maya 4.5 to 7.0 for Win32/Linux, Maya 6.0 to 7.0 for OSX)
The package contains the plugin, support scripts, online documentation and a simple demonstration scene. A huge thanks to George Harker and Philippe LePrince for their help with the OSX builds.
NOTE: The download link above is currently the place to get the latest release from, but I think that will soon change, and binaries will be available from the SourceForge project page.