From 53fa3e628a9e27070ae07d220aceec008610fad7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Wed, 30 Jan 2019 16:01:54 +0100 Subject: [PATCH] Flamenco: disable Cycles denoiser when progressive rendering The denoiser data cannot be (easily) merged, so for now we just disable the denoiser. --- blender_cloud/flamenco/__init__.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/blender_cloud/flamenco/__init__.py b/blender_cloud/flamenco/__init__.py index 6ded8c7..2588a87 100644 --- a/blender_cloud/flamenco/__init__.py +++ b/blender_cloud/flamenco/__init__.py @@ -436,6 +436,14 @@ class FLAMENCO_OT_render(async_loop.AsyncModalOperatorMixin, old_use_overwrite = render.use_overwrite old_use_placeholder = render.use_placeholder + disable_denoiser = (context.scene.flamenco_render_job_type == 'blender-render-progressive' + and render.engine == 'CYCLES') + if disable_denoiser: + use_denoising = [layer.cycles.use_denoising + for layer in context.scene.view_layers] + else: + use_denoising = [] + try: # The file extension should be determined by the render settings, not necessarily @@ -446,6 +454,10 @@ class FLAMENCO_OT_render(async_loop.AsyncModalOperatorMixin, render.use_overwrite = False render.use_placeholder = False + if disable_denoiser: + for layer in context.scene.view_layers: + layer.cycles.use_denoising = False + filepath = Path(context.blend_data.filepath).with_suffix('.flamenco.blend') self.log.info('Saving copy to temporary file %s', filepath) bpy.ops.wm.save_as_mainfile(filepath=str(filepath), @@ -457,6 +469,10 @@ class FLAMENCO_OT_render(async_loop.AsyncModalOperatorMixin, render.use_overwrite = old_use_overwrite render.use_placeholder = old_use_placeholder + if disable_denoiser: + for denoise, layer in zip(use_denoising, context.scene.view_layers): + layer.cycles.use_denoising = denoise + return filepath async def bat_pack(self, filepath: Path) \ @@ -885,6 +901,9 @@ class FLAMENCO_PT_render(bpy.types.Panel, FlamencoPollMixin): text='Recommended Max Samples per Task: %d' % recommended_cap) props.sample_cap = recommended_cap + if any(layer.cycles.use_denoising for layer in context.scene.view_layers): + box.label(text='Progressive Rendering will disable Denoising.', icon='ERROR') + labeled_row = layout.split(**blender.factor(0.25), align=True) labeled_row.label(text='Frame Range:') prop_btn_row = labeled_row.row(align=True)