Flamenco: Progressive Rendering max sample count instead of chunk count

Flamenco Server changed from expecting a fixed number of sample chunks to
a compile-time determined number of nonuniform chunks. The artist can now
influence the size of each render task by setting a maximum number of
samples per render task.
This commit is contained in:
Sybren A. Stüvel 2019-01-30 14:16:30 +01:00
parent e1934b20d9
commit 74b46ff0db
2 changed files with 23 additions and 12 deletions

View File

@ -1,5 +1,14 @@
# Blender Cloud changelog # Blender Cloud changelog
## Version 1.12 (in development)
- Flamenco: Change how progressive render tasks are created. Instead of the artist setting a fixed
number of sample chunks, they can now set a maximum number of samples for each render task.
Initial render tasks are created with a low number of samples, and subsequent tasks have an
increasing number of samples, up to the set maximum. The total number of samples of the final
render is still equal to the number of samples configured in the blend file.
Requires Flamenco Server 2.2 or newer.
## Version 1.11.1 (2019-01-04) ## Version 1.11.1 (2019-01-04)

View File

@ -276,7 +276,7 @@ class FLAMENCO_OT_render(async_loop.AsyncModalOperatorMixin,
if scene.cycles.use_square_samples: if scene.cycles.use_square_samples:
samples **= 2 samples **= 2
settings['cycles_num_chunks'] = scene.flamenco_render_schunk_count settings['cycles_sample_cap'] = scene.flamenco_render_chunk_sample_cap
settings['cycles_sample_count'] = samples settings['cycles_sample_count'] = samples
settings['format'] = 'EXR' settings['format'] = 'EXR'
@ -847,10 +847,9 @@ class FLAMENCO_PT_render(bpy.types.Panel, FlamencoPollMixin):
layout.prop(context.scene, 'flamenco_render_job_priority') layout.prop(context.scene, 'flamenco_render_job_priority')
layout.prop(context.scene, 'flamenco_render_fchunk_size') layout.prop(context.scene, 'flamenco_render_fchunk_size')
layout.prop(context.scene, 'flamenco_start_paused')
if getattr(context.scene, 'flamenco_render_job_type', None) == 'blender-render-progressive': if getattr(context.scene, 'flamenco_render_job_type', None) == 'blender-render-progressive':
layout.prop(context.scene, 'flamenco_render_schunk_count') layout.prop(context.scene, 'flamenco_render_chunk_sample_cap')
layout.prop(context.scene, 'flamenco_start_paused')
paths_layout = layout.column(align=True) paths_layout = layout.column(align=True)
@ -974,16 +973,19 @@ def register():
min=1, min=1,
default=1, default=1,
) )
scene.flamenco_render_schunk_count = IntProperty( scene.flamenco_render_chunk_sample_cap = IntProperty(
name='Number of Sample Chunks', name='Maximum Samples per Task',
description='Number of Cycles samples chunks to use per frame', description='Maximum number of samples per render task; a lower number creates more '
min=2, 'shorter-running tasks. Values between 1/10 and 1/4 of the total sample count '
default=3, 'seem sensible',
soft_max=10, min=1,
soft_min=5,
default=100,
soft_max=1000,
) )
scene.flamenco_render_frame_range = StringProperty( scene.flamenco_render_frame_range = StringProperty(
name='Frame Range', name='Frame Range',
description='Frames to render, in "printer range" notation' description='Frames to render, in "printer range" notation',
) )
scene.flamenco_render_job_type = EnumProperty( scene.flamenco_render_job_type = EnumProperty(
name='Job Type', name='Job Type',
@ -1065,7 +1067,7 @@ def unregister():
log.warning('Unable to unregister class %r, probably already unregistered', cls) log.warning('Unable to unregister class %r, probably already unregistered', cls)
for name in ('flamenco_render_fchunk_size', for name in ('flamenco_render_fchunk_size',
'flamenco_render_schunk_count', 'flamenco_render_chunk_sample_cap',
'flamenco_render_frame_range', 'flamenco_render_frame_range',
'flamenco_render_job_type', 'flamenco_render_job_type',
'flamenco_start_paused', 'flamenco_start_paused',