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.cpp35
1 files changed, 24 insertions, 11 deletions
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index 43d7ff49a3b..ab08b9e146d 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -379,6 +379,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()
{
/* set callback to write out render results */
@@ -394,9 +416,6 @@ void BlenderSession::render()
BL::RenderSettings::layers_iterator b_layer_iter;
BL::RenderResult::views_iterator b_view_iter;
- /* We do some special meta attributes when we only have single layer. */
- const bool is_single_layer = (r.layers.length() == 1);
-
for(r.layers.begin(b_layer_iter); b_layer_iter != r.layers.end(); ++b_layer_iter) {
b_rlay_name = b_layer_iter->name();
@@ -491,15 +510,9 @@ void BlenderSession::render()
break;
}
- BL::RenderResult b_full_rr = b_engine.get_result();
- if(is_single_layer) {
- string num_aa_samples = string_printf("%d", session->params.samples);
- render_add_metadata(b_full_rr, "Cycles Samples", num_aa_samples);
- /* TODO(sergey): Report whether we're doing resumable render
- * and also start/end sample if so.
- */
- }
+ stamp_view_layer_metadata(b_rlay_name);
+ BL::RenderResult b_full_rr = b_engine.get_result();
if(scene->film->cryptomatte_passes & CRYPT_OBJECT) {
add_cryptomatte_layer(b_full_rr, b_rlay_name+".CryptoObject",
scene->object_manager->get_cryptomatte_objects(scene));