Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/cycles/blender/blender_session.cpp')
-rw-r--r--intern/cycles/blender/blender_session.cpp34
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) {