diff options
Diffstat (limited to 'intern/cycles/blender/blender_session.cpp')
-rw-r--r-- | intern/cycles/blender/blender_session.cpp | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index 6e6d98b19dd..e8a0e6dce39 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -393,6 +393,28 @@ static void add_cryptomatte_layer(BL::RenderResult& b_rr, string name, string ma render_add_metadata(b_rr, prefix+"manifest", manifest); } +void BlenderSession::stamp_view_layer_metadata_do(const string& prefix) +{ + BL::RenderResult b_rr = b_engine.get_result(); + /* Configured number of samples for the view layer. */ + b_rr.stamp_data_add_field((prefix + "samples").c_str(), + to_string(session->params.samples).c_str()); + /* Store ranged samples information. */ + if(session->tile_manager.range_num_samples != -1) { + b_rr.stamp_data_add_field( + (prefix + "range_start_sample").c_str(), + to_string(session->tile_manager.range_start_sample).c_str()); + b_rr.stamp_data_add_field( + (prefix + "range_num_samples").c_str(), + to_string(session->tile_manager.range_num_samples).c_str()); + } +} + +void BlenderSession::stamp_view_layer_metadata(const string& view_layer_name) +{ + stamp_view_layer_metadata_do("cycles." + view_layer_name + "."); +} + void BlenderSession::render(BL::Depsgraph& b_depsgraph_) { b_depsgraph = b_depsgraph_; @@ -408,9 +430,6 @@ void BlenderSession::render(BL::Depsgraph& b_depsgraph_) /* render each layer */ BL::ViewLayer b_view_layer = b_depsgraph.view_layer_eval(); - /* We do some special meta attributes when we only have single layer. */ - const bool is_single_layer = (b_scene.view_layers.length() == 1); - /* temporary render result to find needed passes and views */ BL::RenderResult b_rr = begin_render_result(b_engine, 0, 0, 1, 1, b_view_layer.name().c_str(), NULL); BL::RenderResult::layers_iterator b_single_rlay; @@ -525,14 +544,7 @@ void BlenderSession::render(BL::Depsgraph& b_depsgraph_) break; } - if(is_single_layer) { - BL::RenderResult b_rr = b_engine.get_result(); - string num_aa_samples = string_printf("%d", session->params.samples); - b_rr.stamp_data_add_field("Cycles Samples", num_aa_samples.c_str()); - /* TODO(sergey): Report whether we're doing resumable render - * and also start/end sample if so. - */ - } + stamp_view_layer_metadata(b_rlay_name); /* Write cryptomatte metadata. */ if(scene->film->cryptomatte_passes & CRYPT_OBJECT) { |