RenderPass, RenderSettings and Products/Vars

Hi all,

we are going to use the RenderPasses in our offline rendering pipeline (with a pre-script that generates a “renderable usd file” that is already setup with all its activations/visibilities/etc based on the specified RenderPass prim, so that it behaves in the same way in usdrecord, husk and usdview if needed.

Basically, like “baking” the result of a pass in a new usd-file that’s setup to be valid for only one pass, and you can debug it in usdview if needed.

And in our pipeline we’d like publish separate files for RenderSettings and RenderProducts/Vars.

And a RenderPass should basically be the component that combines the RenderSettings with the products used for that specific pass.

Scenarios are like: you have RenderSettings for various types of renders (final, dailies, previews, etc) and you might have products for Beauty, Specs, Diffuse, Deep, etc.
Adding those directly on the RenderSettings before specifying what pass you are going to render doesn’t make sense, so we are going to use some extra attributes on the RenderPass so that we know, in the pre-script, what Products we need to add to which RenderSettings (renderSource) prim.

I was wondering if this is a workflow that others can see valid and if so, if it is possible to extend the RenderPass to also have an attribute for the Products to be used.

I hope this makes sense

Cheers!

Hi @paoloemilioselva , I think we were trying to strike a balance of complexity/expressivity that would facilitate multi-pass renders and simpler, single-pass renders (which would not even require a RenderPass prim).

You’ll note that RenderPass.renderSource targets a (presumed) RenderSettings prim, and that could often be unique. I don’t know if I’m accurately representing what we’re actually doing, but I know we discussed leveraging composition here, so e.g. there is a common/base RenderSettings prim configured with everything except the products. Then, under each RenderPass prim, we’d create a prim that references that base RenderSettings, and then sets the unique products for that pass, and point the RenderPass’s renderSource at it.

That seems like only a bit more scene description, and a simpler process than what you are describing?