[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