Hi Seb,
Thanks for the questions, I've attempted to answer them inline and have attached an example script covering a few of the ideas mentioned within. Please let us know if you need anything clarified. :)
> How do you manage shader overrides at the render layer level with the render pass editor? How do you edit the other settings that we typically find in the Arnold attributes node?
At its simplest, a render pass is just the Gaffer scene evaluated with a particular value of the `renderPass` context variable, so manual scene adjustments can be made for a render pass much like any other context based edit by using a NameSwitch, Spreadsheet, Expression or ContextQuery to drive the edit based on the current value of `renderPass`.
The Render Pass Editor creates new edits following the same concepts by automatically populating a Spreadsheet with edits to the scene globals within an Edit Scope node. For a multi-shot workflow you could use multiple Edit Scopes, with one or more global Edit Scopes defining the render passes and settings common to multiple shots or a sequence, and then using shot-specific Edit Scopes to create additional render passes, disable upstream render passes that are not required for the shot, and override shot specific settings.
The attached example script expands on the Render Pass Editor example provided with the Gaffer releases, turning it into a simple multi-shot setup with shot overrides, render pass overrides, and per-shot per-render pass overrides. Hopefully the backdrops and annotations give you a rough idea of the sorts of things you can achieve by combining Edit Scopes, NameSwitches and other nodes to edit the scene.
At the pipeline-level there's also capability introduced in Gaffer 1.4.4.0 to register Render Pass "types", which can be used for more templated setups by registering adaptor node networks that are automatically applied when a render pass is configured to a specific type. One use of these can be to override shaders and attributes like is done in the example provided "shadow", "reflection", and "reflectionAlpha" types. We can provide more info on setting these up if you're interested.
> I have tested the camera inclusion/exclusion and matte inclusion/exclusion features. If I have multiple paths to copy in the cells, it quickly becomes hard to read, mainly because all paths are copied one after the other.
> Is there a better way to manage the paths or to view the paths as a list like in the path filter?
Those columns accept
Set Expressions so you could also use sets which can be a bit easier to manage than long lists of paths. It's unclear which Gaffer version you are testing with, but we've recently improved the editing experience with Gaffer 1.4.5.0's new SetExpressionPlugValueWidget. This adds syntax highlighting for Set Expressions with auto-complete of set names, and turns the widget into a multi-line editor so you could split your lists of paths over multiple lines. There's still more to improve as far as how large amounts of data are presented in the overall table view of the Render Pass Editor, but this new widget should be quite an improvement to the editing experience so it'd be worth updating to a more recent release if you're still on 1.4.3.0 as your example script suggests...
> How do you manage the BATCH output per render pass and for a multi-shot script?
Assuming your multi-shot outputs are already using context variables such as ${shot} to define their output paths, you'd also include ${renderPass} in the output path to make a multi-shot, mult-renderPass aware output such as "/path/to/project/renders/${shot}/${renderPass}/beauty/beauty.####.exr" - though it appears you're doing this already in your example script so it seems you've already figured this out, or maybe I'm misunderstanding the question?
> How do you define AOVs per render pass?
At present you'd use Outputs & DeleteOutputs nodes upstream of a NameSwitch node selecting based on ${renderPass} to create and delete AOVs per render pass. Looks like you've already taken this approach in your example script, though one potential improvement would be to leverage the NameSwitch's pattern matching with some conventions on the names of the created render passes to set up common sets of AOVs for particular groupings of render passes to avoid having to create a switch input for each and every render pass. Outputs nodes can also be chained together, so you could have a common set of outputs defined on one node and then switch in additional nodes for just the render passes that require extra outputs.
Gaffer's output definitions could do with an upgrade and once we make them a bit more procedural we would like to add support for AOV configuration in the Render Pass Editor in the future...
> All these new features looks really cool and I'm eager to be able to use them in our templates !!
Thanks! We're glad you're seeing the potential! Things will continue to evolve in future 1.4 releases, there's always more to be done and feedback is very much appreciated...
Cheers,
M