Page MenuHome

Disabled Renderlayers still get saved (blank) through File Output Node when connected to Composite Node
Closed, ArchivedPublic

Description

System Information
Tried on Ubuntu 17.10, Windows 10 and OSX 10.11.6

Blender Version
Broken: version: 2.79 (sub 1), branch: master, commit date: 2017-11-27 15:57, hash: 2bf38257112, type: Release
build date: 2017-11-28, 01:19:29

Also in latest builds as of 2018-01-18.

Worked: 2.79

Short: Disabled Renderlayers still get saved (blank image) through File Output Node when connected to Composite Node (overwriting previously rendered Images).

I made a test .blend ...

Details

Type
Bug

Event Timeline

Sergey Sharybin (sergey) closed this task as Archived.Jan 19 2018, 12:21 PM
Sergey Sharybin (sergey) claimed this task.

Thanks for the report, but this is a limitation of compositor which is not aware whether some input was disabled or not. It might be possible to do something with such a trivial case, but with real compositor setup things becomes ambiguous really quick.

But its not "some input" which is disabled, the renderlayer itself is disabled in the render layer tab! And it works in 2.79 but not in the newer builds. The file node just saves out an empty image for the disabled layer in 2.79.1 which it did not in 2.79.

Could you please check this again Sergey?

Thankyou!

Well, didn't notice this worked before. But then still, what if you've got other nodes in between...

But indeed worth checking what exactly caused the regression.

I made two Screenshots for better explanation ...

Tested it with some blur nodes between Renderlayer and Composite - in this case 2.79 also starts to save empty images. So maybe its more a design decision: should disabled Renderlayers be skipped in compositing or behave like empty/white/transparent image.

It is an exactly design issue. And any decision here is kind of arbitrary.

But we are trying to avoid behavior changes as much as possible. As in, we should totally look on what's changed the difference and see if it's avoidable behavior change or not.

In Master, blender respect what user asks ; it saves an Image for a renderlayer that have not been rendered.
It is the set-up shown, here. A disabled renderlayer but a renderlayer node that is not mute.
If the set-up was a disabled renderlayer and a renderlayer node that is mute. Master still respects that and doesn't save a blank image.
Mute property can be animated. But it is not exposed in UI of properties of the node.

In 2.79, blender does not respect user's set-up. It concludes that if he wants to render a portion of an image sequence for a renderlayer, user will animate enabling/disabling of renderlayer.
So, 2.79 Blender'sUI does not help in case, user want to render renderlayer and use it in several nodetrees at same time.
One based on a node Renderlayer that use the renderlayer. And another one based on another node refering to same renderlayer but with mute option animated.

Master's design is more respectful of user demands but UI of node lacks ability to easily animate node mute property.

So maybe disabling the render layer in properties panel should mute the renderlayer node too? If I mute the renderlayer node and leave the renderlayer enabled it still renders the renderlayer, so in 2.79.1 I had to disable in properties panel and mute in nodes to turn the layer off?

Sergey Sharybin (sergey) closed this task as Archived.Feb 19 2018, 2:49 PM

Discussed with other developers about ways to process here.

The thing here is: the old behavior of file output was based on particular behavior of compositor "compiler" which was removing links from disabled render layers. However, with some node setups it was possible to make useless output to be saved anyway.

Additionally, old behavior didn't allow artists to see quick tweaks to the file, without need to re-render render layers they didn't have rendered yet. Supporting this is quite important for the production.

Decision here is to stop relying on implicit removal of compositor links, and force such removal to be explicit by muting render layer node.

So thanks for the report, but there is no way to satisfy everyone with some smart decision. Use mute and you'll be fine!