Make object render visibility non-global across scenes inside a blend file.
Not sure if I can describe this perfectly...
let's say I have a scene in Blender with a cube. I make scene.001 from the roll down at top of the outliner and choose "linked copy". When I set the view visibility of the cube to off in scene.001, it is still visible in the original scene. Fine.
When I do the same thing with the render visibility, it turns off the visibility for both scenes. What if want to have multiple objects (linked) across two scenes, but want various states of render visibility? Why does the scene function act as a view layer? I thought that's what view layers were for.
Is there a reason render visibility is a global setting across scenes, while view visibility is not?
8 Comments
For me, it would allow an ability to make render passes with various states of visibility on various objects. This all goes back to Blender really needing a pass system like Softimage, Maya, Modo, Cinema4D etc. I'm not talking about AOVs. I'm talking about the ability to make subscenes inside of the main blend file with pass partitions and overrides.
the answer to your question is pretty simple: render visibility is stored on the object, and view visibility is stored in the view layer. you only have one object, but you can have many different view layers. simple as that.
now whether or not that should change, I don't really have much of an opinion, but hopefully that at least explains why it is that way.
* @testure * Well, viewport visibility and render visibility are both stored by the same bitmask, actually. I think OP is talking about viewport hidden-ness, which is temporary.
In any case, collections are the answer!
* @Josephbburg * viewport hidden-ness is what I was referring to, it's unfortunate that there's not a better word to describe it :)
the temporary 'hidden' flag is per view layer
* @Josephbburg * But what should i do when i have this case: one scene should render the ui/hud another (linked) should render the world.
sceneA: some environment, camera is animated
sceneB: some UI / Hud elements parented to the camera.
I can't put the child objects (hud/ui) in a collection. I can create a linked one, but that does not help with visibility..
I could hide the whole collection where the camera is in, but then i would also hide e.g the lights / other stuff parented to the camera that i need in the environment scene..
ps.: actually by writing that all up i think i found a solution: i could go with constraints instead of parenting and that would work well with collections..
* @atair * I don't see why parenting v constraints would make a difference (an object can be in a different collection than its parent, and visibility is not inherited in Blender as it is in e.g. Maya.
There is a "Background Scene" option that may be useful to you: docs.blender.org/manual/en/latest/scene_layout/scene/properties.html
* @Josephbburg * true.. still trying to understand everything..
so render visibility of collections is propagated across linked scenes, viewport vis is not. children can be in other collections as you said. And the only way to turn them on/off per scene is to turn of the collection entirely..
The different handling of viewport / render visibility was confusing me
* @atair * I think render visibility and viewport visibility are relative to the View Layer, actually. Maybe only render visibility is. Do you have multiple view-layers? You might try playing around with that, this is another way of organizing your scene.
When you "turn them on/off" you're actually modifying the view layer. So if you have multiple viewlayers, you have to link all of the collections you're going to use into the scene, and selectively enable/disable them for the view-layers.
docs.blender.org/manual/en/latest/scene_layout/view_layers/introduction.html