Disabled Renderlayers still get saved (blank) through File Output Node when connected to Composite Node #53835

Closed
opened 2018-01-19 10:45:25 +01:00 by ronald engel · 18 comments

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: 2bf3825711, 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 ...
renderlayer_bug_test_.blend

**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 ... [renderlayer_bug_test_.blend](https://archive.blender.org/developer/F1891074/renderlayer_bug_test_.blend)
Author

Added subscriber: @ronalde

Added subscriber: @ronalde

Added subscriber: @Sergey

Added subscriber: @Sergey

Changed status from 'Open' to: 'Archived'

Changed status from 'Open' to: 'Archived'
Sergey Sharybin self-assigned this 2018-01-19 12:21:19 +01:00

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.

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.
Author

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!

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!

Changed status from 'Archived' to: 'Open'

Changed status from 'Archived' to: 'Open'

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.

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.
Author

I made two Screenshots for better explanation ...2.79.jpg

2.79.1.jpg

I made two Screenshots for better explanation ...![2.79.jpg](https://archive.blender.org/developer/F1891843/2.79.jpg) ![2.79.1.jpg](https://archive.blender.org/developer/F1891842/2.79.1.jpg)
Author

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.

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.

Added subscriber: @SteffenD

Added subscriber: @SteffenD

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.

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.

Added subscriber: @zeauro

Added subscriber: @zeauro

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.

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.
Author

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?

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?
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

caused by 04800ed434

caused by 04800ed434

Changed status from 'Open' to: 'Archived'

Changed status from 'Open' to: 'Archived'

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!

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!
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#53835
No description provided.