[Bf-blender-cvs] [621336ba68b] temp-eevee-next-cryptomatte: Fix storing multiple cryptomatte layers.

Jeroen Bakker noreply at git.blender.org
Wed Aug 24 12:15:31 CEST 2022


Commit: 621336ba68b4956df4b4ccb1b2ca254c52a4761e
Author: Jeroen Bakker
Date:   Wed Aug 24 11:23:59 2022 +0200
Branches: temp-eevee-next-cryptomatte
https://developer.blender.org/rB621336ba68b4956df4b4ccb1b2ca254c52a4761e

Fix storing multiple cryptomatte layers.

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

M	source/blender/draw/engines/eevee_next/shaders/eevee_cryptomatte_lib.glsl

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

diff --git a/source/blender/draw/engines/eevee_next/shaders/eevee_cryptomatte_lib.glsl b/source/blender/draw/engines/eevee_next/shaders/eevee_cryptomatte_lib.glsl
index 1284d5e84c6..8d21f05e9a5 100644
--- a/source/blender/draw/engines/eevee_next/shaders/eevee_cryptomatte_lib.glsl
+++ b/source/blender/draw/engines/eevee_next/shaders/eevee_cryptomatte_lib.glsl
@@ -32,8 +32,15 @@ void film_store_cryptomatte_sample(FilmSample dst,
 {
   float weight = dst.weight;
 
+  if (!film_buf.use_history) {
+    for (int i = 0; i < film_buf.cryptomatte_samples_len / 2; i++) {
+      ivec3 img_co = ivec3(dst.texel, cryptomatte_layer_id + i);
+      imageStore(cryptomatte_img, img_co, vec4(0.0));
+    }
+  }
+
   for (int i = 0; i < film_buf.cryptomatte_samples_len / 2; i++) {
-    ivec3 img_co = ivec3(dst.texel, i);
+    ivec3 img_co = ivec3(dst.texel, cryptomatte_layer_id + i);
     vec4 sample_pair = imageLoad(cryptomatte_img, img_co);
     if (can_merge_cryptomatte_sample(sample_pair.xy, hash)) {
       sample_pair.xy = merge_cryptomatte_sample(sample_pair.xy, hash, weight);



More information about the Bf-blender-cvs mailing list