diff --git a/source/blender/blenkernel/BKE_cryptomatte.h b/source/blender/blenkernel/BKE_cryptomatte.h index 8eca69d1217..03e279de801 100644 --- a/source/blender/blenkernel/BKE_cryptomatte.h +++ b/source/blender/blenkernel/BKE_cryptomatte.h @@ -55,8 +55,7 @@ void BKE_cryptomatte_matte_id_to_entries(struct NodeCryptomatte *node_storage, const char *matte_id); void BKE_cryptomatte_store_metadata(const struct CryptomatteSession *session, - struct RenderResult *render_result, - const ViewLayer *view_layer); + struct RenderResult *render_result); #ifdef __cplusplus } diff --git a/source/blender/blenkernel/intern/cryptomatte.cc b/source/blender/blenkernel/intern/cryptomatte.cc index a8d7e97cc2f..1eafd91c537 100644 --- a/source/blender/blenkernel/intern/cryptomatte.cc +++ b/source/blender/blenkernel/intern/cryptomatte.cc @@ -301,15 +301,6 @@ void BKE_cryptomatte_matte_id_to_entries(NodeCryptomatte *node_storage, const ch } } -static std::string cryptomatte_determine_name(const ViewLayer *view_layer, - const blender::StringRefNull cryptomatte_layer_name) -{ - std::stringstream stream; - const size_t view_layer_name_len = BLI_strnlen(view_layer->name, sizeof(view_layer->name)); - stream << std::string(view_layer->name, view_layer_name_len) << "." << cryptomatte_layer_name; - return stream.str(); -} - static uint32_t cryptomatte_determine_identifier(const blender::StringRef name) { return BLI_hash_mm3(reinterpret_cast(name.data()), name.size(), 0); @@ -326,9 +317,7 @@ static void add_render_result_meta_data(RenderResult *render_result, value.data()); } -void BKE_cryptomatte_store_metadata(const CryptomatteSession *session, - RenderResult *render_result, - const ViewLayer *view_layer) +void BKE_cryptomatte_store_metadata(const CryptomatteSession *session, RenderResult *render_result) { for (const blender::MapItem item : session->layers.items()) @@ -337,12 +326,11 @@ void BKE_cryptomatte_store_metadata(const CryptomatteSession *session, const blender::bke::cryptomatte::CryptomatteLayer &layer = item.value; const std::string manifest = layer.manifest(); - const std::string name = cryptomatte_determine_name(view_layer, layer_name); - add_render_result_meta_data(render_result, name, "name", name); - add_render_result_meta_data(render_result, name, "hash", "MurmurHash3_32"); - add_render_result_meta_data(render_result, name, "conversion", "uint32_to_float32"); - add_render_result_meta_data(render_result, name, "manifest", manifest); + add_render_result_meta_data(render_result, layer_name, "name", layer_name); + add_render_result_meta_data(render_result, layer_name, "hash", "MurmurHash3_32"); + add_render_result_meta_data(render_result, layer_name, "conversion", "uint32_to_float32"); + add_render_result_meta_data(render_result, layer_name, "manifest", manifest); } } diff --git a/source/blender/blenkernel/intern/cryptomatte_test.cc b/source/blender/blenkernel/intern/cryptomatte_test.cc index 669b36dab3c..78174048abf 100644 --- a/source/blender/blenkernel/intern/cryptomatte_test.cc +++ b/source/blender/blenkernel/intern/cryptomatte_test.cc @@ -102,29 +102,29 @@ static void validate_cryptomatte_session_from_stamp_data(void * /*data*/, return; } - if (prop_name == "cryptomatte/87f095e/name") { - EXPECT_STREQ("viewlayername.layer1", propvalue); + if (prop_name == "cryptomatte/67da54b/name") { + EXPECT_STREQ("layer1", propvalue); } - else if (prop_name == "cryptomatte/87f095e/hash") { + else if (prop_name == "cryptomatte/67da54b/hash") { EXPECT_STREQ("MurmurHash3_32", propvalue); } - else if (prop_name == "cryptomatte/87f095e/conversion") { + else if (prop_name == "cryptomatte/67da54b/conversion") { EXPECT_STREQ("uint32_to_float32", propvalue); } - else if (prop_name == "cryptomatte/87f095e/manifest") { + else if (prop_name == "cryptomatte/67da54b/manifest") { EXPECT_STREQ(R"({"Object":"12345678"})", propvalue); } - else if (prop_name == "cryptomatte/c42daa7/name") { - EXPECT_STREQ("viewlayername.layer2", propvalue); + else if (prop_name == "cryptomatte/79b2306/name") { + EXPECT_STREQ("layer2", propvalue); } - else if (prop_name == "cryptomatte/c42daa7/hash") { + else if (prop_name == "cryptomatte/79b2306/hash") { EXPECT_STREQ("MurmurHash3_32", propvalue); } - else if (prop_name == "cryptomatte/c42daa7/conversion") { + else if (prop_name == "cryptomatte/79b2306/conversion") { EXPECT_STREQ("uint32_to_float32", propvalue); } - else if (prop_name == "cryptomatte/c42daa7/manifest") { + else if (prop_name == "cryptomatte/79b2306/manifest") { EXPECT_STREQ(R"({"Object2":"87654321"})", propvalue); } @@ -149,11 +149,9 @@ TEST(cryptomatte, session_from_stamp_data) RE_FreeRenderResult(render_result); /* Create StampData from CryptomatteSession. */ - ViewLayer view_layer; - STRNCPY(view_layer.name, "viewlayername"); RenderResult *render_result2 = static_cast( MEM_callocN(sizeof(RenderResult), __func__)); - BKE_cryptomatte_store_metadata(session.get(), render_result2, &view_layer); + BKE_cryptomatte_store_metadata(session.get(), render_result2); /* Validate StampData. */ BKE_stamp_info_callback( diff --git a/source/blender/draw/engines/eevee_next/eevee_cryptomatte.cc b/source/blender/draw/engines/eevee_next/eevee_cryptomatte.cc index ca1a2bcb465..912a983452f 100644 --- a/source/blender/draw/engines/eevee_next/eevee_cryptomatte.cc +++ b/source/blender/draw/engines/eevee_next/eevee_cryptomatte.cc @@ -129,7 +129,7 @@ float Cryptomatte::register_id(const eViewLayerEEVEEPassType layer, const ID &id void Cryptomatte::store_metadata(RenderResult *render_result) { if (session_) { - BKE_cryptomatte_store_metadata(&*session_, render_result, inst_.view_layer); + BKE_cryptomatte_store_metadata(&*session_, render_result); } }