Commit: a28b14e760f16fd499c3a58f292ba4ba31d2cf46
Author: Jeroen Bakker
Date:   Mon Aug 29 14:43:13 2022 +0200
Branches: temp-eevee-next-cryptomatte
https://developer.blender.org/rBa28b14e760f16fd499c3a58f292ba4ba31d2cf46

Use cryptomatte_samples_per_layer.

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

M       source/blender/draw/engines/eevee_next/eevee_cryptomatte.cc
M       
source/blender/draw/engines/eevee_next/shaders/eevee_cryptomatte_post_comp.glsl
M       
source/blender/draw/engines/eevee_next/shaders/infos/eevee_cryptomatte_info.hh

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

diff --git a/source/blender/draw/engines/eevee_next/eevee_cryptomatte.cc 
b/source/blender/draw/engines/eevee_next/eevee_cryptomatte.cc
index 08821940444..d06c4c8cc76 100644
--- a/source/blender/draw/engines/eevee_next/eevee_cryptomatte.cc
+++ b/source/blender/draw/engines/eevee_next/eevee_cryptomatte.cc
@@ -43,7 +43,8 @@ void Cryptomatte::begin_sync()
   Texture &cryptomatte_tx = inst_.film.cryptomatte_tx_get();
   DRW_shgroup_uniform_image_ref(grp, "cryptomatte_img", &cryptomatte_tx);
   DRW_shgroup_uniform_int_copy(grp, "cryptomatte_layer_len", layer_len_);
-  DRW_shgroup_uniform_int_copy(grp, "cryptomatte_levels", 
inst_.view_layer->cryptomatte_levels);
+  DRW_shgroup_uniform_int_copy(
+      grp, "cryptomatte_samples_per_layer", 
inst_.view_layer->cryptomatte_levels);
   int3 dispatch_size = math::divide_ceil(cryptomatte_tx.size(), 
int3(FILM_GROUP_SIZE));
   DRW_shgroup_call_compute(grp, UNPACK2(dispatch_size), 1);
 }
diff --git 
a/source/blender/draw/engines/eevee_next/shaders/eevee_cryptomatte_post_comp.glsl
 
b/source/blender/draw/engines/eevee_next/shaders/eevee_cryptomatte_post_comp.glsl
index 1a8f5956f18..e0cb9abd5c7 100644
--- 
a/source/blender/draw/engines/eevee_next/shaders/eevee_cryptomatte_post_comp.glsl
+++ 
b/source/blender/draw/engines/eevee_next/shaders/eevee_cryptomatte_post_comp.glsl
@@ -4,7 +4,7 @@
 
 void cryptomatte_load_samples(ivec2 texel, int layer, out vec2 
samples[CRYPTOMATTE_LEVELS_MAX])
 {
-  int pass_len = divide_ceil(cryptomatte_levels, 2);
+  int pass_len = divide_ceil(cryptomatte_samples_per_layer, 2);
   int layer_id = layer * pass_len;
 
   /* Read all samples from the cryptomatte layer. */
@@ -22,10 +22,10 @@ bool cryptomatte_sort_samples(inout vec2 
samples[CRYPTOMATTE_LEVELS_MAX])
 {
   /* Sort samples. Lame implementation, can be replaced with a more efficient 
algorithm. */
   bool changed = false;
-  for (int i = 0; i < cryptomatte_levels - 1 && samples[i].y != 0.0; i++) {
+  for (int i = 0; i < cryptomatte_samples_per_layer - 1 && samples[i].y != 
0.0; i++) {
     int highest_index = i;
     float highest_weight = samples[i].y;
-    for (int j = i + 1; j < cryptomatte_levels && samples[j].y != 0.0; j++) {
+    for (int j = i + 1; j < cryptomatte_samples_per_layer && samples[j].y != 
0.0; j++) {
       if (samples[j].y > highest_weight) {
         highest_index = j;
         highest_weight = samples[j].y;
@@ -44,7 +44,7 @@ bool cryptomatte_sort_samples(inout vec2 
samples[CRYPTOMATTE_LEVELS_MAX])
 
 void cryptomatte_store_samples(ivec2 texel, int layer, in vec2 
samples[CRYPTOMATTE_LEVELS_MAX])
 {
-  int pass_len = divide_ceil(cryptomatte_levels, 2);
+  int pass_len = divide_ceil(cryptomatte_samples_per_layer, 2);
   int layer_id = layer * pass_len;
 
   /* Store samples back to the cryptomatte layer. */
diff --git 
a/source/blender/draw/engines/eevee_next/shaders/infos/eevee_cryptomatte_info.hh
 
b/source/blender/draw/engines/eevee_next/shaders/infos/eevee_cryptomatte_info.hh
index 5709a18b8b7..46068910143 100644
--- 
a/source/blender/draw/engines/eevee_next/shaders/infos/eevee_cryptomatte_info.hh
+++ 
b/source/blender/draw/engines/eevee_next/shaders/infos/eevee_cryptomatte_info.hh
@@ -7,6 +7,6 @@ GPU_SHADER_CREATE_INFO(eevee_cryptomatte_post)
     .do_static_compilation(true)
     .image(0, GPU_RGBA32F, Qualifier::READ_WRITE, ImageType::FLOAT_2D_ARRAY, 
"cryptomatte_img")
     .push_constant(Type::INT, "cryptomatte_layer_len")
-    .push_constant(Type::INT, "cryptomatte_levels")
+    .push_constant(Type::INT, "cryptomatte_samples_per_layer")
     .local_group_size(FILM_GROUP_SIZE, FILM_GROUP_SIZE)
     .compute_source("eevee_cryptomatte_post_comp.glsl");
\ No newline at end of file

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to