[Bf-blender-cvs] [1bc828392dd] temp-eevee-next-cryptomatte: Remove unused attributes from Cryptomatte.

Jeroen Bakker noreply at git.blender.org
Tue Aug 30 09:41:41 CEST 2022


Commit: 1bc828392dd6f90b85138fa2f56a57c8a2e8c93b
Author: Jeroen Bakker
Date:   Tue Aug 30 09:16:13 2022 +0200
Branches: temp-eevee-next-cryptomatte
https://developer.blender.org/rB1bc828392dd6f90b85138fa2f56a57c8a2e8c93b

Remove unused attributes from Cryptomatte.

===================================================================

M	source/blender/draw/engines/eevee_next/eevee_cryptomatte.cc
M	source/blender/draw/engines/eevee_next/eevee_cryptomatte.hh
M	source/blender/draw/engines/eevee_next/eevee_instance.cc

===================================================================

diff --git a/source/blender/draw/engines/eevee_next/eevee_cryptomatte.cc b/source/blender/draw/engines/eevee_next/eevee_cryptomatte.cc
index 2e22a237e53..49d20ac35de 100644
--- a/source/blender/draw/engines/eevee_next/eevee_cryptomatte.cc
+++ b/source/blender/draw/engines/eevee_next/eevee_cryptomatte.cc
@@ -8,39 +8,31 @@
 
 namespace blender::eevee {
 
-void Cryptomatte::init()
-{
-  eViewLayerEEVEEPassType enabled_passes = inst_.film.enabled_passes_get();
-  layer_len_ = 0;
-  object_offset_ = (enabled_passes & EEVEE_RENDER_PASS_CRYPTOMATTE_OBJECT) ? layer_len_++ : -1;
-  asset_offset_ = (enabled_passes & EEVEE_RENDER_PASS_CRYPTOMATTE_ASSET) ? layer_len_++ : -1;
-  material_offset_ = (enabled_passes & EEVEE_RENDER_PASS_CRYPTOMATTE_MATERIAL) ? layer_len_++ : -1;
-
-  BLI_assert_msg(layer_len_ == inst_.film.cryptomatte_layer_len_get(),
-                 "Cryptomatte and film mismatch");
-}
-
 void Cryptomatte::begin_sync()
 {
-  if (object_offset_ == -1 && asset_offset_ == -1) {
+  const eViewLayerEEVEEPassType enabled_passes = inst_.film.enabled_passes_get();
+  if (!(enabled_passes &
+        (EEVEE_RENDER_PASS_CRYPTOMATTE_OBJECT | EEVEE_RENDER_PASS_CRYPTOMATTE_ASSET))) {
     cryptomatte_object_buf.resize(16);
   }
 }
 
 void Cryptomatte::sync_object(Object *ob)
 {
-  if (object_offset_ == -1 && asset_offset_ == -1) {
+  const eViewLayerEEVEEPassType enabled_passes = inst_.film.enabled_passes_get();
+  if (!(enabled_passes &
+        (EEVEE_RENDER_PASS_CRYPTOMATTE_OBJECT | EEVEE_RENDER_PASS_CRYPTOMATTE_ASSET))) {
     return;
   }
 
   uint32_t resource_id = DRW_object_resource_id_get(ob);
   float2 object_hashes(0.0f, 0.0f);
 
-  if (object_offset_ != -1) {
+  if (enabled_passes & EEVEE_RENDER_PASS_CRYPTOMATTE_OBJECT) {
     object_hashes[0] = hash(ob->id);
   }
 
-  if (asset_offset_ != -1) {
+  if (enabled_passes & EEVEE_RENDER_PASS_CRYPTOMATTE_ASSET) {
     Object *asset = ob;
     while (asset->parent) {
       asset = asset->parent;
@@ -69,5 +61,4 @@ void Cryptomatte::bind_resources(DRWShadingGroup *grp)
   DRW_shgroup_storage_block_ref(grp, "cryptomatte_object_buf", &cryptomatte_object_buf);
 }
 
-
 }  // namespace blender::eevee
\ No newline at end of file
diff --git a/source/blender/draw/engines/eevee_next/eevee_cryptomatte.hh b/source/blender/draw/engines/eevee_next/eevee_cryptomatte.hh
index f37e2fabe54..5faf048cb93 100644
--- a/source/blender/draw/engines/eevee_next/eevee_cryptomatte.hh
+++ b/source/blender/draw/engines/eevee_next/eevee_cryptomatte.hh
@@ -33,15 +33,6 @@ class Cryptomatte {
  private:
   class Instance &inst_;
 
-  /**
-   * Offsets of cryptomatte layers inside the components of a color. (-1 means the layer isn't
-   * enabled.)
-   */
-  int object_offset_;
-  int asset_offset_;
-  int material_offset_;
-  int layer_len_;
-
   /** Contains per object hashes (object and asset hash). Indexed by resource ID. */
   CryptomatteObjectBuf cryptomatte_object_buf;
 
@@ -49,7 +40,6 @@ class Cryptomatte {
   Cryptomatte(Instance &inst) : inst_(inst){};
   ~Cryptomatte(){};
 
-  void init();
   void begin_sync();
   void sync_object(Object *ob);
   void end_sync();
diff --git a/source/blender/draw/engines/eevee_next/eevee_instance.cc b/source/blender/draw/engines/eevee_next/eevee_instance.cc
index 1b9691a7cdd..43ba48a4b6e 100644
--- a/source/blender/draw/engines/eevee_next/eevee_instance.cc
+++ b/source/blender/draw/engines/eevee_next/eevee_instance.cc
@@ -67,7 +67,6 @@ void Instance::init(const int2 &output_res,
   velocity.init();
   depth_of_field.init();
   motion_blur.init();
-  cryptomatte.init();
   main_view.init();
 }



More information about the Bf-blender-cvs mailing list