Render: Per ViewLayer object

Hello everyone!

I would like to use this topic as a feedback/design support for my devlopment PR.

Related PR: #153557

Here is the introduction:


Introduction


Layering is a bit difficult and messy because we are forced to use collections for most things.

Objects have holdout and shadow catcher properties, but these two properties are global. This means that enabling or disabling them on one layer will enable/disable them on all view layers.

In addition, some very useful properties (such as indirect only or exclude from viewlayer) do not exist at the object level.
This means that in order for an object to have these settings, it must be packed into a collection. This may seem trivial, but on large productions, it forces you to have a sort of second collection hierarchy in the outliner just for layering. However, this is also true on simpler projects that don’t necessarily have multiple layers, but where you still have to create a set of “override collections” or pack objects into collections to exclude, holdout, make them indirect only, or shadow catchers.

Furthermore, this is a special case, but since the shadow catcher is global, the only way to shadow catch a set of objects per viewlayer is to put these objects in a collection and then instance collection it so that it has the shadow catcher parameter, since an instance collection is a kind of hybrid between an object and a collection.
It might be simpler to allow the collection to be shadow caught directly, or the object directly (by viewlayer).



I’d like to offer a preliminary solution to layering in Blender, which is a bit complex and messy.
I’ve had to deal with layering in Blender during many studio productions of varying sizes.
Almost every time, I’ve had feedback from artists/users who found it impractical and who were often frustrated that they couldn’t simply perform exclusion, holdout, etc. operations by object per viewlayer.

My PR attempts to partially address this need.

However, the problem is probably more profound, and perhaps we need to rethink the way we layer in Blender. Make it more user-friendly? Take it out of the outliner?
There are certainly a lot of possibilities, and I think this topic could serve as a basis for opening a discussion on this subject and gathering your opinions. What do you think?

I know that this is often a production secret, but if some of you (certain studios?) could share your layering techniques for rendering, it would help us better understand the requirements and think more carefully about how to meet them.

11 Likes

i can write a plugin for you DM me your steam or discord tags