Per-ViewLayer hide_render Property for Objects
I would like to propose the following idea:
Description: Currently, the hide_render property (Disable Objects for Rendering) in Blender is global per object, meaning it applies to all view layers equally when you render multiple layers at once. This limits workflow flexibility, as artists often need different objects to be visible in different view layers without duplicating scenes or collections.
Proposed Behavior:
The hide_render property should be per View Layer, similar to how collection visibility works.
Artists can toggle hide_render individually for each object per view layer.
Existing scripts/add-ons using the global hide_render should remain compatible (e.g., default to the first layer).
Use Case / Motivation: Multi-layer rendering workflows often require objects to appear only in specific layers. Submitting every layer on its own sums up to a great time factor on bigger productions.
Currently, workarounds include duplicating scenes or temporarily toggling hide_render via scripts.
A per-layer hide_render property would simplify workflows, reduce scene complexity, and improve render pipeline efficiency.
Simple Example Scenario:
Scene contains objects: Cube, Sphere, Cylinder.
Three view layers: CubeLayer, SphereLayer, CylinderLayer.
Desired render output:
CubeLayer renders only Cube
SphereLayer renders only Sphere
CylinderLayer renders only Cylinder
With per-layer hide_render, no collections, scene duplication or Python workarounds are necessary.
Technical Notes / Suggestion:
Could store hide_render as a small array or dictionary keyed by view layer in the Object struct.
The render engine should check the object’s hide_render for the current view layer instead of globally.
UI should optionally show per-layer toggle, defaulting to global behavior for backwards compatibility.
Benefits:
Simplifies multi-layer rendering workflows.
Reduces scene duplication and maintenance overhead.
Compatible with Cycles, Eevee, and future render engines.
Would be very very nice if this could be implemented in the near future :) Best regards Leonie
1 Comment
Precisely.
The way the Icons Options work in relation to the Object in the View Layers context in the Outliner is already quite confusing, because certain types will affect only the particular View Layer level (e.g., Collection: Exclude from View Layers Checkbox Option; then, the Hide in Viewport Option, and the Holdout Option... which is about the opposite side of the Icons stack!!!!!! also, same for the Indirect Only Option), while others will affect elements on a pervarsive View Layers level (e.g., the Disable Selection Option, the Disable in Viewport Option and the Disable in Renders Option as already indicated in the original post)... This is very confusing because these features, first of all, should be (re)organized based on their fundamental behavioral difference, for better Scene management; as it is currently, they are sorted in an unlogical manner, when it comes to more avanced Scene developments...... such as Compositing Workflows for example; sure, their current arrengement follow another logic, but I'm not sure that current one is the best by default. Whichever is the case of their arrangement, some sort of VISUAL SEPARATION [of the Icons] or clear SIGNALING should be necessary, so that we know, in the glimpse of an eye, which are actually 'pervasive-View-Layers-affecting', and which are just 'current-View-Layer-affecting'.
Now, when it comes to the proposition of changing some of the Icons Options behaviors (the Disable in Renders Option, and I guess the Disable in Viewport would also be a good pair to it), in order for them to become 'Per View Layer' (just 'current-View-Layer-affecting'), although I'm not entirely sure that would be the ideal commitment, at the same time, I cannot disagree that it would make many Compositing Workflows SO MUCH simpler to solve.
Because, why would we want a new View Layer anyways? To make the Scene LOOK totally different by just clicking those Icons Options; this is why, it would really make more sense to make some of them (if not ALL of them even?) Per View Layer.
Glad you've had the Disposition to elaborate this Feature Request, Leonie Menzel Have a nice weekend!