Override Inputs Per View Layer (Like Maya Renderlayers)

I work for a well established studio in the medical animation field, and we are seriously considering moving our main pipeline from Maya to Blender. Right now, there are a huge number of benefits, but there is one major drawback that I am not sure we will be able to work around. A system that allows users to override any material, per object or collection and per view layer. The current system of a single material override for every object in the view layer is simply not enough for our workflow, and the available AOVs never fully account for all the passes we need in a large scale animation. Per object material overrides for each View Layer/ Render Layer are absolutely essential and are used in every project

We heavily use nuke to achieve very stylized and dramatic looks from various combined material passes. Since this is medical work, much of it at the molecular level and very open to artistic interpretation, the goal isn’t really to make it look realistic, but to make it look beautiful and have it be incredibly controllable. This serves the dual purpose of being able to have more versatility over the final look, and address client concerns in post without completely re-rendering animations

If there is any workaround that perhaps I do not know of, I am desperate to find it. If not, please consider adding this feature. Currently it is the ONLY limitation that is holding us back from being 100% Blender

Completing Library Overrides system to handle material tweaks is a target.

You can test it in a 2.90 beta or 2.91 alpha. It is experimental but adding a library override on a material, duplicating material nodetree, tweaking duplicated nodetree and choosing material output of duplicated nodetree as active material output should work.
To add a library override, you have to use Right Click menu on item in outliner.
https://docs.blender.org/manual/en/latest/files/linked_libraries/library_overrides.html

A workaround, used for years, can be to use Edit Linked Library addon to edit easily original data instead making data local in final rendered file.
https://docs.blender.org/manual/en/latest/addons/object/edit_linked_library.html

Without using Library Overrides, you can always make linked data, local in final .blend file.
By default, material data is linked to mesh.
But if you link it to object instead, when you link object to final scene, you don’t have to make mesh local to be able to make material local.
https://docs.blender.org/manual/en/latest/render/materials/assignment.html#data-block

As you said, at compositing level, there are AOVs.
There is also a material index pass to use with IDmask node.
https://docs.blender.org/manual/en/latest/compositing/types/converter/id_mask.html

And since 2.80, there is cryptomatte material pass.
https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/Cycles#Cryptomatte

1 Like

Im talking more about being able to override data per view layer, not with a linked asset. Like, if I have a blue sphere in one view layer, I want to be able to make that sphere red in another layer by overriding it’s material in that layer only. Very simple example but there are tons of use cases that go beyond simple AOVs and ID masks - not worried about those

Is there a plan for expanding the features of view layers, or is it serving it’s intended purpose?

In fact the concept of collection is mixing both.
Collections are at same type, layers that can be enabled on some View Layers and disabled on others and assembly of objects easier to link as a group.

So when you link a collection, you can set a library override per collection instance.
A collection instance is an object until you add a library override to it.
At that moment, it becomes a collection that can be disabled on a viewlayer and enabled on another one.

After a test, material overrides are not really usable.
I succeeded to make a different override per collection instance with 2.91 alpha.

Unfortunately, they are not saved, yet.

Okay, thank you, that does clear it up. Hopefully those overrides will work on the material level in the near future