[Bf-blender-cvs] [fa59c6a3e7d] master: Merge branch 'blender2.7'
Brecht Van Lommel
noreply at git.blender.org
Tue Mar 19 18:55:52 CET 2019
Commit: fa59c6a3e7d72d57faadcf0795848b4c3b8381d9
Author: Brecht Van Lommel
Date: Tue Mar 19 18:54:17 2019 +0100
Branches: master
https://developer.blender.org/rBfa59c6a3e7d72d57faadcf0795848b4c3b8381d9
Merge branch 'blender2.7'
===================================================================
===================================================================
diff --cc intern/cycles/blender/blender_session.cpp
index a06135b5362,87dc39ca676..cf856c3b3d4
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@@ -393,25 -379,12 +393,16 @@@ static void add_cryptomatte_layer(BL::R
render_add_metadata(b_rr, prefix+"manifest", manifest);
}
- /* TODO(sergey): Ideally this will be an utility function in util string.h, but
- * currently is relying on Blender side function, so can not do that. */
- static string make_human_readable_time(double time)
- {
- char time_str[128];
- BLI_timecode_string_from_time_simple(time_str, sizeof(time_str), time);
- return time_str;
- }
-
-void BlenderSession::stamp_view_layer_metadata_do(const string& prefix)
+void BlenderSession::stamp_view_layer_metadata(Scene *scene, const string& view_layer_name)
{
BL::RenderResult b_rr = b_engine.get_result();
+ string prefix = "cycles." + view_layer_name + ".";
+
/* 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());
+ 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(
@@@ -421,36 -394,15 +412,36 @@@
(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 + ".");
+ /* Write cryptomatte metadata. */
+ if(scene->film->cryptomatte_passes & CRYPT_OBJECT) {
+ add_cryptomatte_layer(b_rr, view_layer_name + ".CryptoObject",
+ scene->object_manager->get_cryptomatte_objects(scene));
+ }
+ if(scene->film->cryptomatte_passes & CRYPT_MATERIAL) {
+ add_cryptomatte_layer(b_rr, view_layer_name + ".CryptoMaterial",
+ scene->shader_manager->get_cryptomatte_materials(scene));
+ }
+ if(scene->film->cryptomatte_passes & CRYPT_ASSET) {
+ add_cryptomatte_layer(b_rr, view_layer_name + ".CryptoAsset",
+ scene->object_manager->get_cryptomatte_assets(scene));
+ }
+
+ /* Store synchronization and bare-render times. */
+ double total_time, render_time;
+ session->progress.get_time(total_time, render_time);
+ b_rr.stamp_data_add_field((prefix + "total_time").c_str(),
- make_human_readable_time(total_time).c_str());
++ time_human_readable_from_seconds(total_time).c_str());
+ b_rr.stamp_data_add_field((prefix + "render_time").c_str(),
- make_human_readable_time(render_time).c_str());
++ time_human_readable_from_seconds(render_time).c_str());
+ b_rr.stamp_data_add_field((prefix + "synchronization_time").c_str(),
- make_human_readable_time(total_time - render_time).c_str());
++ time_human_readable_from_seconds(total_time - render_time).c_str());
}
-void BlenderSession::render()
+void BlenderSession::render(BL::Depsgraph& b_depsgraph_)
{
+ b_depsgraph = b_depsgraph_;
+
/* set callback to write out render results */
session->write_render_tile_cb = function_bind(&BlenderSession::write_render_tile, this, _1);
session->update_render_tile_cb = function_bind(&BlenderSession::update_render_tile, this, _1, _2);
@@@ -1011,10 -957,9 +1002,9 @@@ void BlenderSession::update_bake_progre
void BlenderSession::update_status_progress()
{
string timestatus, status, substatus, kernel_status;
- string scene = "";
+ string scene_status = "";
float progress;
double total_time, remaining_time = 0, render_time;
- char time_str[128];
float mem_used = (float)session->stats.mem_used / 1024.0f / 1024.0f;
float mem_peak = (float)session->stats.mem_peak / 1024.0f / 1024.0f;
@@@ -1026,27 -971,29 +1016,26 @@@
remaining_time = (1.0 - (double)progress) * (render_time / (double)progress);
if(background) {
- scene += " | " + b_scene.name();
+ scene_status += " | " + scene->name;
if(b_rlay_name != "")
- scene += ", " + b_rlay_name;
+ scene_status += ", " + b_rlay_name;
if(b_rview_name != "")
- scene += ", " + b_rview_name;
- }
- else {
- timestatus = "Time:" + time_human_readable_from_seconds(total_time) + " | ";
- }
+ scene_status += ", " + b_rview_name;
- if(remaining_time > 0) {
- timestatus += "Remaining:" + time_human_readable_from_seconds(remaining_time) + " | ";
- }
+ if(remaining_time > 0) {
- BLI_timecode_string_from_time_simple(time_str, sizeof(time_str), remaining_time);
- timestatus += "Remaining:" + string(time_str) + " | ";
++ timestatus += "Remaining:" + time_human_readable_from_seconds(remaining_time) + " | ";
+ }
- timestatus += string_printf("Mem:%.2fM, Peak:%.2fM", (double)mem_used, (double)mem_peak);
+ timestatus += string_printf("Mem:%.2fM, Peak:%.2fM", (double)mem_used, (double)mem_peak);
- if(status.size() > 0)
- status = " | " + status;
- if(substatus.size() > 0)
- status += " | " + substatus;
- if(kernel_status.size() > 0)
- status += " | " + kernel_status;
+ if(status.size() > 0)
+ status = " | " + status;
+ if(substatus.size() > 0)
+ status += " | " + substatus;
+ if(kernel_status.size() > 0)
+ status += " | " + kernel_status;
+ }
double current_time = time_dt();
/* When rendering in a window, redraw the status at least once per second to keep the elapsed and remaining time up-to-date.
diff --cc intern/cycles/blender/blender_util.h
index b9a1de08705,a2c1a68c454..ec836bd5ec1
--- a/intern/cycles/blender/blender_util.h
+++ b/intern/cycles/blender/blender_util.h
@@@ -32,8 -32,7 +32,7 @@@
* todo: clean this up ... */
extern "C" {
- size_t BLI_timecode_string_from_time_simple(char *str, size_t maxlen, double time_seconds);
-void BKE_image_user_frame_calc(void *iuser, int cfra, int fieldnr);
+void BKE_image_user_frame_calc(void *iuser, int cfra);
void BKE_image_user_file_path(void *iuser, void *ima, char *path);
unsigned char *BKE_image_get_pixels_for_frame(void *image, int frame);
float *BKE_image_get_float_pixels_for_frame(void *image, int frame);
More information about the Bf-blender-cvs
mailing list