Render API load from file does not load all layers
Closed, InvalidPublic

Description

When using NetworkRender mode, postprocessing with Depth of Field (DOF) node does not update focus lenght (ie. driven by animated object). Same scene rendered locally is working as expected.

broken (Matt Ebb) added a comment.Via Old WorldMar 10 2010, 1:17 AM

May not be a problem with netrender per se, but Martin's probably best equipped to see what the issue is. Assigning to him.

theeth (Martin Poirier) added a comment.Via Old WorldMar 12 2010, 3:39 AM

Rendering goes fine, but compositing has to be turned off on the client, otherwise it reapplies composition that has been done on the slaves. I'm going to have to figure something out to turn if off automatically.

theeth (Martin Poirier) added a comment.Via Old WorldMar 12 2010, 4:07 AM

There's also this warning when loading back the result (a multilayer exr) in Blender through the render engine api, loading the exr manually works fine.

warning, channel with no rect set Composite.Combined.A
warning, channel with no rect set Composite.Combined.B
warning, channel with no rect set Composite.Combined.G
warning, channel with no rect set Composite.Combined.R

Assigning to brecht for testing (I think he's responsible for the render engine).

Adding a demo file.

Unzip, open blender from this directory (it will load results.exr from cwd), load result.blend, execute opened script (it should change the render engine to Test Render, do so if it didn't), render. It should display exr warnings in console, the layers mentioned in the warnings will be missing from the result buffer (but would be visible if loading the exr in the image editor manually).

brecht (Brecht Van Lommel) added a comment.Via Old WorldDec 5 2010, 12:06 PM

Looked into this bug again, and the problem is that network render expects all layers in the .exr file to be loaded, while only the ones that the renderer expects are loaded. This is working as designed actually, but in this case it would be useful to support loading other layers too. Not sure yet how to solve without making major changes.

theeth (Martin Poirier) added a comment.Via Old WorldDec 6 2010, 3:41 AM

IMHO, when loading a multilayer exr as render result, it should recreate the result as it was originally (so that saving and reloading as result is a lossless operation).

ton (Ton Roosendaal) added a comment.Via Old WorldDec 7 2010, 7:08 PM

Ehm... so the conclusion is, no bug but just 'how it was coded' ?

theeth (Martin Poirier) added a comment.Via Old WorldDec 8 2010, 3:50 AM

Depends what we want to support for render engines. Personally, I'd consider it a bug, at the very least a missing feature.

brecht (Brecht Van Lommel) added a comment.Via Old WorldDec 8 2010, 8:27 AM

I guess it's not a bug in the render api but still one in network render, which is also a feature. Anyway, I'll try to fix this.

ton (Ton Roosendaal) added a comment.Via Old WorldJun 19 2011, 1:05 PM

Reminder to this report, it's getting dusty! :)

ipfoot (Ian Foot) added a comment.Via Old WorldNov 10 2011, 10:12 PM

I see that "[#28049] Blender "Network Render" does not render effects (nodes) from the Compositor." has been marked as a duplicate of this.

It would seem to me that this is an extremely serious bug as it is impossible to use netrender to farm out any scenes that use compositing nodes.

The slave nodes render the scene correctly with both the renderlayer and the composite output in the exr file. The master monitor web page correctly shows a thumbnail of the composited scene. However, the client seems to only expect, and will only display the renderlayer before compositing. It completely ignores the composite layer, as if it doesn't exist. The client does not appear to be expecting the composite layer at all, even though Compositing is checked in the Post Processing settings in the blend file.

This bug can be very easily verified, using the default cube. Simply open the nodes editor, enable nodes and set up a simple compositing pipeline (e.g. connect alpha from the renderlayer to the compositing node). Rendering locally will display the expected output, whilst a network render will only display the renderlayer before compositing.

This bug effectively renders (sorry!) the netrender absolutely useless apart from for very simple work. I am extremely puzzled as to why there appears to be no progress on this bug, since it is a year and a half old.

theeth (Martin Poirier) added a comment.Via Old WorldNov 11 2011, 1:43 AM

Please note that the work around written in the other report still applies.

That is: the result exr files on the master can be fed into Blender's compositor as multilayer and that will work correctly (as if you'd render them locally).

But it sure would be nice to get it fixed.

sergey (Sergey Sharybin) added a comment.Via Old WorldApr 3 2012, 2:54 PM

Support of multilayer EXR files should've been improved in svn rev45358. probably it'll fix the tissue?

Brecht, othewise mayeb better to move this into a todo?

dingto (Thomas Dinges) added a comment.Via Old WorldJun 19 2012, 12:24 AM

What is the current status? Can we close or mark as ToDo?

dingto (Thomas Dinges) added a comment.Via Old WorldSep 24 2012, 8:45 PM

Closing this one due to no updates.

dingto (Thomas Dinges) closed this task as "Invalid".Via Old WorldSep 24 2012, 8:45 PM
claus007 (Claus Ilginnis) added a comment.Via Old WorldApr 13 2013, 8:52 PM

Still have the problem

lancer (Lance Flavell) added a comment.Via Old WorldAug 1 2013, 6:25 AM

...problem presists. (Blender 2.58 r5365)
So, the current workflow to correct this is to render with the results appearing un-noded, and then wire them in again to the compositor as "Movie Clip" (image sequence) and set up again your nodes. Did all those Open Movies work this way?

It works I think. Bit of a headache to explain to a class of 30 or so students, but then I am assessing them on their ability to be able to discuss efficiencies in a pipeline so it's one more thing they could get marks for when they apply the workaround as long as they say what they did. I'm wondering if Loki has the same issues (although our school network hates Loki because it's Java - another story)

lachoneus (Will Thorup) added a comment.Via Old WorldAug 14 2013, 12:12 AM

Still having issues with this in Blender 2.68.1 r58706.

For those who are frustrated with this bug, or use the compositor for allot of their work, here is the best work around that I have been able to find so far.

When you are ready to use Network Render, send it as a job, and let it render. Ounce the render is finished, you will need to find the EXR files that are sitting on the Master (the file path is located under the Master dialogue in Blender). At this point, open up a new instance of Blender, and bring up the composite node editor. delete the scene/render layer node, and add and image node and attach it to the composite node. Navigate to and add the first .EXR image in your rendered animation that is on the Master. Switch it from single image to image sequence and set the correct values for your animation. Make sure that the render settings for the scene match the blend file that you sent to the render farm originally, and then render out to the desired format.

It seems to me that this bug reduces the effectiveness of the idea of the render farm considerably. As composting usually equates to more render power needed, therefore more computing power is needed to get the final result faster(aka a render farm). Compositing seems like a priority to me, but my priorities don't always match someone elses.)

I appreciate all the hard work that has been put into this add-on, it has helped me with my work for over 3 years now. It's just been frustrating that I have been running into this problem, along with not being able to do full-sample motion-blur/anti-aliasing through Network Render (both processor intensive tasks), over the last 3 years.

Still present in 2.72b.

Please, at least re-open it ! This bug makes network rendering almost useless.

Network render addon is currently in orphaned state. For until new maintainer appears issues with it are considered a TODO hence should be handled outside of the bug tracker.

This comment was removed by diegoyaya (Diego Yaya).

Hi; this is my first patch on Blender. Please bear with me, esp. if it's not the right place to do code reviews (IRC ?).

Despite what has been said elsewhere, all EXR layers are correctly loaded. They are just not linked to the RenderResult, because when it's created, it creates one layer (a RenderResult layer, not OpenEXR layer) per render layer, but doesn't create a layer for the composite. So when output.exr arrives from the network, Composite.Combined.A/R/G/B have nowhere to go and are simply put aside.

In my simple tests, this patches makes the following cases work :

  • network single frame rendering, Multilayer EXR output : the image editor shows the different layers, including the composited image.
  • network single frame rendering, JPEG output : same thing. With network rendering everything goes exr, so layers are present in the image editor.
  • network animation rendering, Multilayer EXR output : work (probably as before)
  • network animation rendering, JPEG output : all the images contain the composited image.

Comments welcome !

patch21410.diff

Thanks for the patch, some of us have been waiting for a long time for something like this. I am planning on working with it soon.

I'm no expert, but it seems that this patch isn't format specific. Will it output PNG's correctly, according to the scenarios listed? This format is a bit more condusive for quick VFX workflows, as it supports transparency.

Thanks again!

Add Comment