From de280ffbd017f48ca63ffc8ce036926860fcbf79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= <sybren@stuvel.eu> Date: Tue, 31 Jan 2017 17:29:30 +0100 Subject: [PATCH] Server: bug fixes on blender-render-progressive --- .../blender_render_progressive.py | 10 +-- .../flamenco/job_compilers/commands.py | 5 ++ packages/flamenco/tests/test_job_compilers.py | 72 +++++++++---------- 3 files changed, 46 insertions(+), 41 deletions(-) diff --git a/packages/flamenco/flamenco/job_compilers/blender_render_progressive.py b/packages/flamenco/flamenco/job_compilers/blender_render_progressive.py index e5900139..7a5fbd79 100644 --- a/packages/flamenco/flamenco/job_compilers/blender_render_progressive.py +++ b/packages/flamenco/flamenco/job_compilers/blender_render_progressive.py @@ -94,9 +94,9 @@ class BlenderRenderProgressive(BlenderRender): # This is quite a limitation, but makes our code to predict the # filename that Blender will use a lot simpler. render_output = job['settings']['render_output'] - if u'######' not in render_output or u'#######' in render_output: + if not render_output.endswith(u'######') or render_output.endswith(u'#######'): raise exceptions.JobSettingError( - u'Setting "render_output" must contain exactly 6 "#" marks.') + u'Setting "render_output" must end in exactly 6 "#" marks.') def _make_progressive_render_tasks(self, job, name_fmt, parents, @@ -219,9 +219,9 @@ class BlenderRenderProgressive(BlenderRender): for framenr in chunk_frames: task_cmds.append( commands.MergeProgressiveRenders( - input1=unicode(input1).replace(u'######', u'%06i') % framenr, - input2=unicode(input2).replace(u'######', u'%06i') % framenr, - output=unicode(output).replace(u'######', u'%06i') % framenr, + input1=unicode(input1).replace(u'######', u'%06i.exr') % framenr, + input2=unicode(input2).replace(u'######', u'%06i.exr') % framenr, + output=unicode(output).replace(u'######', u'%06i.exr') % framenr, weight1=weight1, weight2=weight2, )) diff --git a/packages/flamenco/flamenco/job_compilers/commands.py b/packages/flamenco/flamenco/job_compilers/commands.py index 09dc89fa..bda838ba 100644 --- a/packages/flamenco/flamenco/job_compilers/commands.py +++ b/packages/flamenco/flamenco/job_compilers/commands.py @@ -87,3 +87,8 @@ class MergeProgressiveRenders(AbstractCommand): weight1 = attr.ib(validator=attr.validators.instance_of(int)) weight2 = attr.ib(validator=attr.validators.instance_of(int)) + + # Blender command to run in order to merge the two EXR files. + # This is usually determined by the Flamenco Manager configuration. + blender_cmd = attr.ib(validator=attr.validators.instance_of(unicode), + default=u'{blender}') diff --git a/packages/flamenco/tests/test_job_compilers.py b/packages/flamenco/tests/test_job_compilers.py index e5adea68..ce41b328 100644 --- a/packages/flamenco/tests/test_job_compilers.py +++ b/packages/flamenco/tests/test_job_compilers.py @@ -219,16 +219,16 @@ class BlenderRenderProgressiveTest(unittest.TestCase): job_doc, [ commands.MergeProgressiveRenders( - input1=u'/render/out/_intermediate/render-smpl-1-10-frm-000001', - input2=u'/render/out/_intermediate/render-smpl-11-20-frm-000001', - output=u'/render/out/_intermediate/merge-smpl-20-frm-000001', + input1=u'/render/out/_intermediate/render-smpl-1-10-frm-000001.exr', + input2=u'/render/out/_intermediate/render-smpl-11-20-frm-000001.exr', + output=u'/render/out/_intermediate/merge-smpl-20-frm-000001.exr', weight1=10, weight2=10, ), commands.MergeProgressiveRenders( - input1=u'/render/out/_intermediate/render-smpl-1-10-frm-000002', - input2=u'/render/out/_intermediate/render-smpl-11-20-frm-000002', - output=u'/render/out/_intermediate/merge-smpl-20-frm-000002', + input1=u'/render/out/_intermediate/render-smpl-1-10-frm-000002.exr', + input2=u'/render/out/_intermediate/render-smpl-11-20-frm-000002.exr', + output=u'/render/out/_intermediate/merge-smpl-20-frm-000002.exr', weight1=10, weight2=10, ), @@ -240,16 +240,16 @@ class BlenderRenderProgressiveTest(unittest.TestCase): job_doc, [ commands.MergeProgressiveRenders( - input1=u'/render/out/_intermediate/render-smpl-1-10-frm-000003', - input2=u'/render/out/_intermediate/render-smpl-11-20-frm-000003', - output=u'/render/out/_intermediate/merge-smpl-20-frm-000003', + input1=u'/render/out/_intermediate/render-smpl-1-10-frm-000003.exr', + input2=u'/render/out/_intermediate/render-smpl-11-20-frm-000003.exr', + output=u'/render/out/_intermediate/merge-smpl-20-frm-000003.exr', weight1=10, weight2=10, ), commands.MergeProgressiveRenders( - input1=u'/render/out/_intermediate/render-smpl-1-10-frm-000004', - input2=u'/render/out/_intermediate/render-smpl-11-20-frm-000004', - output=u'/render/out/_intermediate/merge-smpl-20-frm-000004', + input1=u'/render/out/_intermediate/render-smpl-1-10-frm-000004.exr', + input2=u'/render/out/_intermediate/render-smpl-11-20-frm-000004.exr', + output=u'/render/out/_intermediate/merge-smpl-20-frm-000004.exr', weight1=10, weight2=10, ), @@ -261,16 +261,16 @@ class BlenderRenderProgressiveTest(unittest.TestCase): job_doc, [ commands.MergeProgressiveRenders( - input1=u'/render/out/_intermediate/render-smpl-1-10-frm-000005', - input2=u'/render/out/_intermediate/render-smpl-11-20-frm-000005', - output=u'/render/out/_intermediate/merge-smpl-20-frm-000005', + input1=u'/render/out/_intermediate/render-smpl-1-10-frm-000005.exr', + input2=u'/render/out/_intermediate/render-smpl-11-20-frm-000005.exr', + output=u'/render/out/_intermediate/merge-smpl-20-frm-000005.exr', weight1=10, weight2=10, ), commands.MergeProgressiveRenders( - input1=u'/render/out/_intermediate/render-smpl-1-10-frm-000006', - input2=u'/render/out/_intermediate/render-smpl-11-20-frm-000006', - output=u'/render/out/_intermediate/merge-smpl-20-frm-000006', + input1=u'/render/out/_intermediate/render-smpl-1-10-frm-000006.exr', + input2=u'/render/out/_intermediate/render-smpl-11-20-frm-000006.exr', + output=u'/render/out/_intermediate/merge-smpl-20-frm-000006.exr', weight1=10, weight2=10, ), @@ -331,16 +331,16 @@ class BlenderRenderProgressiveTest(unittest.TestCase): job_doc, [ commands.MergeProgressiveRenders( - input1=u'/render/out/_intermediate/merge-smpl-20-frm-000001', - input2=u'/render/out/_intermediate/render-smpl-21-30-frm-000001', - output=u'/render/out/frames-000001', + input1=u'/render/out/_intermediate/merge-smpl-20-frm-000001.exr', + input2=u'/render/out/_intermediate/render-smpl-21-30-frm-000001.exr', + output=u'/render/out/frames-000001.exr', weight1=20, weight2=10, ), commands.MergeProgressiveRenders( - input1=u'/render/out/_intermediate/merge-smpl-20-frm-000002', - input2=u'/render/out/_intermediate/render-smpl-21-30-frm-000002', - output=u'/render/out/frames-000002', + input1=u'/render/out/_intermediate/merge-smpl-20-frm-000002.exr', + input2=u'/render/out/_intermediate/render-smpl-21-30-frm-000002.exr', + output=u'/render/out/frames-000002.exr', weight1=20, weight2=10, ), @@ -352,16 +352,16 @@ class BlenderRenderProgressiveTest(unittest.TestCase): job_doc, [ commands.MergeProgressiveRenders( - input1=u'/render/out/_intermediate/merge-smpl-20-frm-000003', - input2=u'/render/out/_intermediate/render-smpl-21-30-frm-000003', - output=u'/render/out/frames-000003', + input1=u'/render/out/_intermediate/merge-smpl-20-frm-000003.exr', + input2=u'/render/out/_intermediate/render-smpl-21-30-frm-000003.exr', + output=u'/render/out/frames-000003.exr', weight1=20, weight2=10, ), commands.MergeProgressiveRenders( - input1=u'/render/out/_intermediate/merge-smpl-20-frm-000004', - input2=u'/render/out/_intermediate/render-smpl-21-30-frm-000004', - output=u'/render/out/frames-000004', + input1=u'/render/out/_intermediate/merge-smpl-20-frm-000004.exr', + input2=u'/render/out/_intermediate/render-smpl-21-30-frm-000004.exr', + output=u'/render/out/frames-000004.exr', weight1=20, weight2=10, ), @@ -373,16 +373,16 @@ class BlenderRenderProgressiveTest(unittest.TestCase): job_doc, [ commands.MergeProgressiveRenders( - input1=u'/render/out/_intermediate/merge-smpl-20-frm-000005', - input2=u'/render/out/_intermediate/render-smpl-21-30-frm-000005', - output=u'/render/out/frames-000005', + input1=u'/render/out/_intermediate/merge-smpl-20-frm-000005.exr', + input2=u'/render/out/_intermediate/render-smpl-21-30-frm-000005.exr', + output=u'/render/out/frames-000005.exr', weight1=20, weight2=10, ), commands.MergeProgressiveRenders( - input1=u'/render/out/_intermediate/merge-smpl-20-frm-000006', - input2=u'/render/out/_intermediate/render-smpl-21-30-frm-000006', - output=u'/render/out/frames-000006', + input1=u'/render/out/_intermediate/merge-smpl-20-frm-000006.exr', + input2=u'/render/out/_intermediate/render-smpl-21-30-frm-000006.exr', + output=u'/render/out/frames-000006.exr', weight1=20, weight2=10, ), -- GitLab